CSS布局

vavid 2020-05-30

标准文档流

标准文档流,指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式。前面的内容发生了变化,后面的内容位置也会随着发生变化。

HTML就是一种标准文档流文件。

微观现象

1. 空白折叠现象

2. 文字类的元素如果排在一行会出现一种高低不齐、底边对齐的效果

3. 自动换行,一行内容写满时会自动进行换行

标准文档流等级

在标准流中,大部分标签是区分等级的,习惯将标签划分为几种常见的加载级别: 块级元素、行内元素、行内块级元素等。

块级元素: 大部分容器标签包括p标签都是块级元素,比如div、h1等

行内元素: 大部分的文本级标签,比如span、a、b等。

行内块级元素: 比如img、input等。

1. 块级元素

a. 块级元素可以设置宽高,在浏览器中正常加载

width: 200px;
height: 100px;

b. 块级元素必须独占一行,不能与任何其他标签并排一行

c. 块级元素如果不设置宽高,会自动撑满父级的width区域: 高度不设置,会被内容自动撑开高度

2. 行内元素

a. 行内元素不能正常加载宽度和高度属性,其他的盒模型虽然能设置,但是容易出现加载问题

span{
    width: 100px;
    height: 100px;
    padding: 10px;
    border: 3px solid #f00;
    margin: 10px;
    background-color: pink;
}

b. 行内元素可以与其他的行内或行内元素块并排一行显示

c. 行内元素不论是否设置宽高,宽度和高度都只能被内容自动撑开

3. 行内块元素 

a. 行内块元素可以设置宽度和高度

b. 行内块元素可以与其他的行内或行内块并排一行显示

c. 行内块元素如果不设置宽高,要么以原始尺寸加载要么被内容撑开

d. 行内块依旧具有标准流的微观性质,例如空白折叠现象

显示模式display

标准流中的元素有自己默认的浏览器加载模式,加载模式不是一成不变的,后期可以通过display属性更改一个标签的显示模式。

属性值: 标签根据属性值不同,可以加载对应显示模式的特点

block  块, 表示标签要以块级元素模式加载,具备块级特点

display: block;

inline   行内, 表示标签要以行内元素模式加载, 具备行内特点

display: inline

inline-block 行内块,表示标签要以行内块模式加载,具备行内块特点

display: inline-block

none: 没有,表示标签及内部的内容直接隐藏,让出原有标准流的位置

display: none;

隐藏的元素要想再次显示: 可以将display的属性值设置为block;

display属性更改的显示模式并没有改变标准文档流本质性质,页面还是只能从上往下加载,存在空白折叠现象等微观性质。要想实现更多的界面效果需要脱离标准文档流的限制。

标签脱离标准文档流的方法: 浮动、绝对定位、相对定位

浮动

定义

浮动是一种非常重要的布局属性。

属性名: float,漂流、浮动的意思

属性值: left  左浮动  右浮动  right

作用: 让元素脱离标准文档流,同一级的浮动的元素可以并排在一排显示

.box p{
    float left;
    width: 100px;
    height: 100px;
    background-color: skyblue;
    margin-right: 10px;
}
float: right

相关推荐