前端CSS基础11(相对定位,绝对定位,固定定位,粘性定位)

news2024/11/24 1:37:30

前端CSS基础11(相对定位,绝对定位,固定定位,粘性定位)

  • CSS相对定位(position: relative;)
    • 相对定位的参考点在哪?
  • CSS绝对定位(position: absolute)
    • 如何设置绝对定位?
    • 绝对定位的参考点在哪里?
    • 什么是包含块?
    • CSS绝对定位元素的特点:
  • CSS固定定位(position: fixed)
    • 如何设置为固定定位?
    • 固定定位的参考点在哪里?
    • 固定定位元素的特点
  • CSS粘性定位(position:sticky;)
    • 如何设置为粘性定位?
    • 粘性定位的参考点在哪里?
    • 粘性定位元素的特点
    • 小试代码
  • 定位的层级
  • CSS定位的特殊应用
    • 让定位元素的宽充满包含块
    • 让定位元素在包含块中居中

CSS相对定位(position: relative;)

相对定位是CSS中一种定位方式,它会使元素相对于其原本在文档流中的位置进行移动,但仍占据该位置。要使用相对定位,可以在CSS中为目标元素设置position: relative;。然后,可以通过调整top, right, bottom, left属性来控制元素相对于原始位置的偏移。

相对定位的参考点在哪?

  • 相对于发生移动之间的位置来移动,相对于自己原来的位置。

在这里插入图片描述
相对定位:

        .box2{
            background-color: #666;
            position:relative;
            left:100px; 
        }

在这里插入图片描述

  • 如果给一个元素开了定位,层级就会比较高一些,可以覆盖其他元素。
  • 如果多个元素同时开了定位,后来者居上,后来的可以覆盖之前的。
  • 一般定位和margin和浮动不在一起用,会引起混乱。

CSS绝对定位(position: absolute)

绝对定位是CSS中一种定位方式,它会使元素相对于其最近的已定位父元素进行定位,如果没有已定位的父元素,则相对于文档的根元素进行定位。要使用绝对定位,可以在CSS中为目标元素设置position: absolute;。然后,可以通过设置top, right, bottom, left属性来确定元素在页面上的精确位置。

如何设置绝对定位?

  • 给元素设置position: absolute即可实现绝对定位。
  • 可以使用left、 right、top、 bottom四个属性调整位置。

绝对定位的参考点在哪里?

  • 参考它的包含块。

什么是包含块?

  1. 对于没有脱离文档流的元素:包含块就是父元素
  2. 文档流是什么:文档流(Document Flow)是指 HTML 文档中元素按照其在 HTML 中的顺序自上而下排列的方式。
  3. 脱离文档流是指通过 CSS 的定位属性(如position: absolute;、position: fixed;)或浮动属性(如float: left;、float: right;)等方式,让元素不再按照文档流的默认布局方式进行排列。当一个元素脱离文档流时,它可以自由地相对于其默认位置移动或者与其他元素。
  4. 对于脱离文档流的元素:包含块是第一个拥有定位属性的祖先元素(如果所有祖先都
    没定位,那包含块就是整个页面)。

CSS绝对定位元素的特点:

  1. 脱离文档流,对后面的元素、玩有影响。
  2. left不能和right一起设置,top和bottom不能一起设置。
  3. 绝对定位、浮渤不能同时设置,如果同时设置,浮动失效,以定为主
  4. 绝对定位的元素,也能通过margin调整位置,但不推荐这样做。
  5. 无论是什么元素(行内、行内块、块圾)设置为绝对定位之后,都变成了定位元素。
  6. 何为定位元素? 默认宽、 高都被内容所撑开,且能自由设置宽高。

CSS固定定位(position: fixed)

如何设置为固定定位?

  • 给元素设置position: fixed 即可实现固定定位。
  • 可以使用left、right 、top 、bottom 四个属性调整位置。

固定定位的参考点在哪里?

参考它的视口
什么是视口? 对于 PC浏览器来说,视口就是我们看网页的那扇窗户。

固定定位元素的特点

  1. 脱离文档流,对后面的兄弟元素、父元素有影响。
  2. left 不能和right一起设置,top 和bottom不能一起设置。
  3. 固定定位和浮动不能同时设置,如果同时设置,浮动失效,以固定定位为主。
  4. 固定定位的元素,也能通过margin调整位置,不推荐这样做。
  5. 无论是什么元素(行内、行内块、块级)设置为固定定位之后,都变成了定位元素。
  6. 何为定位元素? 默认宽、 高都被内容所撑开,且能自由设置宽高。

CSS粘性定位(position:sticky;)

如何设置为粘性定位?

  • 给元素设置position:sticky啊实现粘性定位。
  • 可以使用left、 right、 top、 bottom 四个属性调整位置,不过最常用的是top值。

粘性定位的参考点在哪里?

离它最近的一个拥有“滚动机制"的祖先元素,即便这个祖先不是最近的真实可滚动祖先。

粘性定位元素的特点

  1. 不会脱离文档流,它是一 种专门用于窗口滚动时的新的定位方式。
  2. 最常用的值是top值。
  3. 粘性定位和浮动可以同时设置,但不推荐这样做。
  4. 粘性定位的元素,也能通过margin调整位置,但不推荐这样做。
  5. 粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。

小试代码

<!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>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            height: 2000px;
        }
        .page-head{
            height: 100px;
            background-color: orange;
            line-height: 100px;
            text-align: center;
            font-size: 20px;
        }
        .item1{
            background-color: #CCC;
        }
        .first{
            background-color: blue;
            height: 40px;
            font-size: 30px;
            position: sticky;
            top:0px;
        }

    </style>
</head>
<body>
    <div class="page-head">头部</div>
    <div class="content">
        <div class="item1">
            <div class="first">A</div>
            <h2>A1</h2>
            <h2>A2</h2>
            <h2>A3</h2>
            <h2>A4</h2>
            <h2>A5</h2>
            <h2>A6</h2>
            <h2>A7</h2>
            <h2>A8</h2>
        </div>
        <div class="item1">
            <div class="first">A</div>
            <h2>A1</h2>
            <h2>A2</h2>
            <h2>A3</h2>
            <h2>A4</h2>
            <h2>A5</h2>
            <h2>A6</h2>
            <h2>A7</h2>
            <h2>A8</h2>
        </div>
        <div class="item1">
            <div class="first">B</div>
            <h2>B1</h2>
            <h2>B2</h2>
            <h2>B3</h2>
            <h2>B4</h2>
            <h2>B5</h2>
            <h2>B6</h2>
            <h2>B7</h2>
            <h2>B8</h2>
        </div>
        <div class="item1">
            <div class="first">C</div>
            <h2>C1</h2>
            <h2>C2</h2>
            <h2>C3</h2>
            <h2>C4</h2>
            <h2>C5</h2>
            <h2>C6</h2>
            <h2>C7</h2>
            <h2>C8</h2>
        </div>
    </div>
</body>
</html>

定位的层级

  1. 定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
  2. 如果位置发生重叠,默认情况是:后写的元素,会显示在前面元素之上(后来者居上)。
  3. 可以通过css属性z-index调整元素的显示层级。
  4. z-index 的属性值是数字,没有单位,值越大显示层级越高。
  5. 只有定位的元素设置z-index有效。
  6. 如果z-index 大的元素,依然没有覆盖掉z-index值小的元素,那么请检查包含块的层级,极有可能是包含块的层级拖累了此元素导致覆盖错误。

CSS定位的特殊应用

注意:

  1. 发生固定定位、绝对定位后,元素都变成了定位元素,默认宽高被内容撑开,且依然可以设置宽高。
  2. 发生相对定位后,元素依然是之前的显示模式。
  3. 以下所说的特殊应用,只针对绝对定位和固定定位的元素,不包括相对定位的元素。

让定位元素的宽充满包含块

  • 块宽想与包含块一致,可以给定位元素同时设置left 和right 为0。
  • 高度想与包含块一致,top 和bottom设置为0。

让定位元素在包含块中居中

  1. 方案一:
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
  1. 方案二:
left: 50%;
top: 50%;
margin-left:负的宽度一半;
margin-top:负的高度一半;

注意:该定位的元素必须设置宽高! ! !

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据赋能(71)——数据要素:概念

从这期开始&#xff0c;可能讨论数据相关的更高层次的话题——数据要素。讨论数据要素目的&#xff0c;是为了从一个更为宏观的视野去审视数据及数据赋能。这不仅有助于我们深入理解数据的本质与潜在价值&#xff0c;更能为数据的充分利用与未来发展提供更广阔的视角与思路。 …

公共交通无障碍设施:科技翅膀助力盲人出行新飞跃

在城市的脉络中&#xff0c;公共交通扮演着连接每一个角落的重要角色。然而&#xff0c;对于视力受限的盲人朋友而言&#xff0c;这幅繁忙而复杂的交通网络往往隐藏着诸多不易察觉的障碍。值得庆幸的是&#xff0c;随着公共交通无障碍设施的不断完善&#xff0c;以及高科技辅助…

设计模式 装饰模式

文章目录 装饰模式简介装饰模式结构装饰模式代码 装饰模式简介 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向现有对象动态添加新功能&#xff0c;而不需要修改其现有代码&#xff0c;并且可以通过组合多个装饰器对象实现多种…

org.yaml.snakeyaml.scanner.ScannerException: while scanning a simple key 。。。

控制台信息&#xff1a; 这个信息一般是yml文件配置出现了问题&#xff0c;如 出现非法数据 、缩进有问题等 问题地方如下&#xff0c;修改一下就好了 控制台一般报的这种错就是配置文件的格式不正确

FileLink内外网文件摆渡系统产品介绍

在现代企业中&#xff0c;往往存在着多个网络、系统之间的数据孤岛问题&#xff0c;数据难以互相访问和共享。 一、常用的内外网文件摆渡方式 传统的数据交换方式往往需要人工介入&#xff0c;效率低下且容易出错。如&#xff1a;U盘、FTP、VPN等&#xff0c;极易引发各种各样…

算法基础课 贪心算法模板题笔记

AcWing算法基础课 贪心算法模板题笔记 贪心得到的答案 > 最优解 贪心得到的答案 < 最优解 局部最优 -> 全局最优 文章目录 1 区间问题例1&#xff1a;区间选点例2&#xff1a;最大不相交区间数量例3&#xff1a;区间分组例4&#xff1a;区间覆盖 2 Huffman树例&…

Spark SQL - 简介

目录 1. 概念介绍 2. Spark SQL与Hive的区别 3. 数据结构分类 4. 特点 4.1 易整合 4.2 统一的数据访问方式 4.3 兼容hive 4.4 提供标准的数据连接 5 Spark的数据模型介绍 1. 概念介绍 sparkSQl是spark专门针对结构化数据(DataFrame和DataSets)处理的一个组件&#xf…

FFmpeg常用结构体、关键函数、ffplay.c分析

一、常用结构体&#xff1a; 1、AVFormatContext结构体&#xff1a; AVFormatContext是一个贯穿全局的数据结构&#xff0c;很多函数都要用它作为参数。FFmpeg代码中对这个数据结构的注释是format I/O context&#xff0c;此结构包含了一个视频流的格式内容。其中存有AVIputFor…

YOLO新鲜腐烂水果检测数据集:8类,11000多张图像,标注完整

YOLO新鲜腐烂水果检测数据集&#xff1a;8类&#xff0c;11000多张图像&#xff0c;yolo标注完整&#xff0c;包含烂苹果&#xff0c;烂香蕉&#xff0c;烂橙子&#xff0c;烂石榴&#xff0c;好苹果&#xff0c;好香蕉&#xff0c;好橙子&#xff0c;好石榴8个类别 图像统一分…

2024年4月28日

2024年4月28日08:14:11 utf8和utf8mb4的区别 CRATE DATABSE USE DATABASE DROP DATABASE 2024年4月28日08:34:56 主线和支线/理论和实践 DECIMAL(P&#xff0c;D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。 2024年4月28日08:36:02 如何去欣赏一…

NFS服务器(linux-linux)

目录 简介 NFS背景介绍 生产应用场景 NFS工作原理 示例图 流程 NFS的使用 安装 配置文件 主配置文件分析 实验1 NFS账户映射 实验2&#xff1a; 实验3 autofs自动挂载服务 产生原因 安装 配置文件分析 实验4 实验5 简介 NFS背景介绍 NFS是一种古老的用于…

Xinstall助力手游推广,打破传统营销方式

随着移动互联网的普及&#xff0c;手游市场日益繁荣&#xff0c;手游推广方式也日新月异。在这个竞争激烈的市场中&#xff0c;如何有效地推广手游&#xff0c;吸引更多的用户&#xff0c;成为了开发者和广告主关注的焦点。而Xinstall作为国内专业的App全渠道统计服务商&#x…

这份详细的智慧校园建设方案,赶紧收藏

高等教育信息化是促进高等教育改革创新和提高质量的有效途径&#xff0c;是教育信息化发展的创新前沿。进一步加强基础设施和信息资源建设&#xff0c;重点推进信息技术与高等教育的深度融合&#xff0c;能促进教育内容、教学手段和方法现代化&#xff0c;创新人才培养、科研组…

C语言进阶|链表经典OJ题

✈移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 方法一&#xff1a; 遍历链表找到所有等于val的节点&#xff0c;再执行删除操作删除这些节点。 方法二&#xff1a; …

小程序中如何绑定会员个人信息

在小程序中&#xff0c;用户可以在个人中心页面来设置用户名、头像、手机号码和身份证号码等个人信息。以下是具体的操作步骤&#xff1a; 1. 进入个人中心->账户设置。在个人中心页面&#xff0c;点击设置按钮&#xff0c;即可进入账户设置页面。在这个页面进行账号信息设…

百万人都在求的网络安全学习路线,渗透漏洞防御总结(附图)

前言 不折腾的网络安全&#xff0c;和咸鱼有什么区别 目录 二、 前言三 、同源策略 3.1 什么是同源策略 3.2 为什么需要同源策略四 、XSS 4.1 概览 4.2 介绍 4.3 防御五 、CSRF 5.1 概览 5.2 介绍 5.3 防御六、 SQL 注入七 、流量劫持 7.1 DNS 劫持 7.2 HTTP 劫持…

某知乎APP - X-Zse-96

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识&#xff0c;欢迎私信共享学习心得。 如有侵权&#xff0c;联系博主删除。 请勿商用&#xff0c;否则后果自负。 接口网址 app 版本: 8.10.0 aHR0cHM6Ly93d3cuemhpaHUuY29tL2FwaS92NC9zZWFyY2hfdjM 加密位置分析 > …

MySQL从入门到高级 --- 3.DML基本操作

文章目录 第三章&#xff1a;3.基本操作 - DML3.1 数据插入3.2 数据修改3.3 数据删除3.4 练习 第三章&#xff1a; 3.基本操作 - DML DML&#xff1a;数据操作语言&#xff0c;用来对数据中表的数据记录进行更新 关键字&#xff1a; insert 插入 delete 删除 update 更新 …

CLIP是啥?

论文地址&#xff1a;https://arxiv.org/pdf/2103.00020v1 代码地址&#xff1a;GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image 题目解读 Transferable Visual model指不使用特定数据集的数…

【代码随想录刷题记录】LeetCode844比较含退格的字符

题目地址 1. 思路 1.1 基本思路 拿到这个题&#xff0c;我们要单独写一个函数去将退格后的字符串结果返回出来&#xff08;生成退格后的真实的字符串&#xff09;&#xff0c;我还是想魔改 O ( n ) O(n) O(n)时间复杂度的删除数组元素的算法&#xff1a;【代码随想录刷题记录…