Why is flexbox not working properly with fieldset
or other non-div
tags?
I expect them to line up next to each other like in the div
example, as flex-direction: row;
is default in flexbox. However fieldset
is force applying a width to them, and I do not understand why.
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: All elements are set to display: flex
;
As far as I can tell, this is down to browser bugs to do with the fieldset
element.
It's a known issue with fieldset
elements in Chrome. Firefox has a similar (very old) issue in that legend
and fieldset
are replaced elements.
I guess it's safer to use a <div role="group">
instead of a real fieldset for now. In your CSS you could use div[role='group']
as your selector. See http://www.deque.com/aria-group-viable-alternative-fieldset-legend for more information.
来源:https://stackoverflow.com/questions/19679337/why-are-not-all-flexbox-elements-behaving-like-flexbox-divs