css position各类定位及区别

2021年09月15日 阅读数:2
这篇文章主要向大家介绍css position各类定位及区别,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

position定位:浏览器

static:静态定位;是position的默认值,元素框正常生成,也就是没有定位时的正常显示。布局

relative:相对定位;  spa

用法一:元素相对自身的原位置偏移某个距离,可是本来的空间依旧保留,表现为空白。文档

用法二:把一个元素设置为position: relative; 可使该元素的子元素相对该元素绝对定位。it

absolute:绝对定位; io

元素从文档流删除,并相对于包含块定位。元素在本来的空间关闭。元素定位后生成一个块级框,不论它原来是行内元素仍是块级元素class

包含块:最近的position值不是static的祖先元素(块级或行内),通常会指定一个元素做为绝对定位元素的包含块,将其position设置为relative并且没有偏移。scroll

fixed:固定定位; float

元素从文档流删除,并相对于浏览器视窗定位,所以不随文档滚动而移动。元素在本来的空间关闭。元素定位后生成一个块级框,不论它原来是行内元素仍是块级元素。与绝对定位的区别仅仅是包含块不一样。
包含块:浏览器视窗。static

absolute/fixed和float对比
相似:元素都会从文档流删除,可是依旧会影响布局;都会生成一个块级框,不管原来是否是块级元素。
区别:float的包含块是最近的块级祖先元素。

偏移属性:top/right/bottom/left,初始值是auto。
采用position定位以后必须采用偏移属性定义偏移量,也就是相对包含块的偏移。注意应用于position值不是static的元素。
有时也须要定义width和heigth,可是可能会和偏移属性的定义冲突,由于四个偏移属性实际上已经定义了元素的大小。此时,根据width和left属性定义左右,根据top和height属性定义上下

 

内容溢出overflow: visible/ hidden/ scroll /auto/ inherit,初始值是visible。
一个元素的大小固定,可是其内容放不下,就会致使溢出。overflow控制溢出部分的可见(visible)、不可见(hidden)、滚动可见(scroll)。

元素可见性visibility: visible/ hidden/ collapse/ inherit,初始值是visible。


visibility:hidden和display:none的区别:

visibility:hidden设置元素不可见,可是元素依旧会影响布局,只是元素部分呈现为空白;

display:none元素不显示而且从文档流中删除,对文档布局没有任何影响。