布局模型
CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。在网页中,元素有三种布局模型:
- 流动模型(Flow)
- 浮动模型 (Float)
- 层模型(Layer)
流动模型
默认的网页布局模式
flow模型特征:
1.块状元素自上而下顺序分布,默认状态下,块状元素的宽度都为100%,以行的形式占据位置,霸道独占一行。
1.内联元素在所处的包含元素内从左到右水平分布
浮动模型
块状元素独占一行,让两个块状元素并排显示,可以使用浮动。
div{
width:200px;
height:200px;
border:2px red solid;
float:left;}
层模型
绝对定位(position: absolute)
将元素从文档流中拖出来,绝对定位元素不占文档流,忽略文档流的存在而浮在已有东西的上面
left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位,如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口
相对定位(position: relative)
通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。
它相对定位占文档流 ,所以定位不好它会覆盖已有的东西。
固定定位(position: fixed)
与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。
不会受文档流动影响,这与background-attachment:fixed;属性功能相同。
Relative与Absolute组合使用
相对于其它元素进行定位.
参照定位的元素必须是相对定位元素的前辈元素:
相对参照元素进行定位
//从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。
参照定位的元素必须加入position:relative;
#box1{
width:200px;
height:200px;
position:relative; //绝对
}
定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
#box2{ position:absolute; //相对
top:20px;
left:30px;
}//这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。
盒模型
箱子装东西的模型。所有的块级元素都具备盒模型特点。