匿名(anonymous)元素有两种: 匿名 block 元素 和 匿名 inline 元素.
匿名元素是指原来的DOM树中不存在的元素,但是为了满足CSS标准 而出现的一种元素。
什么时候会出现匿名元素呢? 这要分情况来说:
第一种情况:
block 元素内部包含有 block 元素和 inline 元素, 如:
这样,为了满足CSS的标准:
一个匿名block 被生成:
第二种情况:
当block 元素内部包含有匿名文本(Anonymous Text)和inline元素, 如:
为了满足CSS标准, 一个匿名inline 被生成
总结: block 元素内部要么全部是block元素,要么全部是inline元素 . (不考虑浮动块和绝对定位块).
第三种情况:
这种情况比较复杂, CSS规定 inline 元素内部只能包含inline元素. 但是如果还是有哪个网页作者,坚持要在inline元素里面插入包含block元素,如:
那么这时候, inline元素 <em></em> 会被破坏,拆成两部分,并且本身也被匿名block包含