【问题标题】:Why are not all flexbox elements behaving like flexbox divs?为什么不是所有的 flexbox 元素都表现得像 flexbox div?
【发布时间】:2013-11-09 20:30:27
【问题描述】:

为什么 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/

【问题讨论】:

  • 定义“不能正常工作”——你期待什么?
  • 感谢您的反馈。努力表达问题。现在更新了。可以理解吗?
  • 如果这是您原始问题的扩展,请更新原始问题而不是重新发布:stackoverflow.com/questions/19678166/…
  • @cimmanon:不,它们是不同的。这个问题与诸如 fieldset 之类的非 div 标签在设置时没有获得预期的 flexbox 属性这一事实有关。其他问题是关于如何为页面上的所有元素提供相同显示的 css-selector 问题:flex-property。乍一看,它们似乎相同,但实际上并非如此:)

标签: css flexbox fieldset


【解决方案1】:

据我所知,这归结为与 fieldset 元素有关的浏览器错误。

它是a known issue with fieldset elements in ChromeFirefox has a similar (very old) issue 其中legendfieldsetreplaced elements


我想现在使用&lt;div role="group"&gt; 而不是真正的字段集更安全。在您的 CSS 中,您可以使用 div[role='group'] 作为您的选择器。请参阅http://www.deque.com/aria-group-viable-alternative-fieldset-legend 了解更多信息。

【讨论】:

  • 感谢@ollyhodgson 指出这一点。没想到会是浏览器的bug。在 Opera、Opera Next、Firefox、Safari 和 Chrome 中尝试 jsfiddle。我想这是我应该期待的正确结果:d.pr/i/iKzw? (我只能在 Opera 12.15 Mac 中得到它。
  • 是的,这就是我所期望的。我想现在使用&lt;div role="group"&gt; 而不是真正的fieldset 更安全。在您的 CSS 中,您可以使用 div[role='group'] 作为您的选择器。见deque.com/aria-group-viable-alternative-fieldset-legend
  • 一年半的时间里,这个错误在两个浏览器中都完好无损... :(
  • @Pere 确实 - Firefox 错误是在 2005 年提出的!如果您需要复杂的样式,请使用 &lt;div role="group"&gt; 而不是 &lt;fieldset&gt;
  • 是的@OllyHodgson,我已经这样做了,但再次感谢您的指出!
猜你喜欢
  • 2020-12-08
  • 2019-07-16
  • 2017-07-02
  • 1970-01-01
  • 2013-11-09
  • 2021-07-06
  • 2018-10-07
  • 2021-04-07
  • 2016-11-28
相关资源
最近更新 更多