如果字段集的显示为网格,图例元素是否为网格项?

时间:2018-09-16 01:21:40

标签: html css css-grid

css-grid规范的哪一部分解决了在 fieldset 元素的处理方式strong>元素设置为 display:grid

您知道, 传奇 元素通常是 fieldset 元素的第一个子元素,但很少任何人都希望将其视为网格项。

我想知道是否需要采取明确的样式预防措施,以确保 传奇 元素不会被视为网格项,或者规范是否已有一条规则(我忽略了),这意味着 传奇 元素(按规范)不是网格项。

2 个答案:

答案 0 :(得分:5)

您不会在CSS规范中找到这些详细信息,而在HTML规范中找到。 HTML非常具体地说明了fieldsetlegend元素的呈现方式,并且由于历史原因,这些元素的布局实现极为严格,几乎没有办法通过{来更改布局模式{1}}属性。

因此,任何浏览器在字段集上都不支持display。实际上,just a few days ago围绕HTML规范的拟议新增内容进行了讨论,以指定应如何在display: griddisplay元素上对待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 术语描述。