前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >position有几种,absolute和relative的区别

position有几种,absolute和relative的区别

作者头像
pitaojin
发布2018-05-25 16:55:31
2.1K0
发布2018-05-25 16:55:31
举报
文章被收录于专栏:前端萌媛的成长之路

标签(空格分隔): 博文


position有几种,absolute和relative的区别

1.static(默认属性),当没有给元素设置position时默认为static 2.absolute(绝对定位),相对于父级第一个设置了position属性进行定位(没有则相对于body,static除外),top,left,bottom,right均是相对于这个父元素的偏移量 3.relative(相对定位),在元素原来的位置上进行定位,top,left,bottom,right的值相当于原来位置的偏移量 4.fixed(固定定位),相对于浏览器视口的定位,不会随着滚动条的滚动而滚动,top,left,bottom,right的值相当于浏览器窗口的定位

区别

1.absolute和relative都会使元素脱离文档流,但不同的是,absolute脱离文档流后不会占用原来的位置,而relative会在原来的位置上留下一个副本占用原来文档流的位置 2.absolute的父元素设有position时,top,left,bottom,right会忽略父级元素的padding值,即始终与父级元素的左上角进行定位,且其层级会始终比父级高,无论父级设置多大的z-index,但relative的定位会受父元素padding值影响 3.absolute是以第一个设置了position的父元素或祖先元素进行定位,而relative定位的层总是相对于其最近的父元素,无论其父元素是何种定位方式

其他

1.块状化 使用定位的元素的display计算值就是block或table 2.破坏性 脱离原始文档流 3.包裹性 absolute天然具有包裹性,即不用同时设置以下代码

代码语言:javascript
复制
div{
    display: inline-block; //没必要
    position: absolute;
}

4.当同时使用absolute和float时,会忽略float的值 举个例子

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
	<title>test</title>
	<style type="text/css">
		div{
			width: 300px;
			height: 300px;
		}
		.outer{
			position: absolute;
			background-color: #F5C4C4;
			z-index: 9999;
			margin: 50px;
			float: left;  /*被忽略*/
		}
		.inner{
			position: absolute;
			background-color: #8E1818;
			left: 50px;
			top: 50px;
		}
	</style>
</head>
<body>
	<div class="outer">
		<div class="inner"></div>
	</div>
</body>
</html>

效果如图

参考链接 CSS+DIV布局中absolute和relative区别

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • position有几种,absolute和relative的区别
    • 区别
      • 其他
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档