css定位与浮动

203 阅读3分钟

CSS定位与浮动

定位浮动:解决了多个块元素能在一行显示。

一、CSS定位:

Position:定位

取值:static、relative、absolute、fixed、sticky

1static默认值。静态定位的元素不会受到left、right、top、bottom影响

2relative相对定位(可以移动的相对定位元素的内容和相互重叠的元素,它原本所占的空间不会改变)

(1)如果没有定位偏移量,对元素本身没有影响。

(2)不使元素脱离文档流。

(3)不影响其它元素布局。

(4)left、right、top、bottom 相对于当前元素自身进行偏移。


运行结果:


3absolute绝对定位

(1)使元素脱离文档流

(2)使内联元素支持宽高(让内联具备块的特性)

(3)使块元素默认款根据内容决定(让块具备内联的特性)

(4)如果有定位祖先元素,相对于定位祖先元素进行偏移;没有定位为祖先元素相对于整个文档发生偏移。

注:如果祖先元素中有多个元素具备定位模式,那么是以离自己最近的祖先元素进行偏移。


运行结果:


4fixed固定定位

(1)使元素完全脱离文档流。

(2)使内联元素支持宽高(让内联具备块的特性)

(3)使块元素默认款根据内容决定(让块具备内联的特性)

(4)相对于整个浏览器窗口进行偏移,不受浏览器滚动条的影响,不会受到祖先元素的影响。



运行结果:


5stiky黏性定位

在没有到达指定位置的时候,是没有定位效果的;到达指定位置,就成了固定模式。

注:定位偏移量:left、right、top、bottom;不能单独使用,必须配合定位模式。


Z-index定位层级

默认层级为0     取值为数值,可以取正值也可取负值。值大在上面显示,值小在下面显示。


运行结果:


二、浮动(float

1float特性

加浮动的元素会脱离文档流,会沿着父容器靠左或者靠右排列,如果之间已经有了浮动元素,会挨着浮动的元素进行排列。

2、float

取值:left、right、none


运行结果:


3float注意点:

(1)只会影响后面元素。


运行结果:


(2)内容默认提升半层。


运行结果:


(3)默认宽根据内容决定。


运行结果:


(4)换行排列。当容器放不下时,会换行排列。(尽量让浮动的元素高度统一)


运行结果:


(5)主要给块元素添加;但也可以给内联元素添加。


运行结果:


4、清除浮动

1)解决上下排列问题。

利用clear属性清除浮动

Clear:left、right、both(常用,左右浮动都清除)


运行结果:


(2)解决嵌套问题

<1> after伪类:目前各大公司的做法。


运行结果:


<2>固定宽高:不推荐,不能把宽度固定,不适合做自适应效果。


运行结果:


<3>父元素浮动:不推荐,父容器会影响到后面。


运行结果:


<4> overflowhidden(BFC规范)如共有子元素溢出会受到影响。


运行结果:


<5> displayinline-block(BFC规范)父容器会影响到后面。


运行结果:


<6>空标签:不推荐,会多添加一个标签。


运行结果:


(3)清除浮动注意的问题:

Clear:both,这个属性只能给快、块标签添加;after伪类添加的内容默认为是内联元素。

块元素是存在margin-top传递问题的,但是浮动的块元素不存在传递问题。