【CSS】CSS 布局——定位

在CSS(层叠样式表)中,定位是一种用来控制元素在网页上的布局位置的技术。CSS提供了不同的定位属性,用于控制元素相对于其父元素或文档视口的位置。

CSS中常用的定位属性

  1. 静态定位(static)
    这是所有元素的默认定位方式。元素按照文档流布局,不受后续定位属性的影响。无法使用 topbottomleftright 来控制位置。

  2. 相对定位(relative)
    使用相对定位,元素相对于其正常位置进行微调,但其占用的空间仍然保留在文档流中。可以使用 topbottomleftright 属性来控制元素的偏移。移动元素时不会影响其他元素的位置。

  3. 绝对定位(absolute)
    绝对定位使元素脱离文档流,相对于其最近的非静态定位的父元素进行定位。如果没有符合条件的父元素,则相对于文档视口定位。使用 topbottomleftright 属性来控制元素的偏移。绝对定位的元素不会占用文档流中的空间。

  4. 固定定位(fixed)
    类似于绝对定位,但是固定定位的元素会相对于文档视口进行定位,即使用户滚动页面,元素也会保持在固定位置。适用于创建悬浮导航栏或工具提示等。

  5. 粘性定位(sticky)
    它基本上是相对位置和固定位置的混合体,它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点(例如,从视口顶部起 10 像素)为止,此后它就变得固定了。

“子绝父相”

“子绝父相” 是一种常用于实现网页布局的CSS布局模式,它使用相对定位和绝对定位的组合来实现灵活的布局结构。这种布局模式的中文名称源于其特点:子元素使用绝对定位脱离文档流,而父元素使用相对定位来作为参考,使得子元素相对于父元素进行定位。

这个布局模式的主要思想是:

  1. 父元素(相对定位):父元素设置为相对定位,这样子元素的定位将以父元素为基准。父元素并不会被完全从文档流中移除,它仍然占据空间。

  2. 子元素(绝对定位):子元素设置为绝对定位,这使得它从文档流中脱离出来,并且可以通过设置 topbottomleftright 属性来精确控制子元素在父元素内的位置。

使用子绝父相布局的典型情况包括:

  • 定位导航栏:将导航栏固定在页面的某个位置,通过相对定位的父容器和绝对定位的导航元素来实现。

  • 创建遮罩效果:通过相对定位的父容器和绝对定位的遮罩元素来创建覆盖在其他内容上的半透明遮罩。

  • 图文混排:实现文字与图片混合排列的布局,通过子绝父相,可以精确控制图片和文字的位置关系。

  • 实现定位工具提示:通过相对定位的父容器和绝对定位的提示框元素来实现当鼠标悬停在某个元素上时显示提示信息的效果。

虽然子绝父相布局模式非常灵活且功能强大,但在使用时需要注意:

  • 可能会导致元素覆盖问题,需要合理控制层叠顺序(通过 z-index 属性)。
  • 子元素的尺寸可能需要通过额外的手段来控制,以确保布局效果正确。
  • 需要注意父元素的包裹性,以避免父元素高度坍塌等问题。

当元素开始重叠,源顺序中后定位的元素将赢得先定位的元素。z-index 影响定位元素位于z轴上的位置;正值将它们移动到堆栈上方,负值将它们向下移动到堆栈中。默认情况下,定位的元素都具有 z-index 为 auto,实际上为 0。

固定定位与绝对定位的区别

绝对定位将元素固定在相对于其位置最近的祖先。(如果没有,则为初始包含它的块)而固定定位固定元素则是相对于浏览器视口本身。

总结一下,定位属性在CSS中用于控制元素的布局位置。静态定位是默认方式,相对定位微调元素的位置,绝对定位将元素从文档流中移除并相对于父元素或文档视口定位,固定定位在文档视口内固定元素,而粘性定位在滚动时将元素固定在某个位置直至达到阈值。

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

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

相关文章

Mysql查询(SELECT)

基本查询:SELECT FROM SELECT 查询字段 FROM 表名; SELECT * FROM userinfo; 条件查询:用where表示查询条件 SELECT 查询字段 FROM 表名 WHERE 条件; 模糊查询:like %匹配0或多个字符,一般不用左模糊(%放在左边&…

【电子取证篇】汽车取证检验标准

【电子取证篇】汽车取证检验标准 汽车取证鉴定可能涉及的测试/测量方法—【蘇小沐】 GA/T 976-2012《电子数据法庭科学鉴定通用方法》; GA/T 1998-2022《汽车车载电子数据提取技术规范》; GA/T 1999.2-2022《道路交通事故车辆速度鉴定方法 第2部分&…

windows使用-设置windows的远程访问用户数量

文章目录 前言相关操作总结前言 作为IT工程师,使用服务器做相应的软件操作时常有的事。最近一段时间,我们的团队多个成员都需要远程登录到一台windows2003Server的服务器处理相应的业务。而默认情况下,Windows系统只允许一名用户远程到服务器上,这给小伙伴的工作造成一些不…

时序预测 | MATLAB实现AR、ARMA、ARIMA时间序列预测模型答疑

时序预测 | MATLAB实现AR、ARMA、ARIMA时间序列预测模型答疑 目录 时序预测 | MATLAB实现AR、ARMA、ARIMA时间序列预测模型答疑基本介绍程序设计参考资料基本介绍 AR自回归模型(Autoregressive Model),通常简称为AR模型,是一种用于时间序列分析和预测的统计模型。它基于时间…

docker与phpstudy两种方式部署wordpress 并 开启伪静态

实际测试,可能是docker内存限制的缘故,docker部署的会比较卡 下载 wordpress phpstudy phpstudy中伪静态配置 伪静态 正常访问 WordPress 文章页的 URL 地址为 http://asa/index.php?p123。变成伪静态就是http://asa/123.html 。 伪静态是相对真实静…

Kubernetes技术--k8s核心技术Controller控制器

1.Controller概述 Controller是在集群上管理和运行容器的对象。是一个实际存在的对象。 2.pod和Controller之间的关系 pod通过controller实现应用的运维,包括伸缩、滚动升级等操作。 这里pod和controller通过label标签来建立关系。如下所示: 3.Deployment控制器应用场景 -1:…

MVCC简介、工作流程、优缺点

目录 简介 相关概念 工作流程 MVCC优缺点 简介 MVCC(Multi-Version Concurrency Control)即多版本并发控制,是通过维护数据的历史版本,从而解决并发访问情况下的读一致性问题 相关概念 读锁: 也叫共享锁、S锁。若…

ubuntu 22.04 -- cmake安装

安装方式一:源码安装 1、下载安装包 官网下载:下载链接:https://cmake.org/download/ 也可以使用命令行下载 wget https://github.com/Kitware/CMake/releases/download/v3.26.5/cmake-3.26.5.tar.gz2、解压并安装 # 1、解压 tar -zxvf …

数据结构入门 — 队列

本文属于数据结构专栏文章,适合数据结构入门者学习,涵盖数据结构基础的知识和内容体系,文章在介绍数据结构时会配合上动图演示,方便初学者在学习数据结构时理解和学习,了解数据结构系列专栏点击下方链接。 博客主页&am…

Private market:借助ZK实现的任意计算的trustless交易

1. 引言 Private market,借助zk-SNARKs和以太坊来 隐私且trustlessly selling: 1)以太坊地址的私钥(ECDSA keypair)2)EdDSA签名3)Groth16 proof:借助递归性来匿名交易Groth16 proo…

Pytest参数详解 — 基于命令行模式

1、--collect-only 查看在给定的配置下哪些测试用例会被执行 2、-k 使用表达式来指定希望运行的测试用例。如果测试名是唯一的或者多个测试名的前缀或者后缀相同,可以使用表达式来快速定位,例如: 命令行-k参数.png 3、-m 标记&#xff0…

Dubbo详解

1.1 Dubbo概述 Dubbo是阿里巴巴开源的基于 Java 的高性能RPC(一种远程调用) 分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 每天为2千多个服务提供大于30亿次访问量支持,并被…

HDFS文件的读写流程

Hadoop HDFS的读写文件流程 HDFS写文件流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件(hadoop fs -put 文件名 文件路径 ) 判断该客户端是否有写入权限NameNode检查目标文件是否已存在,父目录是否存在。 NameNode返回是…

2、Spring6 入门

1、环境要求 JDK:Java17(Spring6要求JDK最低版本是Java17) Maven:3.6 Spring:6.0.2 2、构建模块 2.1 构建父模块spring6 点击“Create” 2.2 构建子模块spring-first 点击 Create 完成. 3、程序开发 3.1 引入依…

python面试题合集(一)

python技术面试题 1、Python中的幂运算 在python中幂运算是由两个 **星号运算的,实例如下: >>> a 2 ** 2 >>> a 4我们可以看到2的平方输出结果为4。 那么 ^指的是什么呢?我们用代码进行演示: >>>…

全新纠错码将量子计算提效10倍!

上周,来自两个研究小组的最新模拟报告称,一类新兴的量子纠错码的效率比目前的“黄金标准”(即表面码)高出一个数量级。 量子纠错码的工作原理都是将大量容易出错的量子比特转换成更小的“受保护”量子比特,这些量子比特…

vue3+ts+tinynce富文本编辑器+htmlDocx+file-saver 配合实现word下载

vue3 请下载html-docx-js-typescript,否则会报错类型问题 //报告导出word import * as htmlDocx from "html-docx-js-typescript";//ts-ignore import { saveAs } from file-saver// 下载文件, const downloadFile (row)> {try {const co…

Power View

界面 切换可视化效果 对于已经上传到透视表的数据,选择power view,形成表格后。

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

原文作者: Robert Haynes 原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击…

RISC-V Linux系统kernel制作

文章目录 1、下载2、编译 1、下载 Linux 官网地址:https://www.kernel.org $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.181.tar.xz $ tar xvf linux-5.10.181.tar.xz $ cd linux-5.10.1812、编译 安装依赖 $ sudo apt-get install -y flex bison bui…