CSS - 定位

本文深入介绍了CSS定位的概念和用法,包括静态定位、相对定位、绝对定位、固定定位及粘性定位。详细阐述了各种定位模式的语法、特点及应用场景,并通过实例演示了如何通过边偏移调整元素位置。同时,文章讨论了定位的叠放次序、特殊性和在实际布局中的应用,为开发者提供了全面的定位知识指南。
摘要由CSDN通过智能技术生成


一、定位的作用

  1. 某个元素可以自由的在一个盒子内移动位置, 并且压住其他盒子.
  2. 让一个盒子固定到屏幕的某个位置

二、定位的组成

定位 = 定位模式 + 边偏移

定位模式用于指定一个元素在文档中的定位方式
边偏移则决定了该元素的最终位置.

定位模式

定位模式决定元素的定位方式, 它通过CSS的position属性来设置

属性值

  • static : 静态定位
  • relative : 相对定位
  • absolute : 绝对定位
  • fixed : 固定定位

边偏移

边偏移就是定位的盒子移动到最终位置, 有 top, bottom, left 和 right 4个属性

三、静态定位

就是 无定位, 没有定位

语法

选择器 { positon: static; }

四、相对定位

相对定位是元素在移动位置的时候, 是相对于它原来的位置来说的.
原来在标准流的位置继续占有, 后面的盒子仍然以标准流的方式对待它.
简单来说就是不脱标, 继续保留原来位置.

语法

选择器 { positon: relative; }

偏移

选择器 { 
	positon: relative; 
	left: 100px;
}

应用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: pink;
            position: relative;
            left: 200px;
        }

        .box2 {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>

<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>

</html>

五、绝对定位

绝对定位是元素在移动位置的时候, 是相对于它祖先元素来说的.

1. 语法

选择器 { position: absolute; }

2. 绝对定位的特点

  1. 如果没有祖先元素或者祖先元素没有定位, 则以浏览器为准定位.
  2. 如果祖先元素有定位, 则以最近一级有定位的祖先元素为参考点移动位置
  3. 绝对定位不再占有原先的位置.

六、子绝父相

子级使用绝对定位, 父级则需要相对定位

  1. 子级绝对定位, 不会占有位置, 可以放到父盒子里面的任何一个地方, 不会影响其他的兄弟盒子
  2. 父盒子需要加定位限制盒子在父盒子内显示
  3. 因为父级需要占有位置, 因此是相对定位, 子盒子不需要占有位置, 所以是绝对定位

七、固定定位

固定定位是元素固定于浏览器可视区的位置. 主要使用场景: 可以在浏览器页面滚动时元素的位置不改变.

语法

选择器 {
	position: fixed;
}

特点

  1. 以浏览器的可视窗口为参照点移动元素
  2. 不随滚动条滚动
  3. 固定定位不再占有原来的位置

固定到版心右侧

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            height: 2000px;
            width: 900px;
            background-color: pink;
            margin: 0 auto;
        }

        .top {
            position: fixed;
            /* 往下走可视化区域的百分之90 */
            top: 90%;
            /* 往右走可视化区域的百分之50 */
            left: 50%;
            /* 往右走版心的百分之50 */
            margin-left: 450px;
            height: 40px;
            width: 40px;
            background-color: red;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="top">

        </div>
    </div>
</body>

</html>

八、粘性定位

粘性定位可以认为是相对定位和固定定位的混合.

语法

选择器 { position: sticky; top: 10px; }

特点

  1. 以浏览器的可视窗口为参数点移动元素
  2. 粘性定位占有原先的位置

应用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            height: 3000px;
        }

        .nav {
            position: sticky;
            top: 10px;
            height: 50px;
            width: 900px;
            margin: 100px auto;
            background-color: red;
        }
    </style>
</head>

<body>
    <div class="nav">

    </div>
</body>

</html>

定位的叠放次序

在使用定位布局时, 可能会出现盒子重叠的情况, 此时, 可以使用 z-index 来控制盒子的前后次序.

语法

选择器 { z-index:1; }

数值可以是正整数, 负整数 或 0, 默认是auto. 数值越大, 盒子越靠上
数字后面不能加单位
只有定位的盒子才有这个属性.

定位的特殊性

  1. 行内元素添加绝对或者固定定位, 可以直接设置高度和宽度
  2. 块级元素添加绝对或者固定定位, 如果不给宽度或者高度, 默认大小是内容大小.
  3. 脱标的盒子不会触发外边距塌陷
  4. 绝对定位或固定定位会完全压住盒子
    浮动元素不同, 只会压住它下面的标准流的盒子, 不会压住下面

定位总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值