Loading

♣ 定位、z-index属性

定位

CSS中重要的东西就三个:盒模型、浮动、定位。这三个技术,就是负责网页的布局的。其余的技术,都是杂碎:background、文字、颜色表示法……

相对定位

1 position:relative;

 

相对自己进行微调,相对定位就是相对自己原来的位置,进行位置移动。移动的时候需要使用定位值。

  • top:正数向下移动
  • bottom: 正数向上移动
  • left:正数向右移动
  • right:正数向左移动

可以任意组合,从top、bottom中选择一个,然后从left、right中选择一个。

1 top:10px;

2 left:20px;

等价于

1 bottom:-10px;

2 right:-20px;


相对定位不脱标,老家留坑,形影分离。相对定位这个东西,因为在老家留坑,所以用处不大

绝对定位

1 position: absolute;

绝对定位的元素,脱离标准文档流。用top、bottom、left、right来进行定位。参考的是页面的左上角。

定位参考点

我们现在来研究,定位的参考原点到底是哪里?

如果用top值定位,那么参考点就是页面的左上角或者右上角,而不是浏览器窗口的。

 


如果用bottom进行定位,就是浏览器首屏的左下角在页面中的位置。

 


绝对定位在老家不留坑,绝对定位的元素就是飘起来了,真实位置也是飘起来了。所以在页面中特别常用。

祖先盒子当参考点

子绝父相:

1 <div>  →  相对定位

2  <p></p>  → 绝对定位

3 </div>

此时这个p就是以div的边框内侧为参考点进行定位。一个盒子可以以某一个祖先盒子作为定位参考点,离自己最近的、已经定位了的祖先盒子。

要记住,祖先盒子不一定只有相对定位才能成为参考点,而是什么定位都行。比如,相对定位、绝对定位、固定定位。

除了“子绝父相”之外,“子绝父绝”也是一个典型的定位模型;“子绝父固”也是一个典型的定位模型。祖先中离自己最近的、已经定位的元素:

所以p以.box3为参考点;.box3以box2为参考点。

绝对定位的元素,无视参考盒子的padding:

红色盒子top:0;left:0; 无视padding的。

绝对定位元素的居中

新说一个知识点,就是绝对定位盒子已经不属于标准文档流了,所以不能使用margin:0 auto;来居中了。那么绝对定位的盒子如何居中?

1 position: absolute;

left:50%;

3 top: 0;

left:50%;指的是元素的左边线是50%的位置。这点和background-position不一样。所以要往回拉一半的自己宽度。

固定定位

1 position:fixed;

固定定位脱标,参考点是浏览器的角。

随着窗口的卷动,固定定位的元素不会在视口中消失。

固定定位的参考点一定是浏览器,我们无法让一个盒子当做fixed定位的参考点。

至此我们已经全部学习了脱标的3种方法:

浮动、绝对定位、固定定位

这三种脱标的方法,只能有一种作用在同一个元素身上。不存在一个元素同时浮动、同时绝对定位的情况。

我们给一个父亲overflow:hidden; 这个时候父亲就能认识浮动儿子的高度了,就能被儿子撑高了。但是,绝对定位、固定定位的儿子,父亲永远不可能被他们撑高!

z-index属性

负责设置压盖顺序,谁压盖谁的问题。

先说的默认的压盖顺序:

1) 定位了的能够压住没有定位的;

2) 如果都定位了,那么HTML顺序后面的能够压住前面的;

1  <div class="box1">1</div>  → 没有定位

2  <div class="box2">2</div>  → 绝对定位

3  <div class="box3">3</div>  → 相对定位

3压住2和1; 2压住1,z-index没有单位数字大的能够压住数字小的

1 z-index: 5;

只有定位了的元素才能写z-index值。标准流的元素不能写z-index值,浮动的元素不能写z-index。

从父现象:父亲怂了,儿子再牛逼也没用。

posted @ 2022-02-15 15:09  sunflower-js  阅读(70)  评论(0编辑  收藏  举报