【发布时间】:2017-01-25 06:28:31
【问题描述】:
在 IE6 时代,我曾经在 HTML 中模拟 Windows 样式的组框(参见示例),方法是创建一个带边框的 div,并将带有文本的 span 定位在具有纯色背景的边框上颜色以“擦除”框边框。将组文本放置在框的顶部或底部很简单。
这种技术效果很好,除非背景不是纯色。我意识到<fieldset> 和<legend> 标签提供了我所描述的完全相同的行为,除了非纯色背景支持但文本只能超出字段集.
fieldset 和 legend 组合似乎很神奇,无论legend 触摸什么都会从fieldset 边框中删除(实际上从未绘制过)。 为什么要这样做?我发现 examples from W3 说明了这种行为,但我在 HTML4/5 规范中找不到任何指示 UA “计算图例的宽度并且不要”不要在那里画边界。”这种行为是在任何地方定义的,还是浏览器供应商一致决定应该以这种方式绘制?
如果行为未定义...我想用现代的东西替换旧的 IE6 代码,但我不确定是否应该使用 fieldset(即使除了表单)或我的一些 CSS 功能不知道要像fieldset 实现那样擦除边框。这些标准提供了什么来依赖fieldset 或可靠地模拟它?
【问题讨论】: