美文网首页饥人谷技术博客
【面经】CSS 中的 position 属性

【面经】CSS 中的 position 属性

作者: 付坤奇 | 来源:发表于2019-03-04 12:58 被阅读2次

前天深信服面试被问到这个问题,没想到天天用的属性被问到了,一紧张起来还是说不清楚,确实暴露了我在这方面的问题——对绝对定位和相对定位都没搞清楚。这样就去面试了,实在是耻辱面试。今天写一篇博客把这个知识点弄清楚吧。

封面

1、position 属性的取值

一共有五种:

  • static (默认值)
  • relative (相对定位)
  • absolute (绝对定位)
  • fixed (固定定位)
  • sticky (粘性定位)

static(没有定位)是position的默认值,元素处于正常的文档流中,会忽略left、top、right、bottom和z-index属性。

还有一种 inherit,意为继承父元素的 position 属性

2、相对定位

相对定位的元素是在文档中的正常位置偏移给定的值,但是不影响其他元素的偏移。如:

<div class="box" id="one">One</div><div class="box" id="two">Two</div><div class="box" id="three">Three</div><div class="box" id="four">Four</div>
<style>
.box {
display: inline-block;
width: 100px;
height: 100px;
background: red;
color: white;
}
.two {
position: relative;
top: 20px;
left: 20px;
background: blue;
}
</style>

#two {
  position: relative;
  top: 20px;
  left: 20px;
  background: blue;
}

3、绝对定位

相对定位的元素并未脱离文档流,而绝对定位的元素则脱离了文档流。布置文档流中其它元素时,绝对定位元素不占据空间。

position: absolute 绝对定位元素相对于最近的非 static 祖先元素定位。

当这样的祖先元素不存在时,则相对于最初的包含块定位。

4、固定定位

固定定位与绝对定位相似,但元素相对于 viewport(视口)定位。该定位方式常用于创建在滚动屏幕时仍固定在相同位置的元素。

position: fixed 可以简单说fixed是特殊版的absolute,fixed元素总是相对于body定位的。

5、粘性定位

粘性定位可以被认为是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。

设置了sticky的元素,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果。

sticky属性有以下几个特点:

  • 该元素并不脱离文档流,仍然保留元素原本在文档流中的位置。
  • 当元素在容器中被滚动超过指定的偏移值时,元素在容器内固定在指定位置。
  • 元素固定的相对偏移是相对于离它最近的具有滚动框的祖先元素,如果祖先元素都不可以滚动,那么是相对于 viewport 来计算元素的偏移量

简单来说,就是当粘性定位的元素在页面位置小于设定的阈值时,元素视为position:fixed ,当元素位置大于此阈值时,元素视为position: relative,而且设置的top等属性失效。

效果

比如设置top:20px,即意为元素距离视口顶部距离不能小于 20px,否则元素就进入固定定位状态。


以上就是本篇博客中关于 CSS 中 position 属性的所有内容,希望下次面对这个知识点不会被问得说不清楚了,实在是太丢人了。

风景

相关文章

  • 【面经】CSS 中的 position 属性

    前天深信服面试被问到这个问题,没想到天天用的属性被问到了,一紧张起来还是说不清楚,确实暴露了我在这方面的问题——对...

  • 关于css定位

    css中position是定位的属性,其属性值如下:

  • css定位

    CSS position属性 CSS display属性 CSS float属性 (引用:https://www...

  • CSS定位(相对定位,固定定位,绝对定位)

    在CSS中,可以使用position属性来定位元素。position 属性规定元素的定位类型。 属性值: abso...

  • 【图解CSS#Position】

    关于CSS position,来自MDN的描述: CSS position属性用于指定一个元素在文档中的定位方式。...

  • css中position 属性

    position属性有 fixed(相对于整个窗口的位置)position 为 relative,相对定位abso...

  • 定位元素

    css布局中的position属性,对元素盒子使用这个属性,可以把它的位置重新定位。 position 属性有4个...

  • CSS定位网页元素

    position 属性 position 属性与float属性一样,在css排版中都非常重要。position顾名...

  • CSS position 详解

    CSS 中的 position 属性用来设置元素的定位方式。 position 的值有 static、relati...

  • CSS中的position属性

    position是CSS中非常重要的定位元素,有点惭愧一直都没有把这个概念吃透 absolute是按照父元素来定位...

网友评论

    本文标题:【面经】CSS 中的 position 属性

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