最近在重新学习html的知识,算是对html的一个重新认识吧!别小看了这东西,一切的网页可都是以它为基础的!下面就详细归纳一下html标签的嵌套规则吧,希望对大家有所帮助。
6 X5 b! t0 S6 ~9 H) x# C( h" Oxhtml的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由自己的个人习惯胡乱嵌套—— xhtml 必竟不是 xml。
2 d, `9 r. Y) i# Q+ v9 X在 xhtml 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。
3 P$ [% b+ v, j! w/ A提到 xhtml 标签的嵌套规则,我们先得知道有这么二类 xhtml 标签: " p& H2 k& z" L7 Q3 }8 K$ Q( }! c
一类叫做 块级元素(block)
6 E% `- s( F. r$ e# o/ t* M一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等) ) ]9 Q# v' ^# \; R* s9 T2 f/ P
块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里: . D2 S* ?& \& D9 E+ ~: H. A0 y L! ]
代码如下:
3 O( D' L4 F* u0 v* |4 G# [<div style=”border: 1px solid red;”>div1</div>
2 g2 A `0 K" R<div style=”border: 1px solid red;”>div2</div>
6 v: E" T3 b# d( O0 V( \7 L# v浏览器的呈现效果: - \ k7 s& Y7 H( ?$ e- D- q @
div1
% O5 b# O8 m+ H8 x1 U' e; Idiv2
- X# h1 f0 C. o7 _页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block); 1 J9 ^) r' k8 D
再把下面二行代码也放进 body 标签里: & z m( h0 z4 g
代码如下:
/ Q6 w( ?" p |) K<span style=”border: 1px solid red;”>span1</span> / i6 t4 ^. n1 x: k; ]
<span style=”border: 1px solid red;”>span2</span>
: y5 l& _7 P; v* v浏览器的呈现效果:
: A& V3 c4 v1 ]" s( K- C- o% cspan1 span2 , H% M0 w; E: ?# F8 v) B' T+ X
这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline);
& Z& p3 G, K* Z! y. q) T6 T, F1 E块级元素和内嵌元素的区别:
# _9 I5 ~/ d- o. N! U6 T# \3 i·块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:
" D! }, a* ~: n. Caddress、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul , |6 R. ~" D b6 G C
· 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素: * z+ }: d3 k. p% [; h
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
0 n' T- P0 ^, F0 \. O6 I· 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:
! b$ m i- D0 ]2 o' ^# ?; qdisplay: block; /* 转成块元素 */ * R" c7 ? C$ P0 S$ v
display: inline; /* 转成内嵌元素 */
* g( `) E, j" ~· 块元素 和 内嵌元素 对于 css 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。
: ]# u% U8 P* q; t" v8 }简单认识了块元素和内嵌元素以后,下面就可以罗列 xhtml 标签的嵌套规则了: / m X0 P6 E9 A% e1 H: ?( Z
1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素: ) ?4 f& b9 y, C5 Z9 e S+ V9 t2 W
<div><h1></h1><p></p></div> —— 对
9 Q! ~; [* C9 C5 s: i<a href=”#”><span></span></a> —— 对 $ h, [1 i; a1 `9 H) \: C- M L# C
<span><div></div></span> —— 错
; R5 T! j7 A/ O+ s( Z3 @! p2. 块级元素不能放在<p>里面:
* E M5 ?' \5 d* I4 M6 R @<p><ol><li></li></ol></p> —— 错 . ~4 I4 V4 A) g* r8 k
<p><div></div></p> —— 错
3 R9 A2 a: N. q3 q3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是: 1 E8 E' F9 R# }$ O7 p. J
h1、h2、h3、h4、h5、h6、p、dt
+ o ?4 ~% K' I+ `3 w$ u) u, o! v4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明: - j/ q9 H9 T' U
li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴…… d. L4 ^2 B$ Q( ?
5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:
$ x" V. M7 J9 a8 S& e$ k<div><h2></h2><p></p></div> —— 对
" Y' l, a5 `& }1 `4 E5 O0 v% ]3 u& ~<div><a href=”#”></a><span></span></div> —— 对
* x, p- \7 j5 K* s8 p/ [<div><h2></h2><span></span></div> —— 错 , X b" |3 B9 ~4 Y6 ?
- g/ R+ \0 R5 {2 @# z4 ]
更多网页制作信息请查看: 网页制作 |
|