回到IE6时代,我常常模拟div中的Windows风格的组框(参见示例),方法是创建一个带有边框的div,并在边框上定位一个带有文本的span,并以坚实的背景色“擦除”框边框。将组文本放置在框的顶部或底部是很简单的。

这种技术很好,除了背景不是纯色的情况下。我意识到<fieldset>和<legend>标记提供了与我所描述的完全相同的行为,除了支持非实心背景的之外,文本只能超出字段集。
fieldset和legend组合似乎神奇地工作着,以致于legend所接触的任何东西都将从fieldset边框中删除(实际上从未绘制过)。为什么要这么做?我已经找到了说明这种行为的来自W3的例子,但是我在HTML4 4/5规范中找不到任何指示UA“计算图例的宽度,而不是在那里绘制边框”的东西。这种行为是在任何地方定义的,还是浏览器供应商一致决定应该这样画?
如果行为没有定义..。我想用一些现代的东西来替换旧的IE6代码,但是我不确定是否应该使用fieldset (甚至除了表单)或者一些我不知道的CSS特性来擦除边框,就像fieldset实现已经做的那样。标准提供了什么,要么依赖于fieldset,要么可靠地模仿它?
https://stackoverflow.com/questions/39541432
复制相似问题