最近在重新学习html的知识,算是对html的一个重新认识吧!别小看了这东西,一切的网页可都是以它为基础的!下面就详细归纳一下html标签的嵌套规则吧,希望对大家有所帮助。
; ?5 H k; d( b/ Hxhtml的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由自己的个人习惯胡乱嵌套—— xhtml 必竟不是 xml。
& n" b! k p& {3 N在 xhtml 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。
* r \. }0 B* j$ n9 ?; F! `提到 xhtml 标签的嵌套规则,我们先得知道有这么二类 xhtml 标签:
* S4 P1 ]: q8 L* d$ C一类叫做 块级元素(block) , C0 O8 J* U3 m9 S0 L8 }
一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等)
. y# s1 K- |! v! c% M7 H块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里: ! Y( z* B4 x; ]8 X# C
代码如下:( d |$ O6 H) D% m* {
<div style=”border: 1px solid red;”>div1</div> 4 N# f! _5 V1 O$ a! n! b' |
<div style=”border: 1px solid red;”>div2</div>! B ?- o/ n1 d/ a5 ~; z
浏览器的呈现效果:
2 {# K9 d" y9 n7 {- zdiv1
; l3 B( U7 @1 R+ S' {' o# \div2 3 O: ]: F. s: |0 l
页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block);
3 @: E) e, X# p! s再把下面二行代码也放进 body 标签里: ' M1 N1 R L* n- @0 v# H
代码如下:
/ [6 ^; X7 u) M: H, C# J<span style=”border: 1px solid red;”>span1</span>
$ L7 O. a: O& `$ u<span style=”border: 1px solid red;”>span2</span>
: c% g2 m t" H* X& P浏览器的呈现效果:
5 d6 l) s9 ^5 u# t8 U: ^, k2 Mspan1 span2
: w0 s( b2 n' o1 W这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline); ; l1 @' T, B7 P1 V' g ]) J
块级元素和内嵌元素的区别: ) s0 e @) O( a- O
·块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:
- d+ J# O! Y& Z- R$ _2 W1 faddress、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul
+ T& @/ P/ K3 m, e, n4 J2 I6 A· 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素:
4 t2 w3 m1 @) \8 oa、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 7 L- z. ]; ^) Q" r& A3 K, g6 o |: w
· 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:
( @* ^% e1 F! Sdisplay: block; /* 转成块元素 */
# ?' `0 x* H6 w, _- ~/ T$ L0 p. udisplay: inline; /* 转成内嵌元素 */ , h3 {. _% x" R8 { r
· 块元素 和 内嵌元素 对于 css 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。 " ]; ~3 V' V) X& z. K, n
简单认识了块元素和内嵌元素以后,下面就可以罗列 xhtml 标签的嵌套规则了:
6 [1 B% l9 f- W1 l) v4 N1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素: 7 s0 A* n0 B# |( f
<div><h1></h1><p></p></div> —— 对
& P" i4 [) N- R6 O<a href=”#”><span></span></a> —— 对 # N; r( N1 s/ b" ?3 s! A
<span><div></div></span> —— 错
! r+ Y, }* L" }* m) G+ x0 a5 T8 w2. 块级元素不能放在<p>里面:
5 G- C3 [# {1 i3 x" @- f! b; `6 b8 I* Q<p><ol><li></li></ol></p> —— 错 9 ]' S( C1 P% u# _
<p><div></div></p> —— 错 * Y# q8 [2 _% y5 C5 M% d" d% V Z
3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是: b, g# b( q: [
h1、h2、h3、h4、h5、h6、p、dt
' p3 @" U' Q" W% c" A4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明:
+ |- T8 F6 J+ f2 j- K. l$ tli 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴…… 5 _0 O+ [: A# L3 U3 X1 T
5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列: + _2 }! i: B5 P, v
<div><h2></h2><p></p></div> —— 对
4 j8 K3 j4 D- t- C<div><a href=”#”></a><span></span></div> —— 对 1 ^! w( N Q% T# T3 X: S, R1 o
<div><h2></h2><span></span></div> —— 错
. y, z% v1 W; G: G; B7 ?) K( V& {6 {9 c m p' ]' O
更多网页制作信息请查看: 网页制作 |
|