css-grid规范的哪一部分解决了如果fieldset元素设置为display:grid?应该如何处理图例元素?
如您所知,图例元素通常是fieldset元素的第一个子元素,但很少有人希望它被视为网格项。
我想知道我是否需要采取明确的样式预防措施,以确保图例元素不会被视为网格项,或者如果规范已经有一些规则(我忽略),这意味着一个图例元素(按规格)不是网格项。
您不会在CSS规范中找到这些详细信息,但在HTML规范中。 HTML非常具体,应该如何呈现fieldset
和legend
元素,并且由于历史原因,这些元素的布局实现非常严格,通过display
属性很少适应布局模式的更改。
正是由于这个原因,任何浏览器都不支持display: grid
在字段集上。事实上,just a few days ago讨论了一个关于HTML规范的建议添加,以指定如何在display
和fieldset
元素上处理legend
属性,这是有待添加的内容:
fieldset
元素在生成一个框时(即,不是'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-in','flex' ,或'网格',然后表现为'阻止'。
这基本上巩固了当前的文本,该文本表明fieldset
元素应该建立一个块格式化上下文,而不指定如果UA选择不遵循此定义它应该如何表现。
这与当前可互操作的浏览器行为相结合,意味着legend
元素的布局不会受到具有fieldset
的父级display: grid
的影响,因为它的父级fieldset
将首先被阻止成为网格容器。