块级元素和行内元素之间的嵌套

众所周知块级元素可以嵌套行内元素,也可嵌套块级元素

但有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:h1、h2、h3、h4、h5、h6、p、dt。


但是行内元素是否或如何嵌套块级元素

一般来说行内元素中能不能放块元素
举一些例子
span(行内元素)里面能不能放div呢??
XHTML标准是这样定义的:
*inline
*span
*inline
解释就是 span是属于inline,并且span也只能嵌套inline

再例如a标签

XHTML标准是这样定义的:
*inline
*a
*inline excluding an enclosed a element
解释就是 a标签属于inline, a标签能嵌套inline元素,并也不能再嵌套a标签。
在没有加样式之前,a标签是可以套块级元素的,他是行内元素可以套块级元素的一个特例,但不建议这样使用。

综上所述,常规情况行内元素不可以嵌套块级元素,w3c规定块级元素中可以放块级元素和行内元素,特殊情况p标签不能放其他块级元素,比如p中放div,行内元素中可以放行内元素。

但是可以利用行内元素转块级元素或行内块级元素,display:block或者inline-block,这样块级元素或行内块级span中可以放块级元素div

我的理解就是标准毕竟只是标准,就好像大家都走路靠右边走,但是你如果非要靠左边走,也没人拦你。所以写的时候有可能会通过浏览器的认证,但是如果在某些严格符合xhtml规范的编译器或浏览器,他们就不认账了。
所以按照xhtml规范可以培养自己良好的开发习惯。

你可能感兴趣的:(开发语言,前端,html5,css,java)