CSS HTML

CSS 定位模式

 static 静态定位,默认定位方式(无定位意思)。

 relative 相对定位,是相对于它原来的位置设置的。

 absolute 绝对定位,是相对于它的上级元素来设置的。

 fixed 固定定位,以浏览器的可视区域为准。

语法:

div {
    postion: static;
}


偏移量

使用top、bottom、left、right属性,分别表示上下左右的偏移量,可以指定像素值或百分比。

以上四个样式只能在使用定位样式时使用。


相对定位 relative

特性:

① 偏移是相对于它原来的位置设置的。

② 原位置依然保留(其他标签不可以占据它的位置)。

HTML代码:

<div class="one">
    one
</div>
<div class="two">
    two
</div>
<div class="three">
    three
</div>

CSS代码:

<style type="text/css">
    .one,
    .two,
    .three {
        width: 100px;
        height: 60px;
    }
    .one {
        background-color: red;
    }
    .two {
        background-color: green;
    }
    .three {
        background-color: blue;
    }
</style>

效果:

将绿色DIV(two)设置为相对定位,顶部偏移20px,左侧偏移量120px。

<style type="text/css">
    .one,
    .two,
    .three {
        width: 100px;
        height: 60px;
    }
    .one {
        background-color: red;
    }
    .two {
        background-color: green;
        position: relative;
        top: 20px;
        left: 120px;
    }
    .three {
        background-color: blue;
    }
</style>

效果:

可以看出,绿色DIV(two)偏移后,蓝色DIV(three)未占据绿色DIV(two)的位置。

所以相对定位原位置依然保留。


绝对定位 absolute

偏移位置相对于它的上级标签来设置的。

特性:

① 但上级标签需要设置定位,一般上级标签设置相对定位。如果所有上级标签都未设置定位样式,则以浏览器为准。

② 如果上级标签没有设置定位(相对、绝对、固定),则以最近有设置定位的上级标签为准。

③ 绝对定位不再占据原位置,所以其它标签会占用它原来的位置。

示例代码依然采用相对定位示例代码。

现在将绿色DIV(two)设置为绝对定位,顶部偏移20px,左侧偏移量120px。

<style type="text/css">
    .one,
    .two,
    .three {
        width: 100px;
        height: 60px;
    }
    .one {
        background-color: red;
    }
    .two {
        background-color: green;
        position: absolute;
        top: 20px;
        left: 120px;
    }
    .three {
        background-color: blue;
    }
</style>

效果:

可以看出,蓝色DIV(three)上移,绝对定位不再占据原位置。

此时绿色DIV(two)偏移是以浏览器窗口为准的。


上级标签增加定位样式

HTML代码:

<div class="f">
    <div class="s">
    </div>
</div>

CSS代码:

<style type="text/css">
    .f {
        height: 200px;
        width: 200px;
        background-color: gray;
    }
    .s {
        height: 60px;
        width: 60px;
        background-color: gold;
    }
</style>

效果:

设置灰色DIV相对定位,偏移量为0,金色DIV绝对定位,顶部和左侧偏移量均为50%。

<style type="text/css">
    .f {
        position: relative;
        top: 0;
        left: 0;
        height: 200px;
        width: 200px;
        background-color: gray;
    }
    .s {
        position: absolute;
        top: 50%;
        left: 50%;
        height: 60px;
        width: 60px;
        background-color: gold;
    }
</style>

效果:

金色DIV的偏移标准是根据灰色DIV来的。

此时金色DIV左上角位于灰色DIV中心。如果灰色DIV不设置定位(相对、绝对、固定),则金色DIV左上角会位于浏览器中心。

偏移量也可是设置像素点,不设置百分比,像素点超过灰色DIV宽高后,会跑出灰色DIV范围。


固定定位 fixed

特性:

① 以浏览器的可视区域为准,不参照上级节点。

② 显示位置不随滚动条改动。

③ 不占据原来的位置。


示例代码使用相对定位代码

设置绿色DIV(two)固定定位,顶部偏移量5px,右侧偏移量5px。

<style type="text/css">
    .one,
    .two,
    .three {
        width: 100px;
        height: 60px;
    }
    .one {
        background-color: red;
    }
    .two {
        position: fixed;
        top: 5px;
        right: 5px;
        background-color: green;                
    }
    .three {
        background-color: blue;
    }
</style>

效果:

即使网页过长出现滚动条,拉动滚动条后绿色DIV(two)位置也不会变动,因为固定定位是以浏览器的可视区域为准的。


叠放次序 z-index

特性:

① 只有增加定位样式的标签,才能设置此样式。

② 设置数值越大越靠上(默认为0)。

③ 设置相同数值后,后声明的标签靠上。

示例代码使用相对定位的HTML结构。

CSS:

<style type="text/css">
    .one,
    .two,
    .three {
        width: 100px;
        height: 60px;
    }
    .one {
        position: absolute;
        top: 50px;
        left: 50px;
        background-color: red;
    }
    .two {
        position: absolute;
        top: 100px;
        left: 100px;
        background-color: green;                
    }
    .three {
        position: absolute;
        top: 150px;
        left: 150px;
        background-color: blue;
    }
</style>

效果:

可以看出标签出现覆盖情况。

设置绿色DIV(two)z-index 属性:

.two {
    position: absolute;
    top: 100px;
    left: 100px;
    z-index: 1;
    background-color: green;            
}

效果:


定位特性

1. 行内标签添加绝对或固定定位,可以直接设置高度和宽度,不需要display:block;。

2. 块级标签添加绝对或固定定位,如果不设置高度和宽度,默认大小是内容的大小。

3. 浮动标签(float)会覆盖其他标签,但不会覆盖内部文本。而绝对和固定定位会覆盖其他所有标签的内容。



转载请指明出处!http://www.miselehe.com/article/view/144