CSS笔记 ( 七 ) 相对定位 绝对定位 固定定位


 
 
 


博主的 Github 地址


1. 定位和 position 属性

CSS 中元素的定位类型由 position 属性来决定,
分为 3 种定位, 一共有 5 种属性值:
(1) absolute 绝对定位;
(2) relative 相对定位;
(3) fixed 固定定位;
(4) static 为默认值, 没有定位;
(5) inherit 为继承父元素的定位.

接下来将对上述 3 种定位进行介绍, 在开始前先设置 4 个 div 来作为原始模板,
将其中一个 div 作为父容器装另外 3 个 div, 背景颜色设置为黑色, 并设置相对定位
代码如下:

  • 父容器设置宽为 300 像素, 子容器 id 分别为 div01-03
    <div style="background-color: black; height: 300px; position: relative">
        <div id="div01" class="div"></div>
        <div id="div02" class="div"></div>
        <div id="div03" class="div"></div>
    </div>
  • 子容器的 CSS 样式如下, 统一宽高 100 像素, 颜色分别从上到下是红绿蓝
        .div{
            width: 100px;
            height: 100px;
        }
        #div01{
            background-color: red;
        }
        #div02{
            background-color: green;
        }
        #div03{
            background-color: blue;
        }
  • 效果图示
    初始样式
     
     
     

2. 相对定位

  • 作用:
    保留原来的位置进行定位, 不会影响其他元素的定位

  • 示例 1
    将 div02 的 CSS 样式设置为相对定位, 并将其距离原位置左边的距离调整为 100 像素

css 样式代码如下

        #div02{
            position: relative;
            left: 100px;
            background-color: green;
        }

如实际效果所展示:
div02 保留了原本的位置, 并向右移动了 100 像素的距离
div03 的排版并没有受到影响, 没有被顶上去

div02移动01

 
 

  • 示例 2
    将 div02 的 CSS 样式设置为相对定位, 并将其距离原位置左边和上边的距离分别调整为 50 像素

css 样式代码如下

        #div02{
            position: relative;
            left: 50px;
            top: 50px;
            background-color: green;
        }

如实际效果所展示:
div03 的位置并没有受到 div02 的移动所影响, 还是在原来的位置
div02 移动后, 是直接覆盖到 div03 之上, 不会将其顶下去

div02的移动02
 
 
 

3. 绝对定位

  • 作用:
    脱离原来的位置进行定位, 如果有偏移量, 则会影响其他元素的定位

  • 备注
    (1) 绝对定位 absolute 是相对于最近的有定位的父级元素进行定位, 如果没有, 则相对文档定位
    (2) 一般来说用相对定位 relative 作为定位对象即参照物 / 有定位的父元素,
      绝对定位 absolute 则作为定位元素.

  • 示例 1
    将 div02 的 CSS 样式设置为绝对定位, 并将其距离父容器左边的距离调整为 100 像素

css 样式代码如下

        #div02{
            position: absolute;
            left: 100px;
            background-color: green;
        }

如实际效果所展示:
div03 的位置受到 div02 的移动所影响, 被顶上去 div02 所移动后留出的空位
div02 的移动显然脱离了原来的位置, 并没有保留原位置就偏移走了

div02移动03

  • 示例 2
    将 div02 的 CSS 样式设置为绝对定位, 并将其距离父容器左边和上边的距离分别调整为 50 像素

css 样式代码如下

        #div02{
            position: absolute;
            left: 50px;
            top: 50px;
            background-color: green;
        }

如实际效果所展示:
div03 的位置受到 div02 的移动所影响, 依旧被顶上去 div02 所移动后留出的空位
div02 从原本距离父容器顶部 100 像素 变成了距离父容器顶部 50 像素, 即向上移动了 50 像素的距离

div02移动04
 
 
 

4. 固定定位

  • 作用:
    保持在所见窗口中的位置不变, 相对浏览器窗口定位
    所见窗口就是当前浏览器所展现的窗口
    即页面在现在的滚动条位置下所展示的部分, 并非整个完整的页面

 

  • 示例一个永远固定在窗口中央的红块的样例

css 样式如下所示

<div id="div001" style="background-color: #ff0000; width: 100px; height: 100px; position: fixed; left: 50%; right: 50%;"></div>

当垂直滚动条在最上方时
中央01
当垂直滚动条在挪动了位置时
中央02
如实际效果所示, 红块一直保持在窗口的同一位置, 不会随着页面的移动所改变位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中的定位属性是布局控制的重要工具,它主要有两种主要方式:绝对定位(absolute positioning)和相对定位(relative positioning)。 **1. 相对定位 (Relative Positioning)**: - 原则:相对定位是基于元素的正常文档流来进行定位的。如果设置了`position: relative;`,元素会保持其在文档中的默认位置,然后可以通过`top`, `right`, `bottom`, 和 `left` 属性指定偏移量。 - 行为:相对定位的元素不会影响到其他元素的位置,它会在原位置的基础上移动,同时周围的元素会围绕它移动。 - 示例:你可以使用相对定位来创建一个弹出框或浮动元素。 **2. 绝对定位 (Absolute Positioning)**: - 原则:绝对定位元素会脱离正常的文档流,完全根据`top`, `right`, `bottom`, `left` 属性以及`position: absolute;`声明来定位,与最近的已定位(`position: relative;`)祖先元素相关联,如果没有,则相对于视口(浏览器窗口)定位。 - 行为:绝对定位元素会完全离开其在文档中的原始位置,其他元素也不会因此受到影响,除非它们也设置为绝对定位并覆盖了该元素。 - 示例:通常用于创建固定在页面某个角落的导航菜单或图片,或者是响应式的网页设计中,如轮播图中的图片。 **相关问题**: 1. 相对定位绝对定位有什么区别? 2. 如何使用`position: relative;`和`position: absolute;`来配合使用? 3. 绝对定位的`z-index`属性有什么作用?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值