css-grid规范的哪一部分解决了在 fieldset 元素的处理方式strong>元素设置为 display:grid ?
您知道, 传奇 元素通常是 fieldset 元素的第一个子元素,但很少任何人都希望将其视为网格项。
我想知道是否需要采取明确的样式预防措施,以确保 传奇 元素不会被视为网格项,或者规范是否已有一条规则(我忽略了),这意味着 传奇 元素(按规范)不是网格项。
答案 0 :(得分:5)
您不会在CSS规范中找到这些详细信息,而在HTML规范中找到。 HTML非常具体地说明了fieldset
和legend
元素的呈现方式,并且由于历史原因,这些元素的布局实现极为严格,几乎没有办法通过{来更改布局模式{1}}属性。
因此,任何浏览器在字段集上都不支持display
。实际上,just a few days ago围绕HTML规范的拟议新增内容进行了讨论,以指定应如何在display: grid
和display
元素上对待fieldset
属性,这是计划添加什么:
legend
元素在生成框时(即不是“ display:none”或“ display:contents”),其作用如下:
...
“ display”属性的作用如下:
如果'display'的计算值是'inline','inline-block','inline-table','ruby','ruby-base','ruby-text',' “ ruby-base-container”,“ ruby-text-container”,“ inline-flex”或“ inline-grid”,然后表现为“ inline-block”。
如果“ display”的计算值是“ block”,“ table”,“ table-row-group”,“ table-header-group”,“ table-footer-group”,“ table-row”,“ table-cell”,“ table-column-group”,“ table-column”,“ table-caption”,“ list-item”,“ flow”,“ flow-root”,“ run- ”,“ flex”或“ grid”,然后表现为“阻止”。
这基本上巩固了当前的文本,即希望fieldset
元素建立块格式化上下文,而未指定如果UA选择不遵循此定义的行为。
这与当前可互操作的浏览器行为一起,意味着fieldset
元素的布局将不受其具有legend
的父fieldset
的影响,因为其父{{1 }}首先将被阻止成为网格容器。
答案 1 :(得分:3)
现在所有主流浏览器都支持 <fieldset>
上的网格(和 flexbox)布局。火狐added it back in 2015。
渲染的 <legend>
不是 anonymous fieldset content box(实现实际网格/弹性布局)的子框,因此它不被视为网格项。无论字段集的 display
值如何,它的行为都是相同的。
fieldset/legend rendering 的 HTML 规范现在对布局的工作方式有相当详细的描述,用 CSS 术语描述。