CSS中position属性总结

CSS中position属性的总结

如果我的文章看不懂,不要犹豫,请直接看阮一峰大佬写的文章
https://www.ruanyifeng.com/blog/2019/11/css-position.html

1 干嘛用的

用来定位HTML元素位置的,通过top、bottom、right、left定位元素
分别有这些值:

  • static 默认值 就页面上正常展示逻辑
  • absolute 相对于父元素定位 这个父元素要有postion:relative 否则会向上找到html元素定位
  • fixed 相对于浏览器视口定位
  • relative 相对于这个元素本来的位置(static时的位置)定位
  • sticky 只有设置了相对位置(top、bottom、right、left)才会有效 它的效果是当视口和元素到了相对位置时,元素会黏到这个位置上不动

注:视口就是当前屏幕浏览器展示的区域

2 举个栗子

2.1 relative

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: gray;
            margin: 0;
        }
        .relative-class {
            position: relative;
            right: 50px;
            bottom: 50px;
            background-color: skyblue;
            width: 100px;
            height: 100px;
        }
    </style>
</head>
<body>
	<div class="relative-class"></div>
</body>
</html>

效果:
正常情况(及默认static时)蓝色的div应该展示在红色位置上
因为配置了position:relative,right: 50px; bottom: 50px;
所以实际这个蓝色div会距离这个红色框的位置右边50px,距离这个红色框的位置底部50px
在这里插入图片描述

2.2 absolute

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: gray;
            margin: 0;
        }
        .absolute-father {
            position: relative;

            background-color: skyblue;
            width: 200px;
            height: 200px;
        }

        .absolute-son{
            /**
            absolute的限制条件:定位基点(一般是父元素)不能是static定位,
            否则定位基点就会变成整个网页的根元素html。
            另外,absolute定位也必须搭配top、bottom、left、right这四个属性一起使用。

            注意,absolute定位的元素会被"正常页面流"忽略,即在"正常页面流"中,
            该元素所占空间为零,周边元素不受影响。
            */
            position: absolute;

            top: 100px;
            /* left: 100px; */

            background-color: orange;
            width: 100px;
            height: 100px;
        }
        .normal-son{
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
	<div class="absolute-father">
        <div class="absolute-son"></div>
        <div class="normal-son"></div>
    </div>
</body>
</html>

效果:
红框中的蓝色div是父,黄色、绿色的div是子
父类必须有position: relative; 子类的absolute,才会依据父类定位,否则会一直向上找,直到html标签为止。
黄色div开启了absolute,top:100px,所以会相距父div上边100px的距离。
又因为absolute定位的元素会被"正常页面流"忽略,所以绿色div,占据了黄色div本来的位置。
在这里插入图片描述

2.3 fixed

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: gray;
            margin: 0;
        }
        .fixed {
            position: fixed;
            bottom: 0;
            right: 0;
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
<body>
	<div class="fixed"></div>
</body>
</html>

效果:
弹窗小广告,一直固定在视口的指定位置上
如下图所示,鼠标上下滚动,div固定在浏览器右下角
在这里插入图片描述

2.4 sticky

主要关注class=stick那个div就行。其他div是上面的例子,为了撑页面用的

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: gray;
            margin: 0;
        }



        .relative-class {
            position: relative;
            right: 70px;
            bottom: 70px;
            background-color: skyblue;
            width: 100px;
            height: 100px;
        }

        .absolute-father {
            position: relative;

            background-color: skyblue;
            width: 200px;
            height: 200px;
        }

        .absolute-son{
            /**
            absolute的限制条件:定位基点(一般是父元素)不能是static定位,
            否则定位基点就会变成整个网页的根元素html。
            另外,absolute定位也必须搭配top、bottom、left、right这四个属性一起使用。

            注意,absolute定位的元素会被"正常页面流"忽略,即在"正常页面流"中,
            该元素所占空间为零,周边元素不受影响。
            */
            position: absolute;

            top: 100px;
            /* left: 100px; */

            background-color: orange;
            width: 100px;
            height: 100px;
        }
        .normal-son{
            width: 100px;
            height: 100px;
            background-color: green;
        }

        .fixed {
            position: fixed;
            bottom: 0;
            right: 0;
            width: 100px;
            height: 100px;
            background-color: red;
        }
        .foo {
            width: 100px;
            height: 5000px;
        }
        .sticky {
            position:sticky;
            top: 0px;
            width: 100px;
            height: 100px;
            background-color: gold;
        }
    </style>
</head>

<body>
    <div class="relative-class"></div>
    <hr>
    <div class="absolute-father">
        <div class="absolute-son"></div>
        <div class="normal-son"></div>
    </div>
    <hr>
    <div class="fixed"></div>
    <div class="normal-son"></div>
    <hr>
    <div class="sticky"></div>
    <div class="foo"></div>
    
</body>

</html>

效果:
一开始金色div正常展示,当滚动条滚动到它与视口指定的css位置时(top: 0px;)就粘住不动了。滚动条滚上去,它又恢复正常展示
在这里插入图片描述
完~

觉得不错的话点个赞呗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/557535.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【DM8】ODBC

官网下载ODBC https://www.unixodbc.org/ 上传到linux系统中 /mnt下 [rootstudy ~]#cd /mnt [rootstudy mnt]# tar -zxvf unixODBC-2.3.12.tar.gz [rootstudy mnt]# cd unixODBC-2.3.12/ [rootstudy unixODBC-2.3.12]# ./configure 注意&#xff1a;若是报以上错 则是gcc未安…

双向链表(带头双向循环链表)的实现

前言&#xff1a;前面实现的单向链表&#xff0c;全称是不带头单向不循环链表。这里实现带头双向不循环链表&#xff0c;比单向链表好实现一点。 目录 链表的分类 单向链表与双向链表的比较&#xff1a; 双向链表的节点的定义&#xff1a; 多文件实现&#xff1a; List.h来…

B007-二维数组方法

目录 二维数组一维数组回顾二维数组定义与创建二维数组的遍历二维数组堆栈图特殊的char数组 方法main方法认识自定义方法调用同类中方法调用不同类中方法方法的参数方法的返回值方法签名方法重载 二维数组 一维数组回顾 二维数组定义与创建 二维数组的遍历 /*** 二维数组:* …

230元的通配符证书是最便宜的吗

随着互联网的发展&#xff0c;越来越多的人认为需要保护用户在网站中传输的数据&#xff0c;因此各个数字证书颁发机构颁发各种数字证书来为网站传输信息进行加密。其中通配符SSL证书是比较受欢迎的一款域名数字证书&#xff0c;这款SSL证书可以用一张证书保护主域名以及主域名…

为什么选择TikTok直播专线而不是节点?

TikTok直播已成为许多商家的重要营销手段&#xff0c;而网络质量作为营销直播效果的关键因素&#xff0c;使得商家们开始应用TikTok直播专线。虽然与节点相比&#xff0c;专线的价格稍高&#xff0c;但更多商家都倾向于选择TikTok直播专线。那么&#xff0c;为什么TikTok直播更…

Nginx内存池相关源码剖析(一)总览

剖析nginx的内存池源码&#xff0c;讲解原理实现以及该内存池设计的应用场景 介绍 Nginx内存池是Nginx为了优化内存管理而引入的一种机制。在Nginx中&#xff0c;每个层级&#xff08;如模板、TCP连接、HTTP请求等&#xff09;都会创建一个内存池进行内存管理。当这些层级的…

5款开源、美观、强大的WPF UI组件库

前言 经常看到有小伙伴在DotNetGuide技术社区微信交流群里提问&#xff1a;WPF有什么好用或者好看的UI组件库&#xff1f;,今天大姚给大家分享5款开源、美观、强大、简单易用的WPF UI组件库。 WPF介绍 WPF 是一个强大的桌面应用程序框架&#xff0c;用于构建具有丰富用户界面…

mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause

解决方案&#xff1a; select version(), sql_mode;SET sql_mode(SELECT REPLACE(sql_mode,ONLY_FULL_GROUP_BY,)); 完美的解决方案是&#xff1a; 1 show variables like "sql_mode"; 2 3 set sql_mode; 4 set sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL…

编程新手必看,Python3中数据结构知识点及语法学习总结(21)

介绍&#xff1a;在Python3中&#xff0c;数据结构是组织和存储数据的有效方式&#xff0c;它们对于编写高效且可维护的代码至关重要。以下是对Python中常见内置数据结构的介绍&#xff1a; 字典&#xff08;Dictionaries&#xff09;&#xff1a; 字典在Python中是一个非常核…

跟TED演讲学英文:How AI can save our humanity by Kai-Fu Lee

How AI can save our humanity Link: https://www.ted.com/talks/kai_fu_lee_how_ai_can_save_our_humanity Speaker: Kai-Fu Lee Date: April 2018 文章目录 How AI can save our humanityIntroductionVocabularyTranscriptSummary后记 Introduction AI is massively trans…

抖音爆火的产品都具备哪些特点,该如何选品?

抖音的崛起给许多创业者带来了商机&#xff0c;很多人选择在抖音开设小店。 对于拥有自己的小店的商家来说&#xff0c;如何提升商品曝光率是非常重要的。 而抖音选品广场就是一个非常好的平台。 抖音选品广场是抖音的一个分区&#xff0c;专门展示各种有特色的商品&#xf…

【若依前后端分离】仪表盘绘制

示例&#xff1a; 代码&#xff1a; InstrumentPanel.vue组件 <template><div><!-- 在这里放置你的图表组件 --><div ref"echarts" style"width: 100%; height: 400px;"></div></div> </template><script&g…

2024中国国际中医药健康服务博览会(7月深圳中医药展)

聚焦中医国粹&#xff0c;助力健康中国 2024第五届中国国际中医药健康服务&#xff08;深圳&#xff09;博览会 暨粤港澳大湾区中医药高质量发展大会 邀请函 时间&#xff1a;2024年7月31日-8月2日 地址:深圳会展中心&#xff08;福田&#xff09; 支持单位&#xff…

(2022级)成都工业学院数据库原理及应用实验四: SQL简单查询

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 在实验三的基础上完成下列查询&#xff1a; 1、查询所有…

react 响应式栅格布局

遇到一个小问题 , 有很多的下拉框放在了一行的盒子里 用到了栅格思路 , 但响应式处理屏幕时候右侧的按钮会覆盖掉样式 之前我的思路是子绝父相 , 将按钮定在最右侧 , 按钮和下拉框都在同一盒子中 , 且做了栅格处理没想到还是会覆盖解决 : 后来我用到了 margin-left: auto 来让…

vue3 echarts 图表主题切换

我主要是用了localStorage和composable来实现的。 先创建composable文件夹存储composable的操作方法&#xff1b; 在App.vue文件里面&#xff0c;先将主题数据存储在localStorage里面&#xff1b; 主题切换 图表theme包更换 为什么要用composable呢&#xff1f; 单纯的使用…

记录——FPGA的学习路线

文章目录 一、前言二、编程语言2.1 书籍2.2 刷题网站2.3 仿真工具 三、基础知识3.1 专业基础课3.2 fpga相关专业知识 四、开发工具五、动手实验 一、前言 也不是心血来潮想学习fpga了&#xff0c;而是祥哥还有我一个国科大的同学都在往fpga这个方向走 并且看过我之前文章的同…

上位机图像处理和嵌入式模块部署(树莓派4b实现固件主流程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 软件开发一般有软件需求、架构设计和详细设计、软件测试这四个部分。软件需求和软件测试都比较好理解&#xff0c;前者是说要实现哪些功能&#xf…

【Java】常见锁策略 CAS机制 锁优化策略

前言 在本文会详细介绍各种锁策略、CAS机制以及锁优化策略 不仅仅局限于Java&#xff0c;任何和锁相关的话题&#xff0c;都可能会涉及到下面的内容。 这些特性主要是给锁的实现者来参考的. 普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的 文章目录 前言✍一、…

户外旅行摄影手册,旅游摄影完全攻略

一、资料前言 本套旅游摄影资料&#xff0c;大小295.47M&#xff0c;共有9个文件。 二、资料目录 《川藏线旅游摄影》杨桦.彩印版.pdf 《户外摄影指南》(Essential.Guide.to.Outdoor.photography.amateur)影印版.pdf 《旅行摄影大师班》(英)科尼什.扫描版.PDF 《旅行摄影…