一、元素类型分类依据和元素类型分类
根据css显示分类,XHTML元素被分为三种类型:块状元素(block element),内联元素(inline),行内块元素(inline-block)
1.块状元素(block element)
A)块状元素在网页中就是以块的形式显示,所谓块状就是元素显示为矩形区域,常用的块状元素包块div,dl,dt,dd,ol,ul,fieldset,(h1-h6),p,form,hr,colgroup,col,table,tr,td,等。
B)默认情况下,块状元素都会占据一行;默认情况下,块状元素会按顺序自上而下排列。
C)块状元素都可以定义自己的宽度和高度。
D)块状元素一般都作为其他元素的容器,它可以容纳其它内联元素和其它块状元素。我们可以把这种容器比喻为一个盒子
2.内联元素(inline element)(或是行内元素)
A) 常见的内联元素如:a,span,i,em,strong,b等
B) 内联元素的表现形式是始终在行内逐个进行显示;
C) 内联元素没有自己的形状,不能定义它的宽和高,它显示的宽度、高度只能根据所包含内容的高度和宽度来确定,它的最小内容单元也会呈现矩形形状;
D)内联元素也会遵循盒模型基本规则,如可以定padding,border,margin,background等属性,但个别属性值不能正确显示;
3.内联块状元素
内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,img>、input标签就是这种内联块状标签。
inline-block元素特点:
A、和其他元素都在一行上,常见标签:img input textarea;
B、元素的高度、宽度、行高以及顶和底边距都可设置
常见标签:
img - 图片
input - 输入框
textarea - 多行文本输入框
二、元素类型的转换
盒子模型可通过display属性来改变默认的显示类型
display属性与属性值 (18个属性值)
属性值:block/inline/inline-block/none/list-item/table-header-group/table-footer-group
作用:块状元素和内联元素之间的转换。
说明:各属性值的作用
1)Block块状显示:类似在元素后面添加换行符,也就是说其他元素不能在其后面并列显示。或者就是让元素竖排显示。
2)inline内联显示:在元素后面删除换行符,多个元素可以在一行内并列显示。或者就是让元素横排显示。
3)当元素设置了float属性后,就相当于该元素具备块状元素显示的特点;
4)Inline-block行内块元素显示:元素的内容以块状显示,行内的其他元素显示在同一行。
垂直对齐方式:{vertical-align:top/bottom/middle;}只适用于display:inline-block属性,步骤如下:
1、给当前元素添加兄弟标签,给当前兄弟元素添加display:inline-block、height(高度与父元素同高)、vertical-align:middle;
2、给当前元素添加vertical-align:middle
3、给父元素添加text-align:center
4、应用于一组图片不规则,但是需要全部居中的案例
5)none 此元素不会被显示。
6)list-item:将元素转换成列表。li的默认类型。
7)A、大部分块元素display属性值默认为block,其中列表的默认值为list-item。
B、大部分内联元素的display属性值默认为inline,其中img,input,默认为inline-block。
三、置换和非置换元素的概念
拓展:
1、引题
在之前的浅谈HTML中的块级元素和内联元素中了解到了内联元素一般是不能设置宽高的,但是也有特殊。比如img是内联元素,但可以设置宽高,这肯定让不少人迷惑。这样我们就要引入HTML中置换元素的概念(非置换元素在w3c中没有给出明确的解释,姑且我们就把除置换元素外的元素当作非置换元素吧)。
2、可变元素:需要根据上下文关系确定该元素是块元素或者内联元素,如img、input标签、button标签。
3、置换元素与非置换元素
a) 置换元素:
浏览器根据元素的标签和属性,来决定元素的具体显示内容。
例如:浏览器会根据img标签的src属性的值来读取图片信息并显示出来,而如果查看(x)html代码,则看不到图片的实际内容;input标签的type属性来决定是显示输入框,还是单选按钮等。 (x)html中的img、input、textarea、select都是置换元素。这些元素往往没有实际的内容,即是一个空元素。
置换元素在其显示中生成了框,这也就是有的内联元素(img,input)能够设置宽高的原因。
b) 不可替换元素(非置换元素):
(x)html 的大多数元素是不可替换元素,即其内容直接表现给用户端(如浏览器)。