哪些元素可以出现在什么地方,哪一个元素可以被包涵在另一个元素里面,这个都是有规则的
1、块级元素可以包涵行内元素
2、块级元素不一定包涵块级元素
p包涵div是不合法的,在浏览器里面会自动在p里面遇到div前自动合并p
3、行内元素一般不能包涵块级元素
什么叫一般,因为里面有个特例,a元素可以包涵div元素。为什么这个a包涵div是合法的。这个要从html规范来讲起,在html4以及xhtml中,元素的分类基本上是按inline和block进行分类的。所以嵌套的规则也是这样规定,那么所谓的行内元素一般不能包涵块级元素,也是html4和xhtml的规范,那么按照这个,a包涵div是不合法的,那怎么去确认这个东西
http://jkorpela.fi/html/nesting.html
这篇文章里面可以直观的看到她们的嵌套规则,在其中找到a元素,解释是a元素里面不能再包涵a元素,在规范里面是不合法的。但是在h5中将a包涵div合法化,但并不是说他就是合法。在h5计算的时候将a标签透明化