最近在重新学习html的知识,算是对html的一个重新认识吧!别小看了这东西,一切的网页可都是以它为基础的!下面就详细归纳一下html标签的嵌套规则吧,希望对大家有所帮助。
5 G' ]2 Z& i. A8 S4 }xhtml的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由自己的个人习惯胡乱嵌套—— xhtml 必竟不是 xml。
; S* B7 u6 y! v在 xhtml 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。
: x1 |, g r2 m; t" d; _8 P# P提到 xhtml 标签的嵌套规则,我们先得知道有这么二类 xhtml 标签:
9 x# e2 P, l0 s! Y一类叫做 块级元素(block) / [& z/ n: h& p) ?
一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等) ! y# ]6 w q' [' Q) u$ }
块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里: 2 H/ g, `$ Y5 t( D) V2 x. V
代码如下:
* Z( w. ~$ K9 ?* Y" ?<div style=”border: 1px solid red;”>div1</div> ' S4 l f1 c, [
<div style=”border: 1px solid red;”>div2</div>
) }6 H% Q: [5 {( Y- s浏览器的呈现效果:
' x! x4 k( Z3 f! Vdiv1
5 N! k- ?' B4 u" L* pdiv2
8 @% G. k) p' k! q1 @" J& S! a页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block); ' i1 W2 P0 [& m7 R. i
再把下面二行代码也放进 body 标签里:
( t E( B- ], j, o4 [代码如下:
) a6 Y: S/ c& x1 ~* ^# q; M<span style=”border: 1px solid red;”>span1</span>
# {! r4 C) t3 g2 @& D% g) b- \<span style=”border: 1px solid red;”>span2</span>! b& p0 x7 o( F n# U
浏览器的呈现效果:
7 |: M% p- m1 gspan1 span2 - Q1 Z+ P/ I7 J Y9 Q% j
这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline);
9 J' i' o2 O! Z- a; ^0 u块级元素和内嵌元素的区别: , H# a1 F* t" z* ^" U% S, R
·块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:
$ x+ m$ c, I. A" Q+ w4 {address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul . L6 ?: i+ y0 f* |8 r# o# f# W3 |- k, T
· 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素: ' r) u8 S( @9 e4 o4 v
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
3 F! H4 d7 ]) y" F* r. F6 Z· 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:
4 i# o9 b! d- v( D: c1 ~display: block; /* 转成块元素 */ 4 p. L) g* ^6 i$ p% u9 I+ |
display: inline; /* 转成内嵌元素 */ 2 U+ E# s2 g" ?/ s4 `$ j
· 块元素 和 内嵌元素 对于 css 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。
. v4 J: n6 |$ t8 J- Q) @% K! y简单认识了块元素和内嵌元素以后,下面就可以罗列 xhtml 标签的嵌套规则了:
2 b! M/ K N+ F- ]+ |5 |1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素: : S: {. _! F( q/ l' a
<div><h1></h1><p></p></div> —— 对
) a# K8 w! ?/ S1 N2 i<a href=”#”><span></span></a> —— 对
% N- ~( e, p$ `; W3 a: k<span><div></div></span> —— 错
# T: v, E- J; S* n2. 块级元素不能放在<p>里面:
' U6 a1 ]9 V5 h4 C<p><ol><li></li></ol></p> —— 错
3 c. g, M N% h7 D3 ^<p><div></div></p> —— 错 6 }; x1 h0 r8 {4 q6 c5 F
3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是: * f- f- O7 S6 U8 _! U/ l
h1、h2、h3、h4、h5、h6、p、dt
6 m8 x& N( ^5 G# d+ Q& t. b8 o4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明: $ } Z! R% |- P% i, U
li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴…… , P) A- r' v3 h) j4 _
5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列: ( L1 f: `7 w; \! t4 I( g, [4 M7 k
<div><h2></h2><p></p></div> —— 对
, M; X( X+ E% x8 a) k& l: }<div><a href=”#”></a><span></span></div> —— 对 $ _- D* @: D, o# b
<div><h2></h2><span></span></div> —— 错 8 |8 T' p5 ?. y
' W* G7 u8 F, |4 o& ?更多网页制作信息请查看: 网页制作 |
|