什么是不可替换的内联元素?

新手上路,请多包涵

在阅读 CSS2 规范height 属性时遇到如下问题:

适用于:除非替换内联元素、表格列和列组之外的所有元素

我了解替换元素( <img> )或内联元素( <button><a> 找到非问题元素的例子)是,但

原文由 Michael Z 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 275
2 个回答

出于大多数实际目的,最好将“替换”理解为“嵌入”。所以“非替换元素”只是一个被渲染的元素,而不是让一些外部内容出现在它的位置上。

“不可替换的内联元素”这个表达没有自己的定义:它只是指任何既是不可替换元素又是内联元素的元素。例如 <a> 。 HTML 中的大多数元素都是不可替换的。非替换元素只是一个不是替换元素的元素。

然而,在 CSS 规范中,对于“可替换元素”的概念只是笼统的描述,并没有明确列出这些元素。这是可以理解的,因为 HTML 的发展完全独立于 CSS。

随着时间的推移,这个概念有所改变。 CSS 1 规范 说:“在 HTML 中,IMG、INPUT、TEXTAREA、SELECT 和 OBJECT 元素可以是替换元素的示例。”在较新的规范中,不再包含表单字段。这反映在 HTML5 草案中,其中 渲染 部分明确列出了非替换元素下的表单控件。根据它,唯一被替换的元素是那些将外部内容(例如图像、视频、小程序或 HTML5 画布)嵌入到 HTML 文档中的元素——除了也提到了改进的 menu 元素(它预计将以与浏览器控件相呼应的方式实现,因此它也有点嵌入外部内容)。

此更改反映了浏览器的开发。早期的浏览器使用系统例程以不受 CSS 中任何内容影响的方式实现表单字段,并且仍然存在一些这种方法,但现在表单字段大多可以使用 CSS 进行格式化,因此它们实际上已经从替换变为非 -被替换的元素。

原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 4.0 许可协议

David Baron 在他的网站上对此进行了讨论

内联元素有两种类型:可替换内联元素和不可替换内联元素。一般来说,非替换元素是那些内容包含在文档中的元素,而替换元素是那些内容在文档之外的元素。例如,在代码中:

访问 <a href="http://www.w3.org/">World Wide Web Consortium</a> 了解… a 元素的内容是“万维网联盟”。替换元素是那些内容来自某些外部源的元素,例如 objectimg 元素。

然而,就内联盒模型而言,除了具有显示类型 inline-tableinline-block 的元素之外,定义如上所述(后者是CSS3建议的类型以适应表单元素)被认为是替换元素。

Good examples of non-replaced inline elements are span , strong , i , b , em , etc .

原文由 cereallarceny 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏