定位(positioning)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定位(positioning)相关的知识,希望对你有一定的参考价值。

一、position(检索对象的定位方式)

 1.语法 position: static / relative /absolute /fixed /center /page /sticky

  • static:对象遵循常规流。此时4个定位偏移属性不会被应用。

  • relative:对象遵循常规流,并且参照自身在常规流中的位置通过toprightbottomleft这4个定位偏移属性进行偏移时不会影响常规流中的任何元素。

  • absolute:对象脱离常规流,此时偏移属性参照的是离自身最近的定位祖先元素,如果没有定位的祖先元素,则一直回溯到body元素。盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠。

  • fixed:与absolute一致,但偏移定位是以窗口为参考。当出现滚动条时,对象不会随着滚动。

  • center:与absolute一致,但偏移定位是以定位祖先元素的中心点为参考。盒子在其包含容器垂直水平居中。(CSS3)

  • page:与absolute一致。元素在分页媒体或者区域块内,元素的包含块始终是初始包含块,否则取决于每个absolute模式。(CSS3)

  • sticky:对象在常态时遵循常规流。它就像是relativefixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。(CSS3)

 2.说明

检索对象的定位方式。

  • position的值为非static时,其层叠级别通过z-index属性定义。

  • 绝对定位的元素,在toprightbottomleft属性未设置时,会紧随在其前面的兄弟元素之后,但在位置上不影响常规流中的任何元素。

  • 对应的脚本特性为position

 3.举例  

    <!DOCTYPE html>

    <html lang="zh-cmn-Hans">

    <head>

        <meta charset="utf-8" />

        <title>position_CSS参考手册_web前端开发参考手册</title>

        <meta name="author" content="Joy Du(飘零雾雨), [email protected], www.doyoe.com" />

        <style>

            #position {

             position: absolute;

        top: 50%;

        left: 50%;

        width: 150px;

        height: 40px;

        margin: -20px 0 0 -75px;

        padding: 0 10px;

        background: #eee;

        line-height: 2.4;

            }

        </style>

    </head>

    <body>

        <div id="position">水平垂直居中的对象</div>

    </body>

    </html>

    

二、z-index(检索或设置对象的层叠顺序)

 1.语法 z-index:auto/integer

 2.取值  

  • auto:元素在当前层叠上下文中的层叠级别是0。元素不会创建新的局部层叠上下文,除非它是根元素。

  • integer:用整数值来定义堆叠级别。可以为负值。

 3.说明

   检索或设置对象的层叠顺序。

  • z-index用于确定元素在当前层叠上下文中的层叠级别,并确定该元素是否创建新的局部层叠上下文。

  • 每个元素层叠顺序由所属的层叠上下文和元素本身的层叠级别决定(每个元素仅属于一个层叠上下文)。

  • 同一个层叠上下文中,层叠级别大的显示在上面,反之显示在下面。

  • 同一个层叠上下文中,层叠级别相同的两个元素,依据它们在HTML文档流中的顺序,写在后面的将会覆盖前面的。

  • 不同层叠上下文中,元素的显示顺序依据祖先的层叠级别来决定,与自身的层叠级别无关。

  • z-index未定义或者值为auto时,在IE6,7下会创建新的局部层叠上下文,而在高级浏览器中,按照规范不产生新的局部层叠上下文,如下例:

  3.举例

    <!DOCTYPE html>

    <html lang="zh-cmn-Hans">

    <head>

        <meta charset="utf-8" />

        <title>z-index_CSS参考手册_web前端开发参考手册系列</title>

        <meta name="author" content="Joy Du(飘零雾雨), [email protected], www.doyoe.com"         />

        <style>

        .z1,

        .z2,

        .z3 {

         position: absolute;

         width: 200px;

         height: 100px;

         padding: 5px 10px;

         color: #fff;

         text-align: right;

        }

        .z1 {

     z-index: 1;

background: #000;

}

.z2 {

z-index: 2;

top: 30px;

left: 30px;

background: #C00;

}

.z3 {

z-index: 3;

top: 60px;

left: 60px;

background: #999;

}

</style>

</head>

<body>

<div class="z1">z-index:1</div>

<div class="z2">z-index:2</div>

<div class="z3">z-index:3</div>

</body>

</html>





三、top

四、right

五、bottom

六、left

七、clip

本文出自 “12145704” 博客,请务必保留此出处http://12155704.blog.51cto.com/12145704/1864950

以上是关于定位(positioning)的主要内容,如果未能解决你的问题,请参考以下文章

粘性定位position:sticky

css常用代码片段 (更新中)

片段和视图寻呼机

绝对定位( Absolute positioning )

HTML代码中如何用POSITION属性来固定一个DIV模块的位置,让其不随滚动条移动?

层模型--绝对定位(position:absolute)