最近在重新学习html的知识,算是对html的一个重新认识吧!别小看了这东西,一切的网页可都是以它为基础的!下面就详细归纳一下html标签的嵌套规则吧,希望对大家有所帮助。 ! U% e& T/ o" f5 d" M% g0 W% A
xhtml的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由自己的个人习惯胡乱嵌套—— xhtml 必竟不是 xml。 2 z0 S6 ]+ L, X1 y% k
在 xhtml 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。
* G! T' C6 F4 R( J. _9 X提到 xhtml 标签的嵌套规则,我们先得知道有这么二类 xhtml 标签:
) [% v( A; C, Q9 d& S一类叫做 块级元素(block) ! T- I. p* ^9 }, t4 }. F
一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等) ' ^+ U) H4 h. Q4 u( T1 O2 m
块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里:
2 ?$ Q: s! p& U) U" \( b# J代码如下:* y2 @) f) f4 U9 b0 ?% U' E8 D( R8 @3 c
<div style=”border: 1px solid red;”>div1</div> 4 S# t* u0 R$ Z( r
<div style=”border: 1px solid red;”>div2</div>
0 Z$ F- P+ _' [浏览器的呈现效果:
$ r9 o$ X) o" ] W' ydiv1
) j& @$ w- A, S! ddiv2 O. N! V8 |7 N( y* o4 h- S
页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block); 4 C" Q! P1 N' R4 \5 B8 b: I
再把下面二行代码也放进 body 标签里: 6 M% n% u4 z4 F ^) ?4 |! C4 W+ E
代码如下:
/ T$ K% \. L9 ?) @<span style=”border: 1px solid red;”>span1</span> , ]2 V' s5 o3 ^% K
<span style=”border: 1px solid red;”>span2</span>
6 m3 E$ c, w8 ]8 `$ _, P浏览器的呈现效果:
4 @; Z8 v! U4 `span1 span2 % ]1 u3 S6 m3 R0 z2 v
这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline);
5 d6 _ n# L' F+ \( r块级元素和内嵌元素的区别:
5 J" n! G6 y. r6 ^/ w, p8 r+ S·块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:
; j9 Y [- j6 @1 Z* b+ R. Jaddress、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul
, o! {1 R- y+ ^- |) |6 U· 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素:
; j! e6 I# [$ @# J3 e/ ya、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 # o$ g8 m. f9 n- o+ J: Y' Y$ K6 c
· 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:
4 }; `5 o( V' W, C! p: udisplay: block; /* 转成块元素 */ 9 h% E4 p2 f) z) Q' e8 \, q
display: inline; /* 转成内嵌元素 */ - ?, s1 u7 j4 }! b
· 块元素 和 内嵌元素 对于 css 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。 : W! x& T# Q o, d- u4 v0 P
简单认识了块元素和内嵌元素以后,下面就可以罗列 xhtml 标签的嵌套规则了: % n6 N2 j4 Y8 b% Y
1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:
5 p# x9 I7 u# i<div><h1></h1><p></p></div> —— 对
" ?) ?; K) s; z' f. N5 V6 W& G1 e: V<a href=”#”><span></span></a> —— 对 0 |; z2 {8 X8 V% u0 C* }! s
<span><div></div></span> —— 错
( i4 r; [! g6 ^& ~0 V0 s8 F" g2. 块级元素不能放在<p>里面:
$ }. E4 D; b2 [<p><ol><li></li></ol></p> —— 错
2 M" b4 d' p! J7 @- n3 ]<p><div></div></p> —— 错 1 n: |; N3 {; h
3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:
# P2 e9 S3 F7 z/ J- N. l, p0 J4 hh1、h2、h3、h4、h5、h6、p、dt
0 g, x/ P: W4 R) S) n! S' g4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明:
2 |% e \* v$ ]9 d7 W; [- Eli 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴…… 3 U1 l( Z% u8 t- @3 W$ U7 Y9 U) c
5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:
5 Y! T5 w+ Y, C% K( Z7 G<div><h2></h2><p></p></div> —— 对
+ J7 s: J* C' J4 z/ w<div><a href=”#”></a><span></span></div> —— 对
0 U |; h( _% P' d<div><h2></h2><span></span></div> —— 错
B) L; g( [ e, U* [, X. `0 a
更多网页制作信息请查看: 网页制作 |
|