关于行内元素、块级元素和空元素的区别以及嵌套

css盒子模型中,html元素中有块元素(block element)和内联元素(inline element)。那么它们究竟是什么呢? 

其实,这两种元素都是html规范中的概念。块元素(block element)一般是其他元素的容器元素,能容纳其他块元素或内联元素。最常见的就是P和div这两个,说的简单点,块元素就好比一个四方块,可以放其他的四方块,并可以呈现在页面上任何地方。默认情况下块元素,是独占一行的。常见的块元素:div、h1-h6标题、form(只能用来容纳其他块元素)、hr、p、table、ul、ol等。内联元素(inlineelement)也叫内嵌元素或行内元素,一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素,常见内联元素有a和span。 

一.块级元素和内联元素的区别:

1.块元素,总是在新行上开始;内联元素,和其他元素在一行;
2.
块元素,能容纳其他块元素或者内联元素;内联元素,只能容纳文本或其他内联元素;
3.块元素中高度,行高以及顶和底边距都可以控制;内联元素中高,行高及顶和底边距不可改变。

(这上面的区别,指的是默认情况下的,不包括CSS的刻意控制。也就是说当使用css控制时,块元素和内联元素的属性差异会越来越小。

二.各自的特点:

1.block(块)元素的特点:
总是在新行上开始;
高度,行高以及外边距和内边距都可控制;
宽度缺省是它的容器的100%,除非设定一个宽度。
它可以容纳内联元素和其他块元素

2.inline元素的特点:
和其他元素都在一行上;
高,行高及外边距和内边距不可改变;
宽度就是它的文字或图片的宽度,不可改变;(宽度只与内容有关)
内联元素只能容纳文本或者其他内联元素

(不可以设置宽高,其宽度随着内容增加,高度随字体大小而改变,内联元素可以设置外边界,但是外边界不对上下起作用,只能对左右起作用,也可以设置内边界,但是内边界在ie6中不对上下起作用,只能对左右起作用)

三、1.常见的块元素:

address- 地址
blockquote -
块引用
center - 举中对齐块
dir - 目录列表
div - 常用块级容易,也是css layout的主要标签
dl - 定义列表
fieldset - form控制组
form - 交互表单
h1 - 大标题
h2 - 副标题
h3 - 3级标题
h4 - 4级标题
h5 - 5级标题
h6 - 6级标题
hr - 水平分隔线
isindex - input prompt
menu - 菜单列表
noframes - frames可选内容(对于不支持frame的浏览器显示此区块内容)
noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
ol - 排序列表
p - 段落
pre - 格式化文本
table - 表格
ul - 非排序列表
2.常见的内联元素:
a - 锚点
abbr - 缩写
acronym - 首字
b - 粗体(不推荐)
bdo - bidi override
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.常见的可变元素:

可变元素为根据上下文语境决定该元素为块元素或者内联元素。

applet - java applet
button -
按钮
del -
删除文本
iframe - inline frame
ins - 插入的文本
map - 图片区块(map)
object - object对象
script - 客户端脚本

4.常见的空元素:

<input /> <img /> <isindex/> <area /> <base /> <basefont />
<bgsound /> <col /> <embed /> <frame /> <keygen/> <link />
<meta /> <nextid /> <param /> <plaintext /> <spacer/> <wbr />
<!DOCTYPE> <!-- -->

四、块级元素和内联元素之间的转换:

1.display
块元素默认display:block;行内非替换元素(a,span)默认为display:inline;行内替换元素(input)默认为display:inline-block;
a.display:none;      /*不显示该元素,也不会保留该元素原先占有的文档流位置。*/
b.display:block;     /*转换为块级元素。*/
c.display:inline;     /*转换为行内元素。*/
d.display:inline-block;转换为行内块级元素。/*其实仍为行内元素,但是可以设置width及height属性等*/

2.float
当把行内元素设置完float:left/right后,该行内元素的display属性会被赋予block值,且拥有浮动特性。行内元素去除了之间的莫名空白。
3.position
当为行内元素进行定位时,position:absolute与position:fixed.都会使得原先的行内元素变为块级元素。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章