1.清除浮动的方法
------>所有的盒子都是标准流,独占一行。
清除浮动主要是为了解决父级元素因为子级浮动引起内部高度为0的问题
1.额外标签法,在最后一个浮动元素标签的后面新添加一个标签,然后在这个标签里面clear:both;
2.父级元素添加overflow属性方法
可以给父级元素添加overflow:hidden/auto/scroll
3.使用after伪元素元素清除浮动
.clearfix:after{//正常浏览器清除浮动
content:"";
display:block;
height:0;
clear:both;
visibility:hidden;
}
//IE6清除浮动
clearfix{
*zoom:1;// zoom:1是IE6清除浮动的方式
}
4.双伪元素清除浮动的方式
使用bofore和after双伪元素清除浮动
.clearfix:before,.clearfix:after{
content:"";
display:table;
}
.clearfix:after{
clear:both;
}
.clearfix{
*zoom:1;
}
定位
定位分为位偏移和定位模式
位偏移指的是left,right,top,bottom。
定位模式分为
static 自动定位(默认定位方式)
relative 相对定位,相对于其原文档流的位置进行定位
absolute 绝对定位,相对于其上一个已经定位的父元素进行定位
fixed 固定定位,相对于其浏览器窗口进行定位
1.相对定位
特点:相对定位最重要的一点是它可以通过边偏移移动位置,但是原来的所占的位置,继续占有。
其次每次移动位置,是以自己的左上角为基点移动(相对于自己来移动位置)
就是说,相对定位的盒子仍在标准流中,它后面的盒子扔以标准流方式对待它(相对定位不脱标)
2.绝对定位
父级没有定位,若所有父元素都没有定位,以浏览器当前屏幕屏幕为准对齐
如果父级有定位,则绝对定位是将元素依旧最近的已经定位(绝对,固定或相对定位)的父元素(祖先)进行定位
3.子绝父相
绝对定位不占位置
相对定位占位置
定位定位,定是定在浏览器的哪个位置,位是那个位置是否保留
4.绝对定位的盒子水平/垂直居中对齐
普通的盒子是左右margin改为auto就可,但是对于绝对定位就无效了
定位的盒子也可以水平或者垂直居中,有一个算法:
1.首先是left 50%,父盒子一般的大小margin-left。
2.然后走自己外边距负的一半宽度值就可以了
5.固定定位
1.固定定位的元素跟父亲没有任何关系,只认浏览器。
2.固定定位完全脱标,不占有位置,不随着滚动条滚动
定位模式转换
跟浮动一样,元素添加了绝对定位和固定定位之后,元素模式也会发生转换,都转换为行内块元素,
行内块的宽度和高度跟内容有关系
如果没有内容的话,要添加高和宽
在CSS中,要想调整重叠定位元素的堆叠顺序,可以对定位元素应用z-index等级属性,其取值可为正整数,负整数和0.
1.z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上。
2.如果取值相同,则根据书写顺序,后来居上。
3.后面数字一定不能加单位。
4.只要相对定位,绝对定位固定定位有此属性,其余标准流,浮动,静态定位都无此属性,亦不可指定此属性。。
定位分为位偏移和定位模式
位偏移分为left,right,top,bottom
定位模式分为
静态定位----所有的html元素都是=属于静态定位
相对定位—
1.不彻底的脱标
2,保留位置
3.以自己原来位置的左上角为准
绝对定位
1.脱标
2.不保留位置
3.1 没有父级或者父级没有定位,以浏览器当前窗口为准
3.2 如果父级有定位,以父级的左上角为准
固定定位
1.完全脱标,不保存位置
2. 固定定位总是以浏览器当前窗口为准
固定定位是特殊的绝对定位