当前位置: 首页 > 前端技术 > 正文

xHTML+CSS块状元素和内联元素

我们在布局页面的时候,会将HTML标签分成两种,块状元素和内联元素(我们平时用到的标签div和p就是块状元素,链接标签a就是内联元素)。它们是很重要的两个概念,既然说到概念就先看看块状元素和内联元素的定义,在定义中你要留意它们两个的不同之处。

块状元素

一般是其他元素的容器,可容纳内联元素和其他块状元素,块状元素排斥其他元素与其位于同一行,宽度(width)高度(height)起作用。常见块状元素为div和p。

内联元素

内联元素只能容纳文本或者其他内联元素,它允许其他内联元素与其位于同一行,但宽度(width)高度(height)不起作用。常见内联元素为a和img。

做了个对比表,帮助大家理解。

HTML块状元素和内联元素对比表

对于上面的概念,我们用实例的方式给大家讲明白,如下

【要求】ID为div1的红色(#900)区域,宽度和高度均为300像素,并且包含一个ID为div2的绿色区域,长度宽度均为100像素的div2。

CSS代码如下:

[css]
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
[/css]

HTML代码如下:

[html]
<div id="div1">
<div id="div2"></div>
</div>
[/html]

为了方便初学者更好的学习,把完整的代码发出来

[html]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>可容纳内联元素和其他块状元素</title>
<style type="text/css">
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>
[/html]

块状元素和内联元素
如果你做出来了,就继续往下看,咱们给刚才的要求再加一个条件,在div1里放入一个链接a,内容为“可容纳内联元素和其他块状元素”颜色为白色。

CSS代码如下:

[css]
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
a{color:#fff;}
[/css]

HTML代码如下:

[html]
<div id="div1">
<div id="div2"></div>
<a href="http://jmsbang.com/article/61.html">可容纳内联元素和其他块状元素</a>
</div>
[/html]

是不是下面的效果:

块状元素和内联元素2

到这里,我们可以看到div1这个块状元素里面拥有两个元素,一个是块状元素div2,另一个是内联元素a,这就是块状元素概念里面说的“一般是其他元素的容器,可容纳内联元素和其他块状元素”,为什么要说一般呢,因为块状元素不只是用来做容器,有时还有其他用途,这方面的内容会在后面详细讲解,因为不属于本节知识,就不多说。

好~!我们继续加条件,在div1里面div2的后面再放入一个ID为div3的长宽均为100像素的蓝色(#009)区域块

CSS代码如下:

[css]
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
#div3{width:100px; height:100px; background:#009;}
a{color:#fff;}
[/css]

HTML代码如下:

[html]
<div id="div1">
<div id="div2"></div>
<div id="div3"></div>
<a href="http://jmsbang.com/article/61.html">可容纳内联元素和其他块状元素</a>
</div>
[/html]

是不是下面这个效果:

块状元素和内联元素3

是不是和自己事先想象的不一样,本以为蓝色会处于绿色的右侧,可是却位于下侧,如果你再加几个div4,div5同样的他们还是继续位于前一个下面,垂直排列,这就是块状元素概念中说的“块状元素排斥其他元素与其位于同一行”说白了,就是块状元素比较霸道,谁都别想和他坐同一行,甭管你是和他有亲戚关系的块状元素还是毫无联系的内联元素,都不行,都到下面一行待着去,看看例子中,绿色方块和蓝色方块是不是各处同一行,内联元素a也别想和他处一行,但是事情是没有绝对的,块状元素不是不允许其他元素和他处一行嘛,不是比较霸道嘛,没关系,咱有办法,具体什么办法,我们后面会详细讲解,知识不属于本节内容,就也不多说了。

到这里,我想大家对“块状元素”的概念已经比较清楚了,下面通过例子给大家继续解释“内联元素”的概念,当然还是继续加条件,加个什么条件呢,在a的后面再加一个内容为“Love CSS”的链接,所有链接的背景设置为淡橙色(#F93)

CSS代码如下:

[css]
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
#div3{width:100px; height:100px; background:#009;}
a{color:#fff; background:#F93;width:100px;height:50px;}
[/css]

HTML代码如下:

[html]
<div id="div1">
<div id="div2"></div>
<div id="div3"></div>
<a href="http://jmsbang.com/article/61.html">可容纳内联元素和其他块状元素</a>
<a href="#">Love CSS</a>
[/html]

效果是不是下面这个:

块状元素和内联元素4

两个链接a是不是处于同一行(不要忘记a是内联元素),这就解释了概念上说的“内联元素允许其他内联元素与其位于同一行”,为什么不说“内联元素允许其他元素与其位于同一行”,因为其他元素包括两种元素,内联元素和块状元素,它如果和内联元素在一块那就肯定在一行了,如果和块状元素在一块,即使它同意,他后面的块状元素也不同意,块状元素会另起一行位于它的下一行。

我们继续添加条件,现在大家给内联元素a在css中加上宽度和高度,比如width:100px;height:50px;,看看有什么变化

[css]
#div1{width:300px; height:300px; background:#900;}
#div2{width:100px; height:100px; background:#090;}
#div3{width:100px; height:100px; background:#009;}
a{color:#fff; background:#F93;width:100px;height:50px;}
[/css]

看到效果了没有,是不是没有任何变化呢,这就说明了概念中的内联元素的宽度(width)高度(height)不起作用,它的大小只随内部文本或者其他内联元素变化。

如果要让定义好的宽度和高度对内联元素起作用,有什么办法没有?答案是:当然。因为事情没有绝对的在CSS上面也成立,因为CSS中有两种元素,内联元素和块状元素,但是宽度和高度只对块状元素起作用,内联元素不起作用,如果我们把内联元素转化成块状元素,他不就具有了块状元素的特性了嘛,当然宽度和高度也就起作用了,如果你能想到这个思路,证明你的大脑现在非常活跃哟,这时候我们只需要给相应的内联元素加上一个属性display:block就可以了,如下

[css]a{color:#fff; background:#F93;width:100px;height:50px; display:block;}[/css]

怎么样,起作用了吧,和下面的效果一样吗~

块状元素和内联元素5

为什么两个a不处于同一行了呢,那是因为这两个内联元素a都被转化成了块状元素,既然成功转化为块状元素,就应该具有块状元素最显著的一个特点,不允许其他元素与他同一行,所以这两个a垂直排列喽~

那有没有办法让他们处于同一行?当然有啦,后面会告诉大家^_^

好了,到这里,大家通过实例对内联元素的概念理解的也应该很透彻了,这里列出所有的内联元素和块状元素,方便以后大家查阅,这里说的是“查阅”,不是让大家记住,常用的块状元素和内联元素,就那么几个,多练习练习自然而然就记住了,平时给大家做练习的时候更强调的是要理解,而不是刻意去记!

xHTML+CSS块状元素和内联元素:等您来吐槽!

xHTML+CSS块状元素和内联元素:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!