CSS的四种定位方式有哪些,他们之间的区别是什么?定位实例详解

css定位有四种不同类型,position值分别为:static, relative,absolute,fixed

1. relative(相对定位):对定位的偏移参考元素是元素本身,不会使元素脱离文档流元素的初始位置占据的空间会被保留。相对定位元素常常作为绝对定位元素的父元素。并且定位元素经常与z-index属性进行层次分级

代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
<style type="text/css">
.rel{
	width: 200px;
	height:200px;
	background: red;
	position: relative;
	top:200px;
	left: 200px;
}
</style>
</head>
<body>
	<div class="rel">相对定位</div>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>

</body>
</html>

效果图: 

尽管rel元素产生了偏移,但是文字并没有填补它的原来的位置,可以看出相对定位元素没有脱离文档流,原来的位置依然会被保留。

2. absolute(绝对定位)绝对定位元素以父辈元素中最近的定位元素为参考坐标,如果绝对定位元素的父辈元素中没有采用定位的,那么此绝对定位元素的参考对象是html,元素会脱离文档流。就好像文档流中被删除了一样。并且定位元素经常与z-index属性进行层次分级

代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	
	.abs{
		width: 200px;
		height:200px;
		background: red;
		position: absolute;
		top: 200px;
		left: 200px;
	}

</style>
</head>
<body>
		<div class="abs">绝对定位</div>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
		阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>	
</body>
</html>

效果图: 

在此辟谣一下哈!如果绝对定位元素的父辈元素中没有采用定位的,那么此绝对定位元素的参考对象是谁呢,有的人说是body,有的人会说是document,其实都不是,看了MDN上的介绍,以initial containing block为参考,它的尺寸是和视口是一致的,但不是由Viewport所产生的,而是由根元素<html>所产生的。

代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
* {
  margin:0px;
  padding:0px;
}
body {
  height:1500px;
}
div {
  width:100px;
  height:100px;
  background:green;
  position:absolute;
  bottom:0px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>

实例效果图: 

如果参考对象是body或者document的话,div元素肯定要位于页面的最底部,注意到这里有滚动条,元素只是位于视口的最底部。

3. fixed  (固定定位)位移的参考坐标是可视窗口,使用fixed的元素脱离文档流。并且定位元素经常与z-index属性进行层次分级

实例代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
<style type="text/css">
.fix{
	width:200px;
	height: 200px;
	background: red;
	position: fixed;
	top: 200px;
	left: 200px;
}

</style>
</head>
<body>
	<div class="fix">固定定位</div>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>
阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br>


</body>
</html>

实例效果图:

 

fixed固定定位和absolute绝对定位比较类似,它们都能够让元素产生位移上面演示了固定定位;如果到目前为止还没有看到与绝对定位的区别,那么我们可以在文中多加些文字是浏览器产生滚动条,拖动滚动条就可以看到两个定位方式的区别,固定定位的元素如其名一样,能够固定在某个位置。而绝对定位就会随着滚动条滚动而移动位置。

4.static (静态定位)默认值,元素框正常生成的,top left bottom right这几个偏移属性不会影响其静态定位的正常显示

  • 28
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,下面是详细说明: 使用CSS3中的text-shadow属性可以在文本周围添加阴影效果,从而实现文字流光渐变特效。下面是一个使用CSS3制作文字流光渐变特效的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS3文字流光渐变特效</title> <style type="text/css"> /* 设置文本样式 */ #text { font-size: 60px; /* 文本大小 */ font-family: "微软雅黑"; /* 文本字体 */ color: #fff; /* 文本颜色 */ text-shadow: 0 0 20px #fff, 0 0 30px #fff, 0 0 40px #fff, 0 0 50px #0ff, 0 0 60px #0ff, 0 0 70px #0ff, 0 0 80px #0ff; /* 文本阴影效果,多次添加阴影实现流光渐变效果 */ } </style> </head> <body> <div id="text">CSS3文字流光渐变特效</div> </body> </html> ``` 解释一下这段代码的实现方法: 1. 首先设置文本的样式,包括文本大小、字体和颜色。 2. 利用text-shadow属性添加多个阴影效果,每个阴影的参数依次为水平偏移量、垂直偏移量、模糊半径和阴影颜色。其中,模糊半径越大阴影越模糊,阴影颜色越接近文本颜色越接近文本,从而实现流光渐变的效果。 3. 在文本的标签中添加id属性,用于在CSS中设置该元素的样式。 4. 在CSS中,选择id为text的元素,设置其样式,包括文本样式和阴影效果。 这样就可以实现文字流光渐变特效了。你可以根据自己的需要调整文本样式和阴影效果,实现更加个性化的效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值