css---定位

定位

    • 1. 相对定位
      • 1.1 如何设置相对定位?
      • 1.2 相对定位的参考点在哪里?
      • 1.3 相对定位的特点:
    • 2. 绝对定位
      • 2.1 如何设置绝对定位?
      • 2.2 绝对定位的参考点在哪里?
      • 2.3 绝对定位元素的特点:
    • 3. 固定定位
      • 3.1 如何设置为固定定位?
      • 3.2 固定定位的参考点在哪里?
      • 3.3 固定定位元素的特点
    • 4. 粘性定位
      • 4.1 如何设置为粘性定位?
      • 4.2 粘性定位的参考点在哪里?
      • 4.3 粘性定位元素的特点
    • 5. 定位层级
    • 6. 定位的特殊应用
      • 6.1 让定位元素的宽充满包含块
      • 6.2 让定位元素在包含块中居中

1. 相对定位

1.1 如何设置相对定位?

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

1.2 相对定位的参考点在哪里?

  • 相对自己原来的位置

1.3 相对定位的特点:

  1. 不会脱离文档流,元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。
  2. 定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
    默认规则是:
    • 定位的元素会盖在普通元素之上。
    • 都发生定位的两个元素,后写的元素会盖在先写的元素之上。
  3. left不能和 right 一起设置,top 不能和bottom 一起设置。
  4. 相对定位的元素,也能继续浮动,但不推荐这样做。
  5. 相对行为的元素,也能通过margin 调整位置,但不推荐这样做。

注意:绝大多数情况下,相对定位,会与绝对定位配合使用。

2. 绝对定位

2.1 如何设置绝对定位?

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

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

  • 参考它的包含块。

什么是包含块?

  1. 对于没有脱离文档流的元素:包含块就是父元素;
  2. 对于脱离文档流的元素:包含块是第一个拥有定位属性的祖先元素(如果所有祖先都没定位,那包含块就是整个页面)。

2.3 绝对定位元素的特点:

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

何为定位元素? —— 默认宽、高都被内容所撑开,且能自由设置宽高。

3. 固定定位

3.1 如何设置为固定定位?

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

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

  • 参考它的视口

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

3.3 固定定位元素的特点

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

4. 粘性定位

4.1 如何设置为粘性定位?

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

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

  • 离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先(父元素高度大于子元素高度,但父元素设置了overflow:scroll)。

4.3 粘性定位元素的特点

  • 不会脱离文档流,它是一种专门用于窗口滚动时的新的定位方式。
  • 最常用的值是top 值。
  • 粘性定位和浮动可以同时设置,但不推荐这样做。
  • 粘性定位的元素,也能通过margin 调整位置,但不推荐这样做。

粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。

案例代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>粘性定位</title><style>* {margin: 0;padding: 0;}body {height: 2000px;}.page-header {height: 100px;text-align: center;line-height: 100px;background-color: orange;font-size: 20px;}/* .content { *//* height: 200px; *//* overflow: auto; *//* overflow: scroll; *//* } */.item {background-color: gray;}.first {background-color: skyblue;font-size: 40px;position: sticky;top: 0px;/* float: right; *//* margin-right: 100px; */}</style>
</head>
<body><!-- 头部 --><div class="page-header">头部</div><!-- 内容区 --><div class="content"><!-- 每一项 --><div class="item"><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="item"><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="item"><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>

5. 定位层级

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

6. 定位的特殊应用

注意:

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

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

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

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

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

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

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

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

相关文章

PostgreSQL教程(三十六):服务器管理(十八)之回归测试

回归测试是PostgreSQL中对于 SQL 实现的一组综合测试集。它们测试标准 SQL 操作以及PostgreSQL的扩展能力。 一、运行测试 回归测试可以在一个已经安装并运行的服务器上运行&#xff0c;或者在编译树中的一个临时安装上运行。此外&#xff0c;还有运行该测试的“并行”和“顺…

游戏免费下载平台模板源码

功能介绍 此游戏网站模板源码是专门为游戏下载站而设计的&#xff0c;旨在为网站开发者提供一个高效、易于维护和扩展的解决方案。 特点&#xff1a; 响应式设计&#xff1a;我们的模板可以自适应不同设备屏幕大小&#xff0c;从而为不同平台的用户提供最佳的浏览体验。 …

算法---滑动窗口练习-1(长度最小的子数组)

长度最小的子数组 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;长度最小的子数组 2. 讲解算法原理 首先&#xff0c;定义变量n为数组nums的长度&#xff0c;sum为当前子数组的和&#xff0c;len为最短子数组的长度&#xff0c;初始值为INT_MAX&am…

javascript中的structuredClone()克隆方法

前言&#xff1a; structuredClone 是 JavaScript 的方法之一&#xff0c;用于深拷贝一个对象。它的语法是 structuredClone(obj)&#xff0c;其中 obj 是要拷贝的对象。structuredClone 方法将会创建一个与原始对象完全相同但是独立的副本。 案例&#xff1a; 当使用Web Work…

阿里巴巴按关键字搜索商品 API 返回值说明

item_search-按关键字搜索商品API测试工具 alibaba.item_search 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,…

Shadertoy内置函数系列 - mod 取模运算

mod函数返回x % 3的结果 先看一个挑战问题题目&#xff1a; Create a pattern of alternating black and red columns, with 9 columns of each color. Then, hide every third column that is colored red.The shader should avoid using branching or conditional statemen…

2024年最新阿里云和腾讯云云服务器价格租用对比

2024年阿里云服务器和腾讯云服务器价格战已经打响&#xff0c;阿里云服务器优惠61元一年起&#xff0c;腾讯云服务器61元一年&#xff0c;2核2G3M、2核4G、4核8G、4核16G、8核16G、16核32G、16核64G等配置价格对比&#xff0c;阿腾云atengyun.com整理阿里云和腾讯云服务器详细配…

C语言分支和循环总结

文章目录 概要结构介绍不同结构的语句简单运用小结 概要 C语言中分为三种结构&#xff1a;顺序结构&#xff0c;选择结构&#xff0c;循环结构 结构介绍 顺序结构就是从上到下&#xff0c;从左到右等等&#xff1b;选择结构可以想象是Y字路口就是到了一个地方会有不同的道路…

Redis事务为什么不支持原子性

Redis事务提供了一种将多个命令打包&#xff0c;然后按顺序执行的机制。使用MULTI命令开始事务&#xff0c;接着输入需要队列化的命令&#xff0c;最后使用EXEC命令提交整个事务。尽管Redis事务可以保证一系列命令被连续执行&#xff0c;没有其他客户端命令插入其中执行&#x…

每日OJ题_路径dp②_力扣63. 不同路径 II

目录 力扣63. 不同路径 II 解析代码 力扣63. 不同路径 II 63. 不同路径 II 难度 中等 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;…

多媒体技术2-颜色空间

颜色空间是一种用于表示和描述颜色的数学模型。它是由颜色分量和坐标系组成的。常见的颜色空间有RGB、CMYK、HSV等。 RGB颜色空间&#xff1a;RGB是红、绿、蓝三个颜色分量的缩写。在RGB颜色空间中&#xff0c;每个颜色分量的取值范围是0到255&#xff0c;表示了红、绿、蓝三个…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Select)

提供下拉选择菜单&#xff0c;可以让用户在多个选项之间选择。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Select(options: Array<SelectOption>) 参数&#xff1a;…

golang中fallthrough简介及用法

什么是fallthrough&#xff1f; fallthrough是golang中的一个关键字&#xff0c;它用于在switch语句中控制代码的执行流程。通常情况下&#xff0c;当一个case分支匹配成功后&#xff0c;switch语句就会结束&#xff0c;不会继续执行后面的case分支。但是&#xff0c;如果在一…

git撤回代码提交commit或者修改commit提交注释

执行commit后&#xff0c;还没执行push时&#xff0c;想要撤销之前的提交commit 撤销提交 使用命令&#xff1a; git reset --soft HEAD^命令详解&#xff1a; HEAD^ 表示上一个版本&#xff0c;即上一次的commit&#xff0c;也可以写成HEAD~1 如果进行两次的commit&#xf…

爬虫(六)

复习回顾: 01.浏览器一个网页的加载全过程1. 服务器端渲染html的内容和数据在服务器进行融合.在浏览器端看到的页面源代码中. 有你需要的数据2. 客户端(浏览器)渲染html的内容和数据进行融合是发生在你的浏览器上的.这个过程一般通过脚本来完成(javascript)我们通过浏览器可以…

算法打卡day15|二叉树篇04|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

算法题 Leetcode 110.平衡二叉树 题目链接:110.平衡二叉树 大佬视频讲解&#xff1a;平衡二叉树视频讲解 个人思路 可以用递归法&#xff0c;计算左右子树的高度差&#xff0c;当超过1时就不为平衡二叉树了&#xff1b; 解法 回顾一下二叉树节点的深度与高度&#xff1b; …

Python学习:基础语法

版本查看 python --version编码 默认情况下&#xff0c;Python 3 源码文件以 UTF-8 编码&#xff0c;所有字符串都是 unicode 字符串。 特殊情况下&#xff0c;也可以为源码文件指定不同的编码&#xff1a; # -*- coding: cp-1252 -*-标识符 第一个字符必须是字母表中字母或…

rt-thread组件之audio组件(结合mp3player包使用)

前言 继上一篇RT-Thread组件之Audio框架i2s驱动的编写的编写&#xff0c;应用层使用rt-thread软件包里面的wavplayer组件以及 rt-thread组件之audio组件(结合wavplayer包使用)的文章本篇使用的是 mp3player软件包&#xff0c;与wavplayer设计框架基本上是一样的&#xff0c;只…

C语言真假之争

实验理论依据: \0、NULL、0和0在C语言中表示的意义是不同的&#xff1a; \0&#xff1a;这是一个空字符&#xff0c;ASCII值为0。常用于字符串结束的标志。 NULL&#xff1a;这是一个宏&#xff0c;表示空指针&#xff0c;用于初始化指针变量。 0&#xff1a;这是数字0&#…

LeetCode454 四数相加

给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2], nu…