2017-02-09 5 views
2

Я работаю над расширением хром. Есть n блоков div. Это число блоков div зависит от URL-адреса, который я собираюсь посетить. Так что на некоторых страницах видимые блоки могут быть 1,2,3,4,5, а на другом они могут быть 1,5 или 1,2,5. Итак, мой div's должен занимать пространство и не оставлять пустое место.Требуется расположение div, как показано на скриншоте

Выход мне нужно:

Screenshot/Image Source

Это то, что я пытался (и на jsfiddle), но проблема в пустое пространство ниже красного цвета.

div { 
 
    float: left; 
 
    width: 200px; 
 
} 
 
.One { 
 
    background-color: Red; 
 
    height: 200px; 
 
} 
 
.Two { 
 
    background-color: Green; 
 
    height: 400px; 
 
} 
 
.Three { 
 
    background-color: Blue; 
 
    height: 500px; 
 
} 
 
.Four { 
 
    background-color: Orange; 
 
    height: 700px; 
 
} 
 
.Five { 
 
    background-color: Yellow; 
 
    height: 200px; 
 
} 
 
.Six { 
 
    background-color: Pink; 
 
    height: 400px; 
 
} 
 
.Seven { 
 
    background-color: Grey; 
 
    height: 600px; 
 
}
<div class="One"> 
 
</div> 
 
<div class="Two"> 
 
</div> 
 
<div class="Three"> 
 
</div> 
 
<div class="Four"> 
 
</div> 
 
<div class="Five"> 
 
</div> 
 
<div class="Six"> 
 
</div> 
 
<div class="Seven"> 
 
</div>

+0

На самом деле, на самом деле, вы не очень много играете, ваша скрипка очень далека от желаемого результата, но если все, что вам нужно, - это красное поле, чтобы занять/расширить до пустого места внизу, то почему бы просто не изменить его высоту? – kdyz

+0

Безумие они должны быть дианамическими. Если один из div удален, другой div должен заняться этим пространством. –

+0

Нам нужно знать, какие у вас есть требования к тому, как вы хотите, чтобы различные блоки были организованы, когда некоторые из них не отображаются. Сравнительно легко заставить блоки течь в область, которая в противном случае была бы занята конкретными не показанными блоками. Однако * точно * то, на что это похоже, будет зависеть от того, как это делается. Нам нужно знать, чего вы хотите, поскольку существует слишком много возможных интерпретаций того, как это должно выглядеть. – Makyen

ответ

0

HTML

<article> 
    <section> 
    <p class="sect1">1</p> 
    </section> 
    <section> 
    <p class="sect2">2</p> 
    </section> 
    <section> 
    <p class="sect3">3</p> 
    </section> 
    <section> 
    <p class="sect4">4</p> 
    </section> 
    <section> 
    <p class="sect5">5</p> 
    </section> 
    <section> 
    <p class="sect6">6</p> 
    </section> 
    <section> 
    <p class="sect7">7</p> 
    </section> 
    <section> 
    <p class="sect8">8</p> 
    </section> 
    <section> 
    <p class="sect9">9</p> 
    </section> 
    <section> 
    <p class="sect10">10</p> 
    </section> 
</article> 

CSS

*, *:before, *:after {box-sizing: border-box !important;} 

article { 
-moz-column-width: 10em; 
-webkit-column-width: 10em; 
-moz-column-gap: 1em; 
-webkit-column-gap: 1em; 

} 

section { 
display: inline-block; 
margin: 0.25rem; 
padding: 1rem; 
width: 100%; 
background: #efefef; 
} 

p { 
min-width: 200px; 
margin: 1rem 0; 
} 

.sect1{ min-height: 100px; } 
.sect2{ min-height: 200px; } 
.sect3{ min-height: 300px; } 
.sect4{ min-height: 300px; } 
.sect5{ min-height: 500px; } 
.sect6{ min-height: 600px; } 
.sect7{ min-height: 200px; } 
.sect8{ min-height: 400px; } 
.sect9{ min-height: 400px; } 
.sect10{ min-height: 400px; } 

Вот ссылка: https://jsfiddle.net/JPratik2712/huLkhpux/

+0

Этот ответ был бы значительно улучшен путем помещения кода в [фрагмент] (https://blog.stackoverflow.com/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/). Использование фрагмента также делает его более вероятным для его голосования, потому что люди могут быстро проверить, что ваш код функционирует правильно. Хотя фрагменты не всегда должны использоваться, для вопросов и ответов на основе JavaScript/HTML/CSS они могут значительно улучшить связь как с проблемой, так и с решением. Когда это возможно, фрагмент лучше, чем исполняемые примеры кода, которые находятся вне сайта (например, JSFiddle). – Makyen