CSS 定位 ( positioning )

css position 属性指定了元素的定位类型

position 属性的四个值

static
relative
fixed
absolute

元素可以使用的顶部,底部,左侧和右侧属性定位

但,这些属性无法工作,除非是先设定 position 属性

它们也有不同的工作方式,这取决于定位方法


static 定位

html 元素的默认值,即没有定位,元素出现在正常的流中

静态定位的元素不会受到 top, bottom, left, right 影响


fixed 定位

元素的位置相对于浏览器窗口是固定位置

即使窗口是滚动的它也不会移动

p.pos_fixed
{
    position:fixed;
    top:30px;
    right:5px;
}
注意: fixed 定位在 IE7 和 IE8 下需要声明 <!DOCTYPE html> 才能支持

fixed 定位使元素的位置与文档流无关,因此不占据空间

fixed 定位的元素和其它元素重叠


relative 定位

相对定位元素的定位是相对其正常位置

h2.pos_left
{
    position:relative;
    left:-20px;
}
h2.pos_right
{
    position:relative;
    left:20px;
}

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

h2.pos_top
{
    position:relative;
    top:-50px;
}

相对定位元素经常被用来作为绝对定位元素的容器块


absolute 定位

绝对定位的元素的位置相对于最近的已定位父元素

如果元素没有已定位的父元素,那么它的位置相对于 <html>

h2
{
    position:absolute;
    left:100px;
    top:150px;
}

absolute 定位使元素的位置与文档流无关,因此不占据空间

absolute 定位的元素和其它元素重叠


重叠的元素

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

CSS z-index 属性指定了一个元素的堆叠顺序,即哪个元素应该放在前面,或后面

z-index 可以是正数负数或 0 ,数值越大则越显示在顶层

img
{
    position:absolute;
    left:0px;
    top:0px;
    z-index:-1;
}

具有更高堆叠顺序的元素总是在较低的堆叠顺序元素的前面

注意:

如果两个定位元素重叠,没有指定 z-index,最后定位在 HTML 代码中的元素将被显示在最前面


CSS 定位属性

下表列出了 CSS 支持的所有的定位属性

属性说明
bottom定位元素下外边距边界与其包含块下边界之间的偏移auto
length
%
inherit
clip剪辑一个绝对定位的元素shape
auto
inherit
cursor显示光标移动到指定的类型url
auto
cross
hair
default
pointer
move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
wait
help
left定位元素左外边距边界与其包含块左边界之间的偏移auto
length
%
inherit
overflow设置当元素的内容溢出其区域时发生的事情auto
hidden
scroll
visible
inherit
overflow-y如何处理顶部/底部边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content
overflow-x如何处理右边/左边边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content
position元素的定位类型absolute
fixed
relative
static
inherit
right元素右外边距边界与其包含块右边界之间的偏移auto
length
%
inherit
top元素的上外边距边界与其包含块上边界之间的偏移auto
length
%
inherit
z-index设置元素的堆叠顺序number
auto
inherit

链接: https://www.fly63.com/course/4_202