CSS Position定位(详解网页中的定位属性)

news/2024/5/15 13:52:17

目录

一、Position介绍

1.概念

2.特点

3.作用

4.应用

 二、Position用法

1.position属性

 2.static定位

3.fixed定位

4.relative定位

5.absolute定位

6.sticky定位

7.重叠的元素

三、CSS定位属性

四、总结


一、Position介绍

1.概念

  • 文档流(Document Flow):HTML元素默认按照文档流从上到下依次排列,形成页面布局。
  • 定位:定位是指通过CSS将元素摆放到指定位置的技术,不受文档流的限制。

2.特点

  • 相对位置(Relative Positioning):相对于元素原本在文档流中的位置进行定位,偏移量会影响周围元素的位置。
  • 绝对位置(Absolute Positioning):相对于最近的已定位的祖先元素进行定位,如果不存在已定位的祖先元素,则相对于初始包含块进行定位。
  • 固定位置(Fixed Positioning):相对于视口(viewport)进行定位,元素会随着页面滚动而保持固定位置。
  • 粘性位置(Sticky Positioning):元素在滚动到达特定位置时变为固定定位,直到滚动超过了指定的偏移量,此时恢复为相对定位。

3.作用

  • 精确布局:定位允许开发者将元素放置在精确的位置上,而不受文档流的约束。
  • 图层叠加:通过定位,可以控制元素的层叠顺序,实现图层叠加效果。
  • 响应式设计:定位可以帮助开发者实现响应式设计,使元素在不同设备上的位置保持一致或变化。

4.应用

  • 导航菜单:通过绝对定位可以实现悬浮式的导航菜单。
  • 弹出框:使用绝对或固定定位可以实现弹出式的提示框或对话框。
  • 轮播图:通过相对定位和层叠顺序,可以实现轮播图中图片的切换效果。
  • 响应式布局:使用粘性定位可以在页面滚动时使元素保持在页面的特定位置,提供更好的用户体验。

 二、Position用法

1.position属性

  • static
  • relative
  • fixed
  • absolute
  • sticky

 2.static定位

HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

静态定位的元素不会受到 top, bottom, left, right影响。

div.static {position: static;border: 3px solid #73AD21;
}

效果如下:

3.fixed定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动:

p.pos_fixed
{position:fixed;top:30px;right:5px;
}

效果如下:

4.relative定位

相对定位元素的定位是相对其正常位置。

h2.pos_left
{position:relative;left:-20px;
}
h2.pos_right
{position:relative;left:20px;
}

5.absolute定位

absolute 定位使元素的位置与文档流无关,因此不占据空间。

absolute 定位的元素和其他元素重叠。

h2
{position:absolute;left:100px;top:150px;
}

6.sticky定位

sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。

position: sticky; 基于用户的滚动位置来定位。

粘性定位的元素是依赖于用户的滚动,在 position:relativeposition:fixed 定位之间切换。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

div.sticky {position: -webkit-sticky; /* Safari */position: sticky;top: 0;background-color: green;border: 2px solid #4CAF50;
}

7.重叠的元素

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

一个元素可以有正数或负数的堆叠顺序:

三、CSS定位属性

属性说明CSS
bottom定义了定位元素下外边距边界与其包含块下边界之间的偏移。auto
length
%

inherit
2
clip剪辑一个绝对定位的元素shape
auto
inherit
2
cursor显示光标移动到指定的类型url
auto
crosshair
default
pointer
move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
wait
help
2
left定义了定位元素左外边距边界与其包含块左边界之间的偏移。auto
length
%

inherit
2
overflow设置当元素的内容溢出其区域时发生的事情。auto
hidden
scroll
visible
inherit
2
overflow-y指定如何处理顶部/底部边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content
2
overflow-x指定如何处理右边/左边边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content
2
position指定元素的定位类型absolute
fixed
relative
static
inherit
2
right定义了定位元素右外边距边界与其包含块右边界之间的偏移。auto
length
%

inherit
2
top定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。auto
length
%

inherit
2
z-index设置元素的堆叠顺序number
auto
inherit
2

四、总结

  1. 定位属性(position)

    • 用于指定元素的定位方式,可选值包括相对定位(relative)、绝对定位(absolute)、固定定位(fixed)和粘性定位(sticky)。
  2. 相对定位(Relative Positioning)

    • 元素相对于其正常位置进行定位,通过设置top、right、bottom和left属性进行偏移。
  3. 绝对定位(Absolute Positioning)

    • 元素相对于其最近的已定位祖先元素(或初始包含块)进行定位,不再占据文档流,可以通过设置top、right、bottom和left属性进行定位。
  4. 固定定位(Fixed Positioning)

    • 元素相对于视口进行定位,始终保持在页面的固定位置,不会随页面滚动而移动。
  5. 粘性定位(Sticky Positioning)

    • 元素在滚动到达特定位置时变为固定定位,直到滚动超过了指定的偏移量,此时恢复为相对定位。
  6. 层叠顺序(z-index)

    • 控制定位元素的层叠顺序,具有更高z-index值的元素将覆盖具有较低值的元素。
  7. 定位参照物

    • 绝对定位的元素的位置相对于其最近的已定位的祖先元素,如果不存在已定位的祖先元素,则相对于初始包含块进行定位。
  8. 定位的应用

    • 用于实现精确布局、图层叠加、响应式设计等,在导航菜单、弹出框、轮播图等场景中广泛使用。

http://www.mrgr.cn/p/71132306

相关文章

SpringMVC基础篇(一)

文章目录 1.基本介绍1.特点2.SpringMVC跟SpringBoot的关系 2.快速入门1.需求分析2.图解3.环境搭建1.创建普通java工程2.添加web框架支持3.配置lib文件夹1.导入jar包2.Add as Library3.以后自动添加 4.配置tomcat1.配置上下文路径2.配置热加载 5.src下创建Spring配置文件applica…

ZCMU-1111

与背包和动态规划有关(我认为)采用dp数组存放吃掉i千克食物要用掉的钱 dp最开始要尽量的大方便过程中判断和最后的输出判断 实时更新dp,保留最小的钱以前不知道的printf函数可以这样用 fill函数填充数组,(开始,结束,填充值); C和C++结构体里面可以放函数 学习#include<…

JDK源码分析-TreeSet

概述 TreeSet是Java集合框架中用于存储唯一元素的树形数据结构,它实现了NavigableSet接口,这意味着TreeSet中的元素不仅是有序的,还支持一系列的导航方法。 TreeSet的内部实现主要依赖于TreeMap,通过TreeMap的键来维护元素的排序。 类图从以上类图可以看到,TreeSet 实现了…

使用逆滤波算法deconvwnr恢复图像回复图像时,产生了很多横竖条纹。解决办法

使用逆滤波算法deconvwnr恢复图像时&#xff0c;产生了很多横竖条纹。解决办法 原来的代码 % 清除工作空间并关闭所有图形窗口 clear; clc; close all;% 读取原始图像 original_image imread(pic3.jpg);% 显示原始图像 subplot(131); imshow(original_image); title(Origina…

C语言关于多源文件的调用

图片A.c // // Created by clou on 2024/4/29. // #include <stdio.h> #include "A.h"void func() {printf("hello world\n"); }A.h // // Created by clou on 2024/4/29. //#ifndef MULTIPLE_SOURCE_FILES_A_H #define MULTIPLE_SOURCE_FILES_A_Hex…

bugku_ez_java_serializd

下载附件看到依赖CC3.1,没有waf,直接CC5打了。package com.eddiemurphy;import org.apache.commons.collections.Transformer; import org.apache.commons.collections.functors.ChainedTransformer; import org.apache.commons.collections.functors.ConstantTransformer; i…

CogAgent:开创性的VLM在GUI理解和自动化任务中的突破

尽管LLMs如ChatGPT在撰写电子邮件等任务上能够提供帮助&#xff0c;它们在理解和与GUIs交互方面存在挑战&#xff0c;这限制了它们在提高自动化水平方面的潜力。数字世界中的自主代理是许多现代人梦寐以求的理想助手。这些代理能够根据用户输入的任务描述自动完成如在线预订票务…

有趣的大模型之我见 | Llama AI Model

Llama 开源吗? 我在写《有趣的大模型之我见 | Mistral 7B 和 Mixtral 8x7B》时曾犹豫,在开源这个事儿上,到底哪个大模型算鼻祖?2023 年 7 月 18 日,Meta 推出了最受欢迎的大型语言模型(LLM)的第二个版本-Llama 2,并主张可免费用于研究和商业用途。Llama 2 模型附带许可…

C语言关于头文件的使用

截图:main.c // // Created by clou on 2024/4/29. //#include <stdio.h> #include "main.h" //包含自己实现的头文件//定义全局变量 int cnt; int sum;//定义函数 int func(int x, char y) {return 0; }//定义函数 int func2(int x, int y) {return x + y; }…

Mysql锁机制与优化实践以及MVCC底层原理剖析

学习来源-图灵课堂 https://vip.tulingxueyuan.cn 锁学习参考: https://juejin.cn/post/7307889500545253395 锁机制 为了保证数据的一致性,当访问共享变量的时候我们可以针对共享数据加锁,但是加锁要时要注意加锁的成本,还有加锁的粒度,还有就是是否会发生死锁,还有就是…

[2022DASCTF Apr X FATE 防疫挑战赛] warmup-java

没错,还是java。 我就跟java杠上了。 分析 先看依赖:没有啥特别的。 审一下源码: IndexController.java:warmup路由下传参data,下面把十六进制转为字节直接反序列化了。 看下动态代理MyInvocationHandler.java:看一下Utils的hexStringToBytes方法: 下面分析来自Java专题…

设计模式01 -----单例模式

单例模式是一种常见的设计模式,用于确保类只有一个实例,并提供一个全局访问点。这种模式通常用于管理共享资源,例如数据库连接、日志文件等。单例模式的主要特点包括: 单一实例: 该模式确保类只有一个实例存在,无论何时何地都可以访问到这个实例。 全局访问点: 单例模式提…

linux网络DNS域名解析服务

DNS概述 1.DNS系统 DNS(Domain Name System),使用应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 简单来说就是:把域名转换成网络可以识别的IP地址,在通过IP地址访问主机。这种由文字组成的名称,显而易…

智慧之眼:碎石厂工业园区可视化引领未来

碎石厂工业园区可视化,就是将园区的各项数据、运行状态以及管理信息通过图形化、数字化的方式呈现出来。这种创新的技术手段,不仅让园区的日常运营更加高效,也极大地提升了管理决策的准确性和时效性。在时代的浪潮中,工业发展日新月异,碎石厂工业园区作为建材行业的重要一…

【函数式接口使用✈️✈️】配合策略模式实现文件处理的案例

目录 &#x1f378;前言 &#x1f37b;一、功能描述 &#x1f37a;二、面向对象设计模式 &#x1f379;三、策略模式 &#x1f366;四、策略 VS 面向对象 &#x1f368;章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上周初步了解了下函数式接口&#xff0c;Consume…

生态环境监测系统:守护绿色地球,共筑美好家园

生态环境是人类赖以生存的基础,随着工业化和城市化的快速发展,生态环境问题日益凸显,如何有效监测和保护生态环境成为全球关注的焦点。生态环境监测系统的建立,旨在通过高科技手段,全面掌握生态环境质量,评估生态保护成效,为制定科学的环境保护政策提供依据。 项目背景 …

IDEA更换新版本启动没反应

目前安装了新的IDEA(压缩包方式)&#xff0c;由于老版本的IDEA还在用&#xff0c;所以并没有删除&#xff0c;但是安装完后发现点击idea64.exe后没有反应&#xff0c;于是网上找了好多方法最后解决了 下面是我的解决过程 新版本&#xff1a;IntelliJIdea2024.1 老版本: Intelli…

Markdown文件上传到博客图片处理

Markdown文件上传到博客图片处理 使用Dotnet-cnblog工具可以配合typora实现自动上传md文件里图片到博客园的图床,这样就不用自己一张张来上传 Dotnet-cnblog安装使用 1.配置NET环境 net环境下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/5.0 下载后安装NET环…

忘记不再是问题:MySQL关键知识点速查

文章目录 MySQL备忘录内容连接MYSQL创建和展示数据库创建表修改表查询聚合与分组插入数据更新数据删除数据类型强制转换 更多内容 MySQL备忘录 做项目时&#xff0c;可能需要快速获取MySQL的使用方法&#xff0c;比如语法规则和函数用法。这正是备忘单的用途。 这里总结了一份…