前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >css中绝对定位_绝对定位和相对定位怎么用

css中绝对定位_绝对定位和相对定位怎么用

作者头像
全栈程序员站长
发布于 2022-11-17 03:22:43
发布于 2022-11-17 03:22:43
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

文章目录

相对定位 position: relative;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<style type="text/css">
		.box1{
			width: 200px;
			height: 200px;
			background-color: red;
			/*如果对当前元素仅仅设置相对定位,那么与标准流下的盒子没有什么区别*/
			position: relative;
			/*设置相对定位 我们就可以使用四个方向的属性  top left right bottom

			相对定位:相对于自己原来的本身定位 top:20px; 那么盒子相对于原来的位置向下移动。相对定位仅仅的微调我们元素的位置
			*/
			top: 20px;
			left: 30px;
		}
	</style>
</head>
<body>
	 <div class="box1"></div>
</body>

特性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		div{
			width:200px;
			height: 200px;
		}
		
		.box1{
			background-color: red;
		}
		.box2{
			background-color: green;
			position: relative;
			top: 50px;
			left: 100px;
		}
		.box3{
			background-color: blue;
		}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
蓝色盒子并没有挤上去,绿色盒子移动之后没有脱离标准流,留下了空白,还有原位置的空白,产生了压盖效果,但是不要这么用。

用途

  • 1.微调元素位置
  • 2.做绝对定位的参考(父相子绝)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
		*{
			padding: 0;
			margin: 0;
		}
		div{
			margin: 100px;
		}
		.user{
			font-size: 25px;
		}
		.btn{
			position: relative;
			top: 3px;
			left: 5px;
		}

	</style>
</head>
<body>
	<!-- 微调我们元素位置-->

	<div>

		<input type="text" name="username" class="user">
		<input type="button" name="" value="点我" class="btn">
	</div>

绝对定位 position: absolute;

  • 1.脱标,做遮盖效果,提升层级
  • 2.设置绝对定位之后,不区分行内元素和块级元素,都能设置宽高。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*{
			padding: 0;
			margin: 0;
		}
		div{
			width: 200px;
			height: 200px;

		}
		.box1{
			background-color: red;

			position: absolute;
		}
		.box2{
			width: 250px ;
			background-color: green;

		}
		.box3{
			background-color: blue;
		}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span{
			width: 100px;
			height: 100px;
			background-color: pink;
			
			position: absolute;
		}

效果与diapaly,浮动比较:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span{
			width: 100px;
			height: 100px;
			background-color: pink;
			
		}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span{
			width: 100px;
			height: 100px;
			background-color: pink;
			display: block;
		}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span{
			width: 100px;
			height: 100px;
			background-color: pink;
			float: left;
		}

绝对定位参考点

单独盒子绝对定位参考点:

  • 1.top属性描述, 是以页面的左上角,并不是body,而是页面html左上角为参考点来调整位置。滚动条滚动时,距离页面左上角位置不变。
  • 2.使用bottom属性描述,是以首屏页面左下角为参考点来调整位置。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box1"></div>
	<div class="box2"></div>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body{
			width: 100%;
			height: 2000px;
			border: 10px solid green;
		}

		.box1{
			width: 200px;
			height: 200px;
			background-color: red;
			position: absolute;
			top: 100px;
		}
		
		以绿色盒子作为参考说明不是以body为参考点,而是页面
		.box2{
			width: 200px;
			height: 200px;
			background-color:green;
			margin-left: 100px;
			margin-top: 100px;
		}

top属性描述,滚动条滚动,与页面位置不变,跟浏览器位置没关系:

bottom属性描述时,以首屏页面左下角为参考点 如果浏览器不动,滚动条动的时候,红色盒子跟随页面动,红绿盒子间距不变。

页面顶端与浏览器顶端重合时,移动浏览器底部,红色盒子距离浏览器底部距离不变。

父辈元素设置了相对定位,则子元素绝对定位以父辈元素为参考点。

  • 父相子绝,父绝子绝,父固子绝,都是以父辈元素为参考点。父绝子绝,因为绝对定位脱离标准流,影响页面的布局。父相子绝是常用的布局方案。(如果父辈有边框,则以内沿边界为起点)
  • 绝对定位的盒子无视父辈的padding。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title></title>
	<style type="text/css">
		*{
			padding: 0;
			margin: 0;
		}
		.box{
			width: 300px;
			height: 300px;
			border: 5px solid red;
			margin: 100px;
			/*父盒子设置相对定位*/
			position: relative;
			padding: 50px;
		}
		.box2{
			width: 300px;
			height: 300px;
			background-color: green;
			position: relative;
			
		}

		.box p{
			width: 100px;
			height: 100px;
			background-color: pink;
			/*子元素设置了绝对定位*/
			position: absolute;
			top: 0;
			left: 0;
		}

		

	</style>
</head>
<body>
	<div class="box">

		<div class="box2">
			<p></p>
		</div>
	</div>
	
</body>
</html>

上一层没有再往上找:

绝对定位水平居中

  • 设置绝对定位之后,margin:0 auto;不起任何作用
  • 设置子元素绝对定位,然后left:50%; margin-left等于元素宽度的一半
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<style type="text/css">
		*{
			padding: 0;
			margin: 0;
		}
		.box{
			width: 100%;
			height: 69px;
			background: #000;
		}
		.box .c{
			width: 960px;
			height: 69px;
			background-color: pink;
			/*margin: 0 auto;*/
			position: absolute;
		
			left: 50%;
			margin-left: -480px;

			}


	</style>
</head>
<body>
	<div class="box">
		<div class="c"></div>
	</div>

</body>
</html>

固定定位

  • 1.脱标
  • 2.提升层级
  • 3.固定不变
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		*{
			padding: 0;
			margin: 0;
		}
		p{
			width: 100px;
			height: 100px;
			background-color: red;
			/*固定定位:固定当前的元素不会随着页面滚动而滚动,
			特性:1.脱标 2.提升层级 3.固定不变 不会随页面滚动而滚动

			参考点:设置固定定位,用top描述。那么是以浏览器的左上角为参考点
			如果用bottom描述,那么是以浏览器的左下角为参考点

			作用: 1.返回顶部栏 2.固定导航栏 3.小广告

			*/
			position: fixed;
			top: 30px;
			left: 40px;
		}
	</style>
</head>
<body>

	<div>
		<p></p>
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<div></div>
		<img src="1_light__1024.ico" alt="">
		<div></div>
		<img src="1_light__1024.ico" alt="">
		<div></div>
		<img src="1_light__1024.ico" alt="">
		<img src="1_light__1024.ico" alt="">
		<div></div>
		<img src="1_light__1024.ico" alt="">
		<div></div>
		<img src="1_light__1024.ico" alt="">

	</div>
</body>
</html>

之前:

之后脱标:

定在屏幕上:

参考点

用top描述,以浏览器的左上角为参考点 用bottom描述,以浏览器的左下角为参考点,无论滚动条动还是浏览器底部上下移动,固定定位盒子与底部距离始终不变。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<title>固定导航栏</title>
	<style type="text/css">
		*{
			padding: 0;
			margin: 0;
		}
		ul{
			list-style: none;
		}
		a{
			text-decoration: none;
		}
		body{
			/*给body设置导航栏的高度,来显示下方图片的整个内容*/
			padding-top: 49px;
		}
		.wrap{
			width: 100%;
			height: 49px;
			background-color: #000;
			
			/*设置固定定位之后,一定一定要加top属性和left属性,
			固定定位脱标,填充图片会被遮挡,设置body的padding之后导航栏会随之下移
			固定定位以浏览器为参考,设置top和left之后定在浏览器顶部
			*/
			position: fixed;
			top: 0;
			left: 0;

			
		}
		.wrap .nav{
			width: 960px;
			height: 49px;
			margin: 0 auto;

		}
		.wrap .nav ul li{
			float: left;
			width: 160px;
			height: 49px;
			
			text-align: center;
		}
		.wrap .nav ul li a{
			width: 160px;
			height: 49px;	
			display: block;
			color: #fff;
			/*大小行高一起写*/
			font: 20px/49px "Hanzipen SC";
			background-color: purple;
		}
		.wrap .nav ul li a:hover{
			background-color: red;
			font-size: 22px;
		}

		
	</style>
</head>
<body>
	<div class="wrap">
		<div class="nav">
			<ul>
				<li>
					<a href="#">网页开发</a>
				</li>
				<li>
					<a href="#">网页开发</a>
				</li>
				<li>
					<a href="#">网页开发</a>
				</li>
				<li>
					<a href="#">网页开发</a>
				</li>
				<li>
					<a href="#">网页开发</a>
				</li>
				<li>
					<a href="#">网页开发</a>
				</li>
			</ul>
		</div>
	</div>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/216369.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
《JavaSE》---9.<基础语法(java数组的3种初始化&常规使用)>
1.数组是一段连续的内存空间,所以支持随机访问,通过下标访问快速访问数组中任意位置的元素
用户11288958
2024/09/24
1630
《JavaSE》---9.<基础语法(java数组的3种初始化&常规使用)>
【 JavaSE 】 深入数组
目录 前言 一维数组 创建一维数组 一维数组的使用 数组作参数 认识 JVM 内存区域划分 数组做参数基本用法 理解引用类型 认识 null 数组作为方法的返回值 二维数组 二维数组的长度 二维数组的遍历 数组练习 ---- 前言 ---- 本章主要讲解: 一维数组的定义和使用 数组在内存的基本存储知识 二维数组的定义和使用 数组练习 一维数组 ---- 什么是数组: 数组本质上就是让我们能 "批量" 创建相同类型的变量(相同的类型) 注:特别是表示大量的数据,用数组非常便捷 创建一维数组 基本
用户9645905
2022/11/30
4090
【 JavaSE 】 深入数组
知识改变命运 第七集(下):Java中数组的定义与使用
使用这个方法后续打印数组就更方便一些. Java 中提供了 java.util.Arrays 包, 其中包含了一些操作数组的常用方法
用户11319080
2024/10/17
900
知识改变命运 第七集(下):Java中数组的定义与使用
《JavaSE-第六章》之容器数组
本章大家介绍一个存储相同数据类型的容器----数组,以及便于我们对数组操作的工具类Arrays类的使用。
用户10517932
2023/10/07
2180
《JavaSE-第六章》之容器数组
java中数组的定义与使用
Java中的数组跟c语言的数组几乎不一样,我们要区分对待。在之后你就能理解到我为什么说这句话了。
E绵绵
2024/04/08
2160
java中数组的定义与使用
【Java SE】详解数组
前言:在C语言中我们已经学习过数组,接下来,我们再主要学习一下Java中的数组,在Java中,数组变得更加高效和使用。
用户11369558
2024/11/20
1040
【Java SE】详解数组
【Java】——数组深度解析(从内存原理到高效应用实践)
数组是一种复合数据类型,它可以看作是一个容器,用于存储多个相同类型的变量。这些变量在内存中按顺序排列,每个变量都有一个唯一的索引,通过索引可以快速访问数组中的元素。在Java中,数组是对象,无论它存储的是基本数据类型还是引用数据类型。
User_芊芊君子
2025/04/08
800
【Java】——数组深度解析(从内存原理到高效应用实践)
【JAVASE】数组技巧与实践:提升你的编程能力
for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错
小舒不服输
2024/01/30
1250
【JAVASE】数组技巧与实践:提升你的编程能力
java中数组遍历的三种方式
通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
全栈程序员站长
2022/09/05
1.4K0
Java基础(六):数组
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法
冬天vs不冷
2025/01/21
520
Java基础(六):数组
【JavaSE】Java入门三(数组详解三千字)
静态初始化:在创建数组时不直接指定数据元素的个数,而直接用具体的数据内容进行指定。
小皮侠
2024/04/08
820
【JavaSE】Java入门三(数组详解三千字)
【Java宝典】——探索数组的奥秘之旅
所有被native修饰的是由C/C++进行实现的,所有我们不能看到这个方法的源码,但是它的优点是运行速度比较快
ImAileen
2024/09/20
640
【Java宝典】——探索数组的奥秘之旅
Java基础-数组
前两篇介绍了Java的数据类型和流程控制,现在来讲一下Java的数组,作为一种引用类型,也是非常常见和常用的。这次的知识框架如下所示。
reload
2024/01/16
2620
Java基础-数组
【Java宝典】——二维数组的寻宝之旅
由上面的输出结果我们可以得出:其实二维数组的本质就是一个大的一维数组array,里面包含着两个小的一维数组。由此我们可以将上面的循环打印二维数组的语句修改为如下样式:
ImAileen
2024/09/20
680
【Java宝典】——二维数组的寻宝之旅
【JAVA基础&高级】 数组篇
在实际开发当中我们更多的会使用集合来代替数组,但是集合的底层也是基于数组来实现的,所以花了一些时间对数组的知识点进行了复习巩固,并在此对一些知识点进行记录。
LCyee
2020/08/10
3480
【JAVA基础&高级】 数组篇
【06】JAVASE-数组讲解【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
1590
【06】JAVASE-数组讲解【从零开始学JAVA】
【趣学程序】Java中的数组
数组简介: 数组(Array)是Java 语言中内置的一种基本数据存储结构,通俗的理解,就是一组数的集合,目的是用来一次存储多个数据。数组是程序中实现很多算法的基础,可以在一定程度上简化代码的书写。 注意 数组的好处:数组里的每个元素都有编号,编号从0开始,并且依次递增,方便操作这些元素; 使用Java数组:必须先声明数组,再给该数组分配内存; 数组对应在内存中一段连续空间。 数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型。 一维数组 一维数组:可以理解为一列多
趣学程序-shaofeer
2019/07/27
5760
5. 数组
(2)数组的元素类型:即创建的数组容器可以存储什么数据类型的数据​。元素的类型可以是任意的Java的数据类型。例如:int、String、Student等。
捞月亮的小北
2023/12/01
2080
5. 数组
新手小白学JAVA 数组 数组工具类 二维数组
数组Array,标志是[ ] ,用于储存多个相同类型数据的集合 想要获取数组中的元素值,可以通过脚标(下标)来获取 数组下标是从0开始的,下标的最大值是数组的长度减1
全栈程序员站长
2022/08/14
5130
新手小白学JAVA 数组 数组工具类 二维数组
java基础:数组篇
数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
不期而遇丨
2022/09/09
2.6K0
相关推荐
《JavaSE》---9.<基础语法(java数组的3种初始化&常规使用)>
更多 >
LV.2
中金支付高级研发工程师
目录
  • 文章目录
  • 相对定位 position: relative;
    • 特性
    • 用途
  • 绝对定位 position: absolute;
    • 绝对定位参考点
      • 单独盒子绝对定位参考点:
      • 父辈元素设置了相对定位,则子元素绝对定位以父辈元素为参考点。
    • 绝对定位水平居中
  • 固定定位
    • 参考点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档