一、元素的分类
 
根据css显示分类,XHTML元素被分为 三种类型:块状元素,内联元素,可变元素
 
1、块级元素特点
a、块状元素在网页中就是以块的形式显示,所谓块状就是元素显示为矩形区域,
 
B:默认情况下,块状元素都会占据一行,通俗地说,两个相邻块状元素不会出现并列显示的现象;默认情况下,块状元素会按顺序自上而下排列。
 
C:块状元素都可以定义自己的宽度和高度。
 
D:块状元素一般都作为其他元素的容器,它可以容纳其它内联元素和其它块状元素。我们可以把这种容器比喻为一个盒子。
 
2、内联元素(inline element)(或是行内元素)
内联元素三大特点:
 
A:内联元素的表现形式是始终以行内逐个进行显示;
 
B:内联元素没有自己的形状,不能定义它的宽和高,它显示的宽度、高度只能根据所包含内容的高度和宽度来确定,它的最小内容单元也会呈现矩形形状;
 
C:内联元素也会遵循盒模型基本规则,如可以定义padding,border,margin,background等属性,但个别属性不能正确显示;(padding-top:;margin-top/bottom:;)
 
3、常见的块级元素、内联元素
块级元素:
     div -最常用的块级元素
     dl - 和dt-dd 搭配使用的块级元素
     form - 交互表单
     h1 -h6- 大标题
     hr - 水平分隔线
     ol – 有序列表
     p - 段落
     ul - 无序列表
     fieldset - 表单字段集
     colgroup-col - 表单列分组元素
     table-tr-td  表格及行-单元格
     pre - 格式化文本 
 
 
内联元素:
     a –超链接(锚点)                              
     br - 换行                            
     i - 斜体
     em - 强调                         
     img - 图片                        
     input - 输入框              
     label - 表单标签                 
     span - 常用内联容器,定义文本内区块
     strong - 粗体强调
     sub - 下标   
     sup - 上标
     textarea - 多行文本输入框
     u - 下划线
     select - 项目选择
 
 
可变元素
需要根据上下文关系确定该元素是块元素或者内联元素。 例如:  button - 按钮             del - 删除文本     
 
二、元素的转变
 
元素类型的转换
需要根据上下文关系确定该元素是块元素或者内联元素。
 
盒子模型可通过display属性来改变默认的显示类型
 
display属性和属性值(18个属性值)
常用属性值:block/inline/inline-block/none/list-item/flex
 
作用:该属性设置或检索对象元素应该生成的盒模型的类型
 
各属性值的作用:
 
1)block块状显示:类似在元素后面添加换行符,也就是说其他元素不能在其后面并列显示。(将元素转为块状元素,使该元素拥有块状元素的特点;)
 
2)inline内联显示:在元素后面删除换行符,多个元素可以在一行内并列显示。(元素转换为内联元素)
 
3)当元素设置了float属性后,就相当于给该元素加了display:block;声明;
 
4)inline-block行内块元素显示:元素的内容以块状显示,行内的其他元素显示在同一行。(只有这一个元素类型支持vertical-align属性)img,input(行内块元素)。
 
5)none 此元素不会被显示。
 
6)list-item:将元素转换成列表。li的默认类型。
 
基本类型
A、大部分块元素display属性值默认为block,其中列表li的默认值为list-item。
 
B、大部分内联元素的display属性值默认为inline,其中img,input,默认为inline-block(行内块元素)。
 
三、垂直居中
 
设置一个元素在一个容器中垂直居中,必须更改默认的display属性值为inline-block;
并加上同级元素(标尺)(同级元素[标尺]样式设置为vertical-align:middle;width:0;height:100%;display:inline-block;) 。
 
 
三个条件:
1:必须给容器(父元素)加上text-align:center;
2:必须给当前元素转成行内块元素(display:inline-block;)再给当前元素加上vertical-align:middle;
3:在当前元素的后面(没有回车)加上同级元素span;并对span进行vertical-align:middle;width:0;height:100%;display:inline-block