diff --git "a/\346\235\216\346\200\235/20241021-\345\256\232\344\275\215\347\254\224\350\256\260\345\222\214\347\273\203\344\271\240.md" "b/\346\235\216\346\200\235/20241021-\345\256\232\344\275\215\347\254\224\350\256\260\345\222\214\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..45593af1dd1a78c9a7a8ea85cf86420fd80125ed --- /dev/null +++ "b/\346\235\216\346\200\235/20241021-\345\256\232\344\275\215\347\254\224\350\256\260\345\222\214\347\273\203\344\271\240.md" @@ -0,0 +1,203 @@ +## 定位 + +### 相对定位 +**相对定位**:让元素相对于自己原来的位置,进行位置调整(可用于盒子的位置微调)。 + + +相对定位属性,通过如下格式: + +``` + position: relative; + left: 50px; + top: 50px; +``` + +#### 相对定位的定位值 + +- left:盒子右移 + +- right:盒子左移 + +- top:盒子下移 + +- bottom:盒子上移 + +PS:负数表示相反的方向。 + +相对定位:相对于自己原来的位置 +横坐标:正值表示向右偏移,负值表示向左偏移 +纵坐标:正值表示向下偏移,负值表示向上偏移 + +相对定位:不脱标,别人不会把它的位置挤走 + +#### 相对定位的用途 + +如果想把一个div放到另一个div之上,一般不用相对定位来做。相对定位,就两个作用: + +- (1)微调元素 +- (2)做绝对定位的参考,子绝父相 + + +### 绝对定位 + +**绝对定位**:定义横纵坐标。原点在父容器的左上角或左下角。横坐标用left表示,纵坐标用top或者bottom表示。 + +格式举例如下: + +``` + position: absolute; /*绝对定位*/ + left: 10px; /*横坐标*/ + top/bottom: 20px; /*纵坐标*/ +``` + + **绝对定位脱标** + +绝对定位的盒子脱离了标准文档流。 + +所以,所有的标准文档流的性质,绝对定位之后都不遵守了。 + +绝对定位之后,标签就不区分所谓的行内元素、块级元素了,不需要`display:block`就可以设置宽、高了。 + +#### 绝对定位的参考点 + +1. 如果用**top描述**,那么参考点就是页面的左上角,而不是浏览器的左上角 +2. 如果用**bottom描述**,那么参考点就是浏览器首屏窗口尺寸对应的页面的左下角 +3. 以盒子为参考点,一个绝对定位的元素,如果父辈元素中也出现了已定位(无论是绝对定位、相对定位,还是固定定位)的元素,那么将以父辈这个元素,为参考点。 + (1) 要听最近的已经定位的祖先元素的,不一定是父亲,可能是爷爷 + (2)不一定是相对定位,任何定位,都可以作为儿子的参考点 + (3)绝对定位的儿子,无视参考的那个盒子的padding + +4. 固定定位:就是相对浏览器窗口进行定位。无论页面如何滚动,这个盒子显示的位置不变。 + +5. z-index属性: + + **z-index**属性:表示谁压着谁。数值大的压盖住数值小的。 + + 有如下特性: + + (1)属性值大的位于上层,属性值小的位于下层。 + + (2)z-index值没有单位,就是一个正整数。默认的z-index值是0。 + + (3)如果大家都没有z-index值,或者z-index值一样,那么在HTML代码里写在后面,谁就在上面能压住别人。定位了的元素,永远能够压住没有定位的元素。 + + (4)只有定位了的元素,才能有z-index值。也就是说,不管相对定位、绝对定位、固定定位,都可以使用z-index值。**而浮动的元素不能用**。 + + (5)从父现象:父亲怂了,儿子再牛逼也没用。意思是,如果父亲1比父亲2大,那么,即使儿子1比儿子2小,儿子1也能在最上层。 + + z-index属性的应用还是很广泛的。当好几个已定位的标签出现覆盖的现象时,我们可以用这个z-index属性决定,谁处于最上方。也就是**层级**的应用。 + + +**层级:** + +(1)必须有定位(除去static) + +(2)用`z-index`来控制层级数。 + + +## 练习 +创建一个在其父级容器中水平、垂直居中的绝对定位元素 +[效果图](http://sl3216jzq.hn-bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202024-10-22%20224916.png) +``` + + +
+