整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS定位 实操代码掌握固定定位、绝对定位与相对定位子绝父相

定定位

position:fixed;

用我自己的话来说,就是让你想要固定的东西固定。例如:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			
			body{
				height: 2000px;
				
			}
			
			.photo{
				width: 600px;
				height: 600px;
				position: fixed;
				left: calc(50%-300px);
				top: calc(50%-300px);
				
			}
		</style>
		
	</head>
	<body>
		10月7日,昆凌在社交平台晒出自己荡秋千的美照。
		照片中,昆凌长发披肩,头戴假日风草帽,
		穿一袭白裙在海边荡着秋千,回眸甜笑,宛若仙子。
		<div id="box1">
			<img src="img/kunling.jpg" class="photo">
		</div>
		
	</body>
</html>



对了,在这里说一下,我目前是在职web前端开发,如果你现在正在学习前端,了解前端,渴望成为一名合格的web前端开发工程师,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,都可以随时关注并私信我:前端,我都会根据大家的问题给出针对性的建议,缺乏基础入门的视频教程也可以直接来找我,我这边有最新的web前端基础精讲视频教程, 还有我做web前端技术这段时间整理的一些学习手册,面试题,开发工具,PDF文档书籍教程,都可以直接分享给大家。


当我下拉时,图片的位置是不会动的。即使下滑到了最底部,图片的位置也是固定的。对比下面这张图:


绝对定位和相对定位

子绝父相

子绝父相就是指子元素设置绝对定位,而父元素设置相对定位。换句话说:如果要对一个子元素使用定位的话,让子元素(绝对定位)以其父元素(相对定位)为标准来定位。

实操代码理解

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#father{
				width: 300px;
				height: 300px;
				background-color: coral;
				position: relative;
				border: solid 3px red;
			}
			
			#son1{
				width: 100px;
				height: 100px;
				background-color: aqua;
				position: absolute;
				left: 20px;
				top: 50px;
			}
			
			#son2{
				width: 100px;
				height: 100px;
				background-color: chartreuse;
				position: absolute;
				left: 40px;
				top: 90px;
			}
		</style>
	</head>
	<body>
		
		<div id="father">
			I am father
		</div>
		
		<div id="son1">
			I am son1
		</div>
		
		<div id="son2">
			I am son2
		</div>
		
	</body>
</html>

看图:在father这个容器设置了相对定位之后,son1和son2都设置了绝对定位,我们的子类这时其实不是在body中绝对定位(absolute),而是在其父类的范围中绝对定位(absolute)。


绝对定位

position: absolute;

查找定位的参照物方法:
从当前元素开始往上找,直到找到一个具有定位属性的元素为准,以这个元素为参照进行定位。
如果没有一个元素有定位属性,最终就参照body进行定位。(我一直理解的就是绝对定位就是你想定哪里定哪里)

定位的时候:结合top left right bottom 这四个方向属性进行配合定位。但是要注意:不能同时选择left喝right

注意:这里要区别于相对定位,在使用相对定位时,无论是否进行移动,原来的位置就没有了。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#box1{
				background-color: salmon;
				width: 100px;
				height: 100px;
				position: absolute;
				left: 100px;
				top: 50px;
			}
		</style>
	</head>
	<body>
		<div id="box1">
			我是box1,我采用了绝对定位
		</div>
		
	</body>
</html>

相对定位

position: relative;

相对定位是相对于元素在文档中的初始位置——首先它出现在它所在的位置上(即不设置position时的位置,然后通过设置垂直或水平位置,让这个元素“相对于”它的原始起点进行移动;

注意,在使用相对定位时,无论是否进行移动,原来的位置始终保留着。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#box1{
				width: 100px;
				height: 100px;
				background-color: brown;
				position: relative;
				left: 300px;
				top: 300px;
			}
			
			#box2{
				width: 100px;
				height: 100px;
				background-color: blue;
			}
		</style>
	</head>
	<body>
		
		<div id="box1">
			
		</div>
		
		<div id="box2">
			
		</div>
		
	</body>
</html>

绝对定位和相对定位的区别

  1. 相对定位的参照物是参照物本身。
    绝对定位的参照物就是父级元素,当父级元素中不存在相对定位,那么它的参照物就是body
  2. 相对定位,设置后,原来的位置始终保留着
    绝对定位,设置后,原来的位置会被后面的内容占据

原文链接:https://link.zhihu.com/?target=https%3A//blog.csdn.net/hanhanwanghaha/article/details/108961741

作者:我一个超级无敌可爱的人鸭

出处:CSDN

次我们来说一下,HTML网页中的定位,有很多小伙伴一定好奇,为什么我们写的代码都是按顺序罗列的而在网页的展示效果中,我们的各种样式,标签,图片等东西都是出现在网页的各个位置,网页看起来很美观,各种盒模型摆放合理,这是因为在HTML中有定位的能力,今天我们就来学习一下。

position在英语中是位置的意思,而在我们CSS代码中position也是跟位置有关的,position有三个属性值分别为relative(相对定位:相对于自己原来的位置进行定位,但保留自己原来的位置,别的元素无法占用),absolute(绝对定位:相对于有定位的父级进行定位,如果没有则相对于文档进行定位,定位会脱离文档,不保留原来的位置,会和原来的文档不在一个层),fixed(位置定位:他的位置不会随着滑轮的滚动而改变较常见于弹窗广告,他也会脱离文档流)。

我们说完了position,接下来我们就说说他是怎么进行定位的,我们有left,top,right,bottom,五个属性分别对应 距左边,距上边,距右边,距下边,大家注意到我在每个方向前都加了个字,我们所做的定位是距各个方向的距离而不是移动,例:left:200px,是向右移动200像素,他的意思是距离左边增加200像素。在我们实际的编程中一般都不常用bottom,我们知道,滑轮是可以一直往下滑的,所以我们相对于底部定位的话就很困难。

我们来通过代码和结果来看一下:


没有定位的样式


加了relative


加了relative的结果

上面这个结果图看着比例不太对是因为作者截图没截好[捂脸]

我们可以看出猫图片并没有移动,而是给兔子图片留着位置。


加了absolute


加了absolute的结果

这个结果我们可以看出猫图片向前移动了,并没有保留兔子图片原来的位置


加了fixed

代码中的<br>是为了使滑轮可以滑动,以便更好的展示效果。

<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

用了fixed的效果展示。

以上的代码样式只对兔子图片起作用,我没有给猫添加任何样式,猫图片只是作为参照物。

计算机科学中,路径是指向文件系统中某个位置的字符串。路径可以是绝对的也可以是相对的。这篇文章将详细解释绝对路径和相对路径的区别,并通过例子来展示它们的使用。

绝对路径(Absolute Paths)

绝对路径是从文件系统的根目录(在Windows系统中是驱动器的根,如C:\,在UNIX系统中是/)开始的完整路径。它包含了从根目录到目标文件或文件夹的所有目录名,并以文件或文件夹名结束。

特点

  • 不依赖于当前工作目录。
  • 通常较长,因为它们包含了完整的路径信息。
  • 在任何时候都指向同一个文件或文件夹,不会因为当前位置的变化而改变。

使用实例

假设我们有一个位于Windows系统D盘的图片文件,其路径可能是:

D:\Photos\Holiday\beach.jpg

在UNIX系统中,如果有一个配置文件位于根目录下的etc文件夹中,其路径可能是:

/etc/nginx/nginx.conf

无论当前位置在哪里,上述路径都准确指向了特定的文件。

相对路径(Relative Paths)

相对路径是相对于当前工作目录的路径。它不是从根目录开始,而是从当前目录开始描述如何到达目标文件或文件夹。

特点

  • 依赖于当前工作目录。
  • 通常较短,因为它们仅包含从当前目录到目标位置的路径信息。
  • 可能会因为当前位置的变化而代表不同的文件或文件夹。

使用实例

假设当前工作目录是D:\Photos,要引用Holiday文件夹中的beach.jpg图片,相对路径将是:

Holiday\beach.jpg

如果需要引用同一级别目录下的另一个文件夹中的文件,例如当前工作目录是D:\Photos\Holiday,要引用Work文件夹中的report.docx文件,相对路径将使用..来表示上一级目录:

..\Work\report.docx

在UNIX系统中,如果当前工作目录是/etc/nginx,要引用同一级别的apache2目录下的apache2.conf文件,相对路径将是:

../apache2/apache2.conf

特殊符号

在相对路径中,有两个特殊符号经常使用:

  • .(点):表示当前目录。
  • ..(两个点):表示上一级目录。

使用这些符号,可以在文件系统中向上或向下导航。

在网页中使用绝对路径和相对路径

在创建网页时,链接到CSS文件、JavaScript文件、图片或其他网页通常需要使用路径。使用绝对路径或相对路径取决于资源的位置和你的特定需求。

HTML中的例子

假设网站的根目录结构如下:

/ (根目录)
|-- index.html
|-- about.html
|-- css
|   |-- styles.css
|-- images
|   |-- logo.png
|-- js
    |-- scripts.js

如果在index.html中引用styles.css,相对路径将是:

<link rel="stylesheet" type="text/css" href="css/styles.css">

如果在index.html中引用logo.png,相对路径将是:

<img src="images/logo.png" alt="Logo">

如果网站的URL是http://www.example.com,那么引用logo.png的绝对路径将是:

<img src="http://www.example.com/images/logo.png" alt="Logo">

结论

绝对路径和相对路径都是定位文件系统中文件和文件夹的有效方式。绝对路径提供了明确的位置,不依赖于当前工作目录,而相对路径则更加灵活,可以简化文件的链接,尤其是在网页设计和软件开发中。理解这两种路径的差异和应用场景,对于任何与文件系统交互的活动都是至关重要的。