CSS定位

CSS定位

网页中常见的布局方式:

标准流:

  1. 块级元素独占一行------垂直布局
  2. 行内元素/行内块元素一行显示多个------水平布局

浮动:

  1. 可以让原本垂直布局的块级元素变成水平布局

定位:

  1. 可以让元素自由的摆在网页的任意位置
  2. 一般用于盒子之间的层叠情况

定位的常见应用场景:

  1. 可以解决盒子与盒子之间的层叠问题,定位之后的元素层级最高,可以层叠在其他盒子上面

  2. 可以让盒子始终固定在屏幕中的某个位置

定位的使用步骤:

设置定位方式:

  1. 属性名:position

  2. 常见的属性值:

    定位方式属性值
    静态定位static
    相对定位relative
    绝对定位absolute
    固定定位fixed

设置偏移值:

  1. 偏移值设置分两个方向,水平和垂直方向各选一个即可

  2. 选取的原则一般是就近原则(离哪边近用哪个)

    方向属性名属性值含义
    水平left数字+px距离左边的距离
    水平right数字+px距离右边的距离
    垂直top数字+px距离上边的距离
    垂直bottom数字+px距离下边的距离

举例:

  1. 设置两个盒子:box1和box2

    <div class="box1"></div>
        <div class="box2"></div>
    
  2. 设置宽高及背景颜色,对box2进行定位

    div {
                width: 300px;
                height: 300px;
            }
            .box1 {
                background-color: red;
            }
            .box2 {
                background-color: blue;
                /* 定位box2,将box2与box1的四分之一进行层叠 */
                position: absolute;
                top: 150px;
                left: 150px;
            }
    
  3. 效果:

在这里插入图片描述

静态定位:

介绍:

静态定位是默认值,就是之前认识的标准流。

代码:

position : static;

注意点:

  1. 静态定位就是之前的标准流,不能通过方位属性进行移动
  2. 之后说的定位不包括静态定位,一般特指后几种:相对,绝对,固定

相对定位:

介绍:

自恋型定位,相对于自己之前的位置进行移动

代码:

position : relative;

特点:

  1. 需要配合方位属性实现移动
  2. 相对于自己原来的位置进行移动
  3. 在页面中占位置------没有脱标

应用场景:

  1. 配合绝对定位组cp(子绝父相)
  2. 用于小范围移动

举例:

  1. 设置三个盒子box1,box2,box3

    <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    
  2. 设置宽高背景颜色,并将box2进行相对定位

    div {
                width: 300px;
                height: 300px;
            }
            .box1 {
                background-color: red;
            }
            .box2 {
                background-color: green;
                /* 对box2相对原位置进行定位 */
                position: relative;
                top: 100px;
                left: 100px;
            }
            .box3 {
                background-color: blue;
            }
    
  3. 效果

    在这里插入图片描述

绝对定位:

介绍:

拼爹型定位,相对于非静态定位的父元素进行定位移动

代码:

position : absolute;

特点:

  1. 需要配合方位属性实现移动
  2. 默认相对于浏览器可视区域进行移动
  3. 在页面中不占位置------已经脱标

应用场景:

配合相对定位组cp(子绝父相)

举例:

  1. box2绝对定位:
 div {
            width: 300px;
            height: 300px;
        }
        .box1 {
            background-color: red;
        }
        .box2 {
            background-color: green;
            /* 对box2进行绝对定位 */
            position: absolute;
            top: 100px;
            left: 100px;
        }
        .box3 {
            background-color: blue;
        }
  1. 效果:

在这里插入图片描述

绝对定位到底相对于谁进行偏移:

  1. 若祖先元素中没有定位------默认相对于浏览器进行移动

  2. 若祖先元素中有定位------相对于 最近的 有定位 的祖先元素进行移动

  3. 举例:

    father为son的父元素,son为sun的父元素

    <div class="father">
            <div class="son">
                <div class="sun"></div>
            </div>
        </div>
    

    对father进行定位后,sun的绝对定位的偏移会相对于father偏移

    .father {
                width: 600px;
                height: 600px;
                background-color: pink;
                /* 对father元素进行一个相对定位 */
                position: relative;
                top: 0;
                left: 0;
            }
            .son {
                width: 400px;
                height: 400px;
                background-color: skyblue;
            }
            .sun {
                width: 200px;
                height: 200px;
                background-color: blue;
                /* sun元素绝对定位,相对于最近有定位的祖先元素进行偏移 */
                position: absolute;
                right: 0;
                bottom: 0;
            }
    
  4. 效果:

    在这里插入图片描述

子绝父相介绍:

场景:

让子元素相对父元素进行自由移动

含义:

子元素:绝对定位;父元素:相对定位

子绝父相的好处:

父元素是相对定位,则对网页布局影响最小

注意:

在使用子绝父相的时候,如果发现父元素已经有了绝对定位了,此时直接子绝即可。

固定定位:

介绍:

死心眼型定位,相对于浏览器进行定位移动

代码:

position : fixed;

特点:

  1. 需要配合方位属性实现移动
  2. 相对于浏览器可视区域进行移动
  3. 在页面中不占位置------已经脱标

应用场景:

让盒子固定在屏幕中的某个位置

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写给山河的信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值