2016-08-18 2 views
0

Я пытаюсь получить контейнер div для расширения, чтобы обернуть несколько элементов встроенного блока. Все работает, пока контейнер не сжимается, или я не добавляю больше элементов.Ширина контейнера CSS на обернутых элементах

.top { 
 
    width: 80%; 
 
    background-color: red; 
 
} 
 
.container { 
 
    background-color: gray; 
 
    display: inline-block; 
 
} 
 
.box { 
 
    display: inline-block; 
 
    background-color: blue; 
 
    height: 100px; 
 
    width: 100px; 
 
}
<div class="top"> 
 
    <div class="container"> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    </div> 
 
</div>

Ниже приведен пример. https://jsfiddle.net/8fhjaf6z/11/

Серый контейнер. Обертывает коробки внутри него, пока вы не добавите больше коробок или не стрите контейнер .top. В этот момент коробки обертываются и переходят к следующей строке, что я хочу, но теперь серый. Контейнер заполняет красный контейнер .top, оставляя пустую пустоту справа. Я также пробовал использовать элементы .box, но получаю те же результаты.

Любая помощь будет оценена по достоинству.

+0

do u хотите показать красный цвет в пространстве слева направо ??? – Ashu

+0

Да, это правильно. Если элементы ящика не превышают ширину контейнера .top, тогда серый контейнер обертывает все элементы ящика, как предполагалось. Однако, как только вы добавляете больше элементов окна, и они превышают ширину контейнера .top, элементы окна обертываются до следующей строки, но теперь серый контейнер заполняет всю ширину контейнера .top или просто обертывает элементы окна. – jpmkc

ответ

1

Один из возможных способов заполнить пространство, созданное ящиками, которые переместились на следующую строку, - установить отображение .container в строку. Теперь у вас серый фон только за коробками. С верхней прокладкой вы можете чем сделать серый фон принять полную высоту коробка (как обходной путь для установки высоты в строковом элемент, который не является возможным с атрибутом высоты):

.top { 
 
    width: 80%; 
 
    background-color: red; 
 
    font-size: 0; 
 
} 
 
.container { 
 
    background-color: gray; 
 
    display: inline; 
 
    padding: 105px 0 0 0; 
 
} 
 
.box { 
 
    display: inline-block; 
 
    background-color: blue; 
 
    height: 100px; 
 
    width: 100px; 
 
    margin: 0 0 5px 5px; 
 
}
<div class="top"> 
 
    <div class="container"> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    </div> 
 
</div>

+0

Извините, что не отвечал раньше. Я тестировал это, и это как-то фиксировало мою проблему. Я предполагаю, что то, что я действительно искал, - это решение, в котором серый контейнер простирается ниже трех прямоугольников справа и оставляет красное пространство справа. Где, как теперь, когда коробки завертываются в следующую строку, серый контейнер заполняет весь контейнер .top. Возможно, это намеченное поведение. Я просто пытался понять логику, почему он действует так, и если есть способ получить результат, который я искал. – jpmkc

Смежные вопросы