前端开发基础之
CSS进阶
CaelumTIan@SIPC115
这节课讲什么?
- 基础盒模型
- 视觉格式化模型
盒模型基础
盒模型
width
- 指定 content box宽度
- 百分数相对于父容器(包含块)的content box宽度
- 无继承性
height
- 指定 content box 高度
- 百分数相对于父容器(包含块)的content box高度
- 只有当包含块的高度不依赖该元素时,百分比高度才生效
- 无继承性
margin
- 外边距
- margin-top、margin-right、margin-bottom、margin-left
- 缩写:margin
- 百分数:相对于父元素width
- margin 中 auto的计算
外边距折叠(正负)
<style>
.a {
background: orange;
height: 100px;
margin-bottom: 100px;
}
.b {
background: purple;
height: 100px;
margin-top: 100px;
}
</style>
<div class="a"></div>
<div class="b"></div>
padding
- 内边距
- padding-top、padding-right、padding-bottom、padding-left
- 缩写:padding(上,右,下,左) 两两相对应
- 百分数:相对于父元素width
border
- 边框
- border-width: 1px
- border-style: solid | dashed | dotted
- border-color: #f00
- border: 1px solid #ccc
- border-left-width: 4px
- 不会继承
浏览器是如何排版的
视觉格式化模型
块级元素(Block-level Elements)
- 会被格式化成块状的元素
- 例如p、div、section等
- 将display设置为block、list-item、table使元素变为块级
行级元素(内联元素)
- 不会为其内容生成块级框
- 让其内容分布在多行中
- display设置为inline, inline-block, inline-table使元素变为行级
水平格式化
垂直格式化
display属性
- block 块级
- inline 行级
- inline-block 元素本身是行级,为其内容生成块级框
- none 在排版时将元素忽略
定位方案
- 正常流
- 浮动
- 绝对定位
排版流(文档流)
- 除根元素、浮动元素和绝对定位元素外, 其它元素都在排版流之内
- 而根元素、 浮动和绝对定位的元素会脱离文档流
- 在排版流中块级元素独占一行;行级元素可以水平并排摆放
浮动(float)
- 浮动可以实现将多个块级框并排显示
- 浮动元素从排版流中脱离,被漂浮在容器左边或右边
- 浮动元素不会影响其后面的块级框
- 但是浮动元素后面的行级元素会避开浮动元素
clear
- 指定元素哪一边不能与之前的浮动框相邻
- clear: left | right | both
- 清除浮动的常用方案
position
- static,非定位,默认值
- relative,相对定位(相对自己)
- absolute,绝对定位,相对非static父级元素定位
自动计算
- 这些值都可以不指定
- top
- left
- right
- bottom
- width
- height
- 如果冲突了怎么办?
position:fixed
- 相对于Viewport定位
- 不会随页面滚动发生位置变化
堆叠层次
- z-index指定元素在所属堆叠上下文中的层次
- 堆叠上下文的形成
- z-index值为非auto的定位元素
绘制顺序
- 每个堆叠上下文中, 从下到上的顺序显示:
- background, boder
- z-index为负值的定位元素
- 正常块级元素
- 浮动
- 行级元素
- z-index为0
- z-index为正数
SIPC115 CSS2
By caelumtian
SIPC115 CSS2
- 477