2014-10-29 4 views
0

У меня есть следующие HTML и CSS, которые я пытаюсь либо растянуть, либо прокрутить родительский гибкий блок без статической ширины. Я не могу получить результат.Прозрачная или прокручивающая родительская гибкая коробка

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

JSFiddle здесь: http://jsfiddle.net/r4j778xg/2/

<div class="flex"> 
<div class="box">stuff</div> 
<div class="box">stuff</div> 
<div class="box">stuff</div> 
...many more 
</div> 

.flex 
{ 
    width: 100%; 
    display: flex; 
    flex-direction: row; 
} 

.box 
{ 
    width: 300px; 
    height: 50px; 
    border: solid black 1px; 
} 
+0

ширина размещения: 100% на вашем гибком элементе сделает его 100% тела (в вашем случае) – maioman

+0

Правильно, поэтому я ищу решение, которое не требует решения 'width: 9999px';) – Tek

+0

Несколько дней назад я ответил на вопрос, дающий решение проблемы установки '{width: 500%; display: flex} 'к родительскому элементу. если вы хотите [взглянуть] (http://stackoverflow.com/questions/27702110/css-horizontal-scroll-tricks/27703546#27703546) (есть также фрагмент) – maioman

ответ

1

Попробовать, с моим мышлением 100% средства для заполнения родительского контейнера, который является шириной окна, так что вы не можете получить более широкими, чем того

.flex{ 
    width: auto; 
    position: absolute; 
} 

JSFIDDLE

Плюс, если вы хотите сохранить это position: relative;, чтобы сохранить значение высоты, чтобы следующий элемент появился после этого, вы можете обернуть его вот так:

JFSIDDLE

+0

Точно то, что я хотел. Красивый. : D – Tek

+0

На самом деле, последний пример должен прокручиваться? - Ничего, изменил 'overflow' на' scroll'. Просто потрясающе, вы пошли выше и выше. Благодарю. – Tek

+0

Я рад, что смогу помочь :) –

0

Проблема здесь состоит в том, что вы устанавливаете относительнойwidth:100% вам flex DIV, и его родитель даже не имеют фиксированную ширину, так проблема на 100% от чего?, поэтому, когда вы делаете фиксированную ширину вашего родительского DIV (тело, например), то проблема будет решена:

body{ 
    width:1096px; 
    height:960px; 
} 

и дать прогибается ДИВ display: inline; или display: table;, потому что display: flex; заставит DIV быть блочный гибкий контейнер.

Это working fiddle.

Я думаю, что должен это сделать.

+0

Даже при этом он не поддерживает ширину 300 пикселей для класса 'box'. Ячейки имеют 137 пикселей в этом примере – Tek

+0

@Tek: Я указал, что я пропустил это. Он исправлен, предоставив flex div «display: inline;» или «display: table;», я ИЗМЕНИЮ свой ответ. –

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