html标签的嵌套
# XHTML 标签的嵌套规则
块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:
<div><h1></h1><p></p></div>
—— 对
<a href="#"><span></span></a>
—— 对
<span><div></div></span>
—— 错
块级元素不能放在
里面:
<p><ol><li></li></ol></p>
—— 错
<p><div></div></p>
—— 错
有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:
h1、h2、h3、h4、h5、h6、p、dt、li 内可以包含 div 标签 —— li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴……
块级元素与块级元素并列、内嵌元素与内嵌元素并列:
<div><h2></h2><p></p></div>
—— 对
<div><a href="#"></a><span></span></div>
—— 对
<div><h2></h2><span></span></div>
—— 错
# 块级元素和内嵌元素的区别
# 块级元素(block)
用来搭建网站架构、布局、承载内容
它包括以下这些标签:address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul
把下面二行代码放进 body 标签里:
<div style=”border: 1px solid red;”>div1</div>
<div style=”border: 1px solid red;”>div2</div>
浏览器的呈现效果: div1 div2
页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间
# 内嵌元素(inline,也叫:内联、行内、线级等)
用在网站内容之中的某些细节或部位,用以强调、区分样式、上标、下标、锚点
下面这些标签都属于内嵌元素:a、abbr、acronym、b、bdo、big、br、cite、code、dfn、em、font、i、img、input、kbd、label、q、s、samp、select、small、span、strike、strong、sub、sup、textarea、tt、u、var
把下面二行代码也放进 body 标签里:
<span style=”border: 1px solid red;”>span1 <span style=”border: 1px solid red;”>span2
浏览器的呈现效果:
span1 span2
两个 span 并列在一行
块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:
display: block; /* 转成块元素 */
display: inline; /* 转成内嵌元素 */