首页 > 其他分享 >CSS基础-定位

CSS基础-定位

时间:2023-08-21 17:23:45浏览次数:32  
标签:定位 元素 top 位置 基础 参考点 position CSS

CSS中通常使用position 属性,决定元素的定位方式。

常用的定位方式通常有

意义
relative 相对定位
absolute 绝对定位
fixed 固定定位

相对定位

position 设置为 relative。

相对定位是元素相对于自己原来的位置通过使用top、left 等属性进行移动,使其显示在新的位置上。

相对定位的元素虽然移动了,但是之前的位置并没有放弃,同时也不会抢占移动后原有元素的位置(但会对原有位置的元素进行压盖)。

相对定位通常用来微调元素位置;而且相对定位可以作为下面要讲的绝对定位的参考坐标。

属性 作用
top 像素、百分比等 相对原来位置,距离上边移动距离,可以为负值
left 像素、百分比等 相对原来位置,距离左边移动距离,可以为负值
right 像素、百分比等 相对原来位置,距离右移动距离,可以为负值
bottom 像素、百分比等 相对原来位置,距离下边移动距离,可以为负值

相对定位举例

像素描述位置

box2 开启了相对定位,在新的位置得到了渲染。

代码

<!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>相对定位概念</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }

      p {
        width: 100px;
        height: 100px;
        background-color: orange;
        border: 1px solid #000;
      }

      .box2 {
        position: relative;
        top: 102px;
        left: 102px;
      }
    </style>
  </head>
  <body>
    <p></p>
    <p class="box2"></p>
    <p></p>
  </body>
</html>

百分比形式

如果在相对定位中, top、left、bottom、right 写成百分比的形式,表示他们在父容器内所显示的百分比位置。

举例

父元素宽高均200px。开启子元素相对定位,则子元素位置如下。

代码

<!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>相对定位概念</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 200px;
        height: 200px;
        border: 1px solid #000;
        margin: 40px auto;
      }

      p {
        position: relative;
        top: 50%;
        left: 50%;
        width: 100px;
        height: 100px;
        background-color: orange;
      }
    </style>
  </head>
  <body>
    <div>
      <p></p>
    </div>
  </body>
</html>

绝对定位

position 设置为 absolute。

绝对定位的元素在浏览器中拥有绝对位置,可以通过坐标进行描述。

绝对定位的元素脱离标准文档流,释放了自己本来应该在的地方的位置;同时会在新的位置上对其他元素进行压盖。

绝对定位的元素会在自己祖先元素中寻找拥有定位属性的元素作为参考点。这个祖先元素通常是相对定位的。

绝对定位的元素如果找不到拥有定位属性的祖先元素作为参考点,则相对于 IBC(初始包含块,可以认为是HTML根元素)定位。

属性 作用
top 像素、百分比等 相对参考点位置,距离参考点上边移动距离,可以为负值
left 像素、百分比等 相对参考点位置,距离参考点左边移动距离,可以为负值
right 像素、百分比等 相对参考点位置,距离参考点右边移动距离,可以为负值
bottom 像素、百分比等 相对参考点位置,距离参考点下边移动举例,可以为负值。

举例

参考点IBC

参考点是IBC,此时的top、left、bottom、right都是通过HTML跟节点来描述元素的位置。

代码

<!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>绝对定位释放自己位置的示例</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 200px;
        height: 200px;
      }
      .box1 {
        background-color: orange;
      }
      .box2 {
        background-color: green;
        position: absolute;
        top: 230px;
        left: 200px;
      }
      .box3 {
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <ul>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
      <li>alalaladdddddddddddddddddddddddddddddddddd</li>
    </ul>
  </body>
</html>

参考点是定位元素

最经典的就是,父节点开启相对定位, 子元素开启绝对定位;此时的top、left、bottom、right都是通过父元素的位置描述子元素。

代码

<!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>子绝父相</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .box1 {
        width: 402px;
        height: 402x;
        border: 1px solid #000;
        padding: 100px;
        margin: 0 auto;
        position: relative;
      }

      .box2 {
        width: 200px;
        height: 200px;
        padding: 50px;
        border: 1px solid #000;
        position: relative;
      }

      .box3 {
        width: 50px;
        height: 50px;
        border: 1px solid #000;
        position: absolute;
        top: 0px;
        left: 0px;
        background-color: orange;
      }
    </style>
  </head>
  <body>
    <div class="box1">
      <div class="box2">
        <div class="box3">dual</div>
      </div>
    </div>
  </body>
</html>

固定定位

position 设置为 fixed。

不管页面如何下拉,元素永远固定在一个位置。

固定定位只以页面为参考点,并且同样也脱离了标准的文档流。

固定定位用途:

  1. 用于 页面内容比较长,返回顶部功能等。
  2. 用于 制作CSS精灵 (现在很少用了)

固定定位代码

<!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>固定定位demo</title>
    <style>
        .box {
            position: fixed;
            top: 100px;
            left: 100px;
            width: 100px;
            height: 100px;
            background-color: red;
        }

        body {
            height: 100000px;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

层叠属性

对于上述说的定位元素,他们都有可能压盖到渲染后的位置上的原有元素。某些场景下我们不希望此事发生。

此时就用到了 z-index属性。它的值是一个正整数, 值越大会越在上面显示。

层叠属性代码

<!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>z-index属性演示</title>
    <style>
        .box1 {
            width: 300px;
            height: 300px;
            background-color: orange;
            position: absolute;
            top:100px;
            left: 100px;
            z-index: 2;
        }

        .box2 {
            width: 300px;
            height: 300px;
            background-color: green;
            position: absolute;
            z-index: 10;
        }
    </style>
</head>
<body>
    
    <div class="box1"></div>
    <div class="box2"></div>
</body>
</html>

总结

相对定位:相对于自己原来的位置进行定位。

绝对定位:选一个参考点进行定位。参考点可以是拥有定位属性的祖先元素,如果找不到,则为IBC。

固定定位:在页面(可视化的屏幕)的固定位置,不随着页面滚动而滚动。

标签:定位,元素,top,位置,基础,参考点,position,CSS
From: https://www.cnblogs.com/haloujava/p/17646584.html

相关文章

  • 国际择校小程序,定位
    效果:学校简介,展开后,向上滑动页面,再点击学校简介,简介收起后,页面重新定位到了学校简介收起的位置。如果不做特殊处理,效果如下:......
  • 001 DDR基础知识(一)存储器分类
    1内存     内存(Memory)指的是内存存储器,又称为主存,是CPU用来直接寻址和存储的空间,它相当于一座桥梁,用以负责诸如硬盘、主板、显卡等硬件上的数据与处理器之间数据交换处理,我们可以把内存看作数据缓存区,一个高速的缓存区。内存之所以称为内存,是相对于硬盘这些外存而言,我们......
  • 7 CSS选择器优先级
    7选择器优先级所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。样式表中的特殊性描述了不同规则的相对权重。/*!important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性1内联样式表的权值最高style=""1000;......
  • 学习 ChatGPT 一切基础知识的绝佳资源
    推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景OpenAI,ChatGPT,GPT系列和大型语言模型(LLM)一般-如果你与人工智能专业或技术专家有远程联系,你很有可能会在几乎所有的商业对话中听到这些词这些天。炒作是真实的。我们不能再称它为泡沫了。毕竟,这一次,炒作正在兑现其承......
  • 数据库基础
    数据库简介数据库定义与概念数据库是一种存储、组织和管理大量数据的软件工具。它能够存储各种类型的数据,包括文本、图像、视频、音频等,并且可以方便地对其进行读取、写入和更新等操作。数据库的概念可以追溯到二十世纪早期,最早的数据库是文件系统,后来逐渐演化为关系型数据库......
  • 基础认证
    HTTP基础认证暴力破解挂上BurpSuite的代理,随便输个账号密码(比如:账号aaa密码bbb)访问,查看HTTP响应报文:得到提示doukonwadmin?,于是猜测账号是admin,那么接下来就只需要爆破密码了注意看到HTTP请求头部的Authorization字段:Authorization:BasicYWFhOmJiYg......
  • 学习笔记411—【词向量基础】:one-hot
    【词向量基础】:one-hot词向量(wordvector),也叫词嵌入(wordembedding),是一种词表征形式,将词从符号形式映射为向量形式,渐渐演变成了一种知识表示的方法。将词语从符号表示形式转换为了向量表示形式,方便了机器对自然语言的计算,因此,词向量几乎成为了所有自然语言处理和理解的下游任务的......
  • 5 CSS伪类选择器
    5伪类选择器anchor伪类:专用于控制链接的显示效果MoreActions:linka:link选择所有未被访问的链接。:visiteda:visited选择所有已被访问的链接。:activea:active选择活动链接。:hovera:hover选择鼠标指针位于其上的链接。<style>a:link{......
  • css 右上角标的效果
    右上角<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>制作角标的方法</title><scriptsrc="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></scrip......
  • css 右上角三角形标签样式
    <style>.box{position:relative;height:100px;width:300px;border:1pxsolidgray;box-sizing:border-box;}.sanjiao{position:absolute;top:0;right:0;height:60......