Подтвердить что ты не робот

Почему не все элементы flexbox ведут себя как flexbox divs?

Почему flexbox работает неправильно с fieldset или другими тегами div? Я ожидаю, что они будут располагаться рядом друг с другом, как в примере div, так как flex-direction: row; по умолчанию используется в flexbox. Однако fieldset - это сила, применяющая к ним ширину, и я не понимаю, почему.

HTML

<fieldset>
    <div>fieldset flexbox</div>
    <div>1</div>
    <div>2</div>
</fieldset>

<div id="parentdiv">
    <div>div flexbox<div>
    <div>3</div>
    <div>4</div>
</div>

CSS: для всех элементов установлено значение display: flex;

http://jsfiddle.net/c5BB5/1/

4b9b3361

Ответ 1

Насколько я могу судить, это связано с ошибками браузера с элементом fieldset.

известная проблема с элементами fieldset в Chrome. У Firefox есть аналогичная (очень старая) проблема в том, что legend и fieldset являются заменили элементы.


Я полагаю, что теперь безопаснее использовать <div role="group"> вместо реального набора полей. В вашем CSS вы можете использовать div[role='group'] как ваш селектор. Подробнее см. http://www.deque.com/aria-group-viable-alternative-fieldset-legend.