美文网首页
对position的几点理解

对position的几点理解

作者: 阿拉斯加南海岸线 | 来源:发表于2019-01-27 10:39 被阅读19次

分类及定义

在W3C中,position 属性规定元素的定位类型,css实例:

.box{
    position:relative;
}

它可能的值包括以下五种:

  1. absolute(绝对定位):生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及"bottom" 属性进行规定。
  2. fixed(固定定位):生成绝对定位的元素,相对于浏览器窗口进行定位。
    元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
  3. relative(相对定位):生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
  4. static(默认值):没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
  5. inherit(继承):规定应该从父元素继承 position 属性的值。

以上是官方的定义,仔细研究不难发现一些值得注意的事项,以下也包括我在工作中总结的一些技巧。

一、绝对定位的父级需要相对定位嘛?

记得刚入行,培训老师讲到这里,给我们的要求是:只要某个模块需要定位,必须给父级position:relative;在该模块加上position:absolute。当时比较单纯,老师说什么就是什么,以至于很长一段时间根本不知其所以然还依然在这么用。后来偶然看到官方的文档才发现这是不正确的做法。
‘生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。’ 这是官方的定义,所以只要它的父级(只要是父级,不一定是直系父级)有添加除static定位以外的任何一个属性都是可以实现的,不一定只能是relative。

二、相对定位你理解了嘛?

position:relative是个功能强大的属性。添加该属性的元素是相对于它的正常位置进行的定位,正常位置,就是其本来在文档流里面的位置。
看下面两张图的比较:


未添加relative

这是正常文档流里面的两个div排列方式,结构如下:

<div class="box1">第一个盒子</div>
<div class="box2">第二个盒子</div>

css如下:

.box1{
        width:100px;
        height:100px;
        background: #000;
        margin-bottom:20px;
        color: #fff;
    }
    .box2{
        width:100px;
        height:100px;
        margin-bottom:20px;
        background: #ff0000;
        color: #fff;
    }

而添加relative属性的div呢,位置发生了变化:


添加relative

这里给第二个div添加了class:

<div class="box1">第一个盒子</div>
<div class="box2 pr">第二个盒子</div>

它的css为:

.pr{
        position: relative;
        left:100px;
        top:50px;
    }

很明显看出了它们的区别,第二个添加position:relative;的div相对于它本来的位置向左偏移100px,向下偏移50px,如css规定的那样。

三、其他注意事项

  • fixed是相对于浏览器窗口进行的绝对定位,常用于固定头部导航条,固定底部元素,以及侧边栏的一些固定工具条等等,非常实用。
  • 添加定位的元素会涉及到优先级的问题,有时碰到添加定位而没有显示的元素,可以查看是否未添加z-index属性导致的。z-index越高,优先级越高,越在上面显示。

相关文章

  • 对position的几点理解

    分类及定义 在W3C中,position 属性规定元素的定位类型,css实例: 它可能的值包括以下五种: abso...

  • 2017-12-30

    position:absolute and position:relative 的理解 Absolute,CSS中...

  • 理解 position

    static: 对象遵循常规流。此时4个定位偏移属性不会被应用。 relative: 对象遵循常规流,并且参照自身...

  • 关于css

    在最近的学习中,对css position 理解不好,在网上找了找,觉得关于css position 看一下文章就...

  • IOS 对anchorPoint与position的理解

    anchorPoint与position position:控制本层在其父层的位置 anchorPoint:本层自...

  • 对礼仪几点理解

    礼仪是约定俗成,对人对己,对天地对神灵的尊重、敬畏而展现出来的惯用规范和尺度,礼仪是处处为他人着想的胸怀,很多时候...

  • 关于position的理解

    首先最重要的,困惑最多的relative: //#demo为父元素 如果你想让这个#demo里的一个div#sub...

  • position定位的理解

    最近这两天一直在学习,psition定位。不是太理解,思路有些乱,有些懵逼。今天,在网上也查了下,然后自己梳理了一...

  • 如何利用好大神们的PPT模板

    对PPT的几点粗鄙的理解 今天来讲一下PPT这个话题,以后做PPT就省心了。 说几点我对PPT的简单理解。PPT分...

  • 与其亲自做PPT,不如利用好大牛们的PPT模板

    对PPT的几点粗鄙的理解 今天来讲一下PPT这个话题,以后做PPT就省心了。 说几点我对PPT的简单理解。PPT分...

网友评论

      本文标题:对position的几点理解

      本文链接:https://www.haomeiwen.com/subject/qbjgjqtx.html