Position定位

Position定位

CSSposition属性是比较常用的元素定位方案,position常用的取值有staticrelativeabsolutefixedstickyinherit

static

static属性是HTML元素的默认值,即没有定位,遵循正常的文档流对象,对于topbottomleftrightz-index属性的设置都被忽略。
文档流,指的是盒子元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。
文本流,指的是文字元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。
脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。

<div class="t1">static</div>
<style type="text/css">div{border: 1px solid #eee;}.t1{position: static;}
</style>

relative

relative是相对定位,元素的位置是相对其原本位置进行偏移,其不脱离文档流,对于topbottomleftrightz-index属性的设置有效,设置偏移属性后会移动相对定位元素,但它原本所占的空间不会改变,相对定位元素经常被用来作为绝对定位元素的容器块。

<div class="t2">relative</div>
<div>对比查看效果 元素原本占据空间没有变化 但relative会有偏移</div>
<style type="text/css">div{border: 1px solid #eee;}.t2{position: relative;bottom: -10px;}
</style>

absolute

absolute是绝对定位,元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>,通常的使用方案是在外层嵌套一层relative相对定位元素作为父元素,再设置绝对定位元素的偏移将会相对于外层的relative元素进行偏移,绝对定位完全脱离文档流与文本流,不占据文档空间,对于topbottomleftrightz-index属性的设置有效。

<div class="t3"><div class="t4">absolute</div>
</div>
<style type="text/css">div{border: 1px solid #eee;}.t3{height: 300px;position: relative;}.t4{position: absolute;top: 100px;}
</style>

fixed

fixed是固定定位,元素的位置相对于浏览器窗口是固定位置,即使是窗口滚动元素也不会移动,注意在<iframe>中的元素使用fixed是相对于<iframe>进行定位的,<iframe>类似于在页面中创建了一个新的浏览器窗口,固定定位完全脱离文档流与文本流,不占据文档空间,对于topbottomleftrightz-index属性的设置有效。

<div class="t5">fixed</div>
<style type="text/css">div{border: 1px solid #eee;}.t5{position: fixed;top: 300px;}
</style>

sticky

sticky是粘性定位,元素的位置是基于用户的滚动位置来定位,粘性定位的元素是依赖于用户的滚动,在position: relativeposition: fixed定位之间切换,在页面显示时sticky的表现类似于position: relative,而当页面滚动超出目标区域时sticky的表现类似于position: fixed,它会固定在目标位置,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位,这个特定阈值指的是toprightbottomleft其中之一,必须通过指定toprightbottomleft四个阈值其中之一,才可使粘性定位生效,否则其行为与相对定位相同。

<div class="t6">sticky</div>
<style type="text/css">div{border: 1px solid #eee;}.t6{position: sticky;top: 0;}
</style>

inherit

inherit是通过继承父元素的position值来进行定位。

<div class="t7"><div class="t8">inherit</div>
</div>
<style type="text/css">div{border: 1px solid #eee;}.t7{position: relative;}.t8{position: inherit;bottom: -10px;}
</style>

代码示例

<!DOCTYPE html>
<html>
<head><title>position</title><style type="text/css">div{border: 1px solid #eee;margin: 5px 0;}.t1{position: static;}.t2{position: relative;bottom: -10px;}.t3{height: 300px;position: relative;}.t4{position: absolute;top: 100px;}.t5{position: fixed;top: 300px;}.t6{position: sticky;top: 0;}.t7{position: relative;}.t8{position: inherit;bottom: -10px;}</style>
</head>
<body><div class="t1">static</div><div class="t2">relative</div><div>对比查看效果 元素原本占据空间没有变化 但relative会有偏移</div><div class="t3"><div class="t4">absolute</div></div><div class="t5">fixed</div><div class="t6">sticky</div><div class="t7"><div class="t8">inherit</div></div><div style="height: 1000px">让浏览器出现滚动条</div>
</body>
</html>

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.zhihu.com/question/21911352
https://www.runoob.com/css/css-positioning.html
https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Normal_Flow

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

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

相关文章

【Python入门与进阶】常见问题与解决方法

1.Anaconda包管理 使用pip卸载包时&#xff0c;报错“无法访问’&#xff0c;在conda环境下进行pip install时&#xff0c;出现拒绝访问的错误 [WinError 5] 2.Jupyter问题 笔记本运行时无反应/文件无法重命名&#xff1a;【Python】Jupyter Notebook无法运行代码&#xff0c…

FENCE.I指令

FENCE.I指令 一、FENCE.I指令简介二、FENCE.I指令举例三、FENCE.I指令格式一、FENCE.I指令简介 FENCE.I 是 RISC-V 指令集架构中的一种 Fence 指令,用于同步指令缓存(Instruction Cache),用于保证内存操作的正确性和顺序性。具体来说,FENCE.I指令可以确保之前发出的所有对…

Java数据结构与算法(买卖股票的最佳时机二贪心算法)

前言 买卖股票最佳时机二&#xff0c;此时不限次数的买卖的要求获得的利益最大化。暴力算法依旧可行&#xff0c;可以参考之前的练习。 . - 力扣&#xff08;LeetCode&#xff09; 贪心算法原理参考:Java数据结构与算法(盛水的容器贪心算法)-CSDN博客 实现原理 1.定义最大…

基于Transformer的模型常见的张量类型

在自然语言处理&#xff08;NLP&#xff09;任务中&#xff0c;特别是使用基于Transformer的模型&#xff08;如BERT、RoBERTa等&#xff09;进行微调时&#xff0c;输入数据通常会被编码成几个关键的张量。以下是三个最常见的张量类型&#xff1a;input_ids、attention_mask和…

Discuz! X3.4卡密购买用户组PC手机版

下载地址&#xff1a;Discuz! X3.4卡密购买用户组PC手机版 插件简介&#xff1a; 1.在后台可设置售卖的用户组、用户组的价格、用户组的描述等信息&#xff0c;配置灵活多变。 2.后台可设置用户组到期后的用户组 3.同一用户购买同一用户组用户组到期时间累加 4.可以设置同一用…

Ubuntu 24.04 LTS 安装配置 MySQL Community Server 8.4.0 LTS

1 安装 Apt Repository ​​​​​​​地址MySQL :: Download MySQL APT Repository sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb #安装mysql 8.4 lts sudo apt update sudo apt-get install mysql-server #修改mysql root密码策略 2 查看版本 testtest:~$ mysqld --v…

力扣每日一题 6/10

881.救生艇[中等] 题目&#xff1a; 给定数组 people 。people[i]表示第 i 个人的体重 &#xff0c;船的数量不限&#xff0c;每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&#xff0c;但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船…

LinkedList详解(含数据结构动画演示)

目录 LinkedList详解1、LinkedList的继承体系2、LinkedList的构造函数3、LinkedList的add(E e)方法4、LinkedList的Node节点5、双向链表的概念和Node节点的详细解释6、LinkedList的add(E e)方法梳理7、LinkedList的getXXX方法8、LinkedList的removeXXX方法①、removeFirst()方法…

论述MySQL的同异步复制

MySQL的复制功能是数据库系统中一个重要的特性&#xff0c;它可以实现数据的冗余备份和分布式读写&#xff0c;提高系统的可靠性和性能。MySQL的复制主要分为异步复制、半同步复制和同步复制&#xff0c;这三种复制方式在机制和使用场景上有显著的不同。 异步复制 特点 主从…

如何进行《我的世界》基于Spigot的插件开发

如何进行《我的世界》基于Spigot的插件开发 《我的世界》&#xff08;Minecraft&#xff09;是一款沙盒游戏&#xff0c;允许玩家在一个由方块组成的三维世界中进行探索、建造和冒险。通过使用Spigot服务器&#xff0c;你可以为《我的世界》开发自定义插件&#xff0c;扩展游戏…

python常用命令集

1、pip 命令 正常安装 pip install package_name 更新包 pip install --upgrade package_name 安装指定版本 pip install robotframework2.8.7 查看已安装的库 pip list 2、指定镜像源 手动指定 pip install -i http://pypi.douban.com/simple Flask -- trusted-host …

详解MySQL的MVCC机制与间隙锁

在MySQL的InnoDB存储引擎中&#xff0c;MVCC&#xff08;多版本并发控制&#xff09;和间隙锁&#xff08;Gap Lock&#xff09;是两种关键的并发控制机制。MVCC主要用于提高读写并发性能&#xff0c;而间隙锁则用于实现更严格的事务隔离&#xff0c;防止幻读现象。以下是对MyS…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.1 从零移植 Linux kernel,基于RISC-V

1. 概述 上一章节我们已经将u-boot部署好了,本章节,我们将从零移植Naruto-Pi的Linux kernel,移植通用RISCV很简单,在移植之前,大家也可以参考我之前写的文章,Linux ARM平台开发系列讲解(QEMU-体验篇) 1.1 编译QEMU 构建RISC-V64架构 运行Linux kernel 2. Linux kernel…

python小tips

函数&#xff1a; 格式&#xff1a; def 函数的名字():函数体例如&#xff1a;def playgame():print("I am playing!")函数调用&#xff1a; playgame()调用的方法&#xff1a; 函数名() 函数的定义只是定义函数&#xff0c;调用了才会有结果 函数的参…

Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a;Tomcat整体架构 Tomcat源码解析(二)&#xff1a;Bootstrap和Catalina Tomcat源码解析(三)&#xff1a;LifeCycle生命周期管理 Tomcat源码解析(四)&#xff1a;StandardServer和StandardService Tomcat源码解析(五)&…

吴恩达神经网络学习笔记1

代码解释 并不是全部代码&#xff0c;思路的流程 import numpy as np# 如何判断咖啡豆是烤好了 # 假设此神经网络由2层构成###### 这部分代码只是如何建立2层网络&#xff0c; ###### 并不包含如何加载神经网络中的参数 w 和 b######################## 第1层网络# x 是…

浅谈什么是Google GKE?Auto Pilot模式是什么?

一、什么是GKE&#xff1f; 1、他是Google托管的Kubetnetes集群的名称。 2、底层实际还是一堆虚拟机&#xff0c;但这些虚拟机的生命周期不用你负责管理了&#xff0c;只需要管理Gke集群来运行你的工作负载。 1、你需要为这个集群配置Kubetnetes版本、网络、存储、节点等等。 2…

Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类

若依框架&#xff08;RuoYi&#xff09;中的Translation翻译类主要作用在于实现字段值的转换或翻译功能&#xff0c;以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点&#xff1a; 字段值转换&#xff1a;若依框架在处理数据时&#xff0c;有时需要将某些字段的…

CrawlSpace爬虫部署框架介绍

CrawlSpace爬虫部署框架介绍 全新的爬虫部署框架&#xff0c;为了适应工作的爬虫部署的使用&#xff0c;需要自己开发一个在线编写爬虫及部署爬虫的框架&#xff0c;框架采用的是Django2.2bootstap依赖scrapyd开发的全新通用爬虫在线编辑部署及scrapy项目的部署框架。项目实现的…

读AI未来进行式笔记08自主57

1. 自主57 1.1. 自主57被视为继火药、核57之后的“第三次zhan筝革命” 1.2. 虽然地雷和导弹揭开了早期简单自主57的序幕&#xff0c;但运用了AI技术的真正的自主57才是正片 1.2.1. AI自主57让整个sha戮过程&#xff1a;搜寻目标、进入zhan斗、抹sha生命&#xff0c;完全无须…