【问题标题】:Is the <fieldset> + <legend> top border "erasing" behavior defined by any standard (HTML or CSS)?<fieldset> + <legend> 上边框“擦除”行为是否由任何标准(HTML 或 CSS)定义?
【发布时间】:2017-01-25 06:28:31
【问题描述】:

在 IE6 时代,我曾经在 HTML 中模拟 Windows 样式的组框(参见示例),方法是创建一个带边框的 div,并将带有文本的 span 定位在具有纯色背景的边框上颜色以“擦除”框边框。将组文本放置在框的顶部或底部很简单。

这种技术效果很好,除非背景不是纯色。我意识到&lt;fieldset&gt;&lt;legend&gt; 标签提供了我所描述的完全相同的行为,除了非纯色背景支持文本只能超出字段集.

fieldsetlegend 组合似乎很神奇,无论legend 触摸什么都会从fieldset 边框中删除(实际上从未绘制过)。 为什么要这样做?我发现 examples from W3 说明了这种行为,但我在 HTML4/5 规范中找不到任何指示 UA “计算图例的宽度并且不要”不要在那里画边界。”这种行为是在任何地方定义的,还是浏览器供应商一致决定应该以这种方式绘制?

如果行为未定义...我想用现代的东西替换旧的 IE6 代码,但我不确定是否应该使用 fieldset(即使除了表单)或我的一些 CSS 功能不知道要像fieldset 实现那样擦除边框。这些标准提供了什么来依赖fieldset 或可靠地模拟它?

【问题讨论】:

    标签: html css fieldset


    【解决方案1】:

    图例的位置是标准的。 HTML5 rendering

    应为 fieldset 元素的 rendered legend(如果有) 在fieldset 元素的顶部边界边缘呈现 作为“块”框(覆盖任何明确的“显示”值)。

    它并没有明确说明图例后面的边框被删除,但否则图例会看起来有一个贯穿的装饰。所以浏览器会删除边框。

    【讨论】:

    • 至少规范说图例应该应用在顶部边框上——而不是在它上面、在它里面、可选等。这应该足以依赖它来呈现我以前的方式代码做到了。谢谢!
    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 2011-07-27
    • 2012-03-14
    • 1970-01-01
    • 2010-09-23
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多