登录  /  注册

理解css 中的position五个属性_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 11:32:49
原创
783人浏览过

在实际开发页面布局时,运用position,对定位的块级元素的嵌套的效果总是不太理解,这里做了几个测试

一般的在w3c中我们可以很容易的获取定义:

static : 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

fixed :生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

inherit :规定应该从父元素继承 position 属性的值。

absolute : 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative : 生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

总的来说 :

      static呢,就是正常的文档流顺序,默认的,相当于没有定位!

      fixed呢, 就是相对于浏览器窗口,就是你滚动条怎么滚动,他还是那个位置,就想是 “粘” 在窗口上了!

  inherit呢, 就是从父元素继承 position 属性的值,

      absolute呢,是脱离文档流的原来的位置是不继续占据了,如果他的父级元素中有已经定位了的不管是absolute的还是relative,它都会相对于他的父级元素来定位,如果他的父级元素中没有定位了的那么它就是相对于body来定位的。也就是说absolute的绝对是有参照物的!

      relative呢,是不会脱离文档流的原来的位置也就继续占据了,它是只相对于自身原来的位置来定位的!

  前三个是很容易理解的,对于absolute和relative的结合使用,做了几个测试

测试(absolute和relative)

  1.单独的absolute和relative  

  2.relative中的relative,absolute中的relative

  3.absolute中的absolute,relative中的absolute

  

<!DOCTYPE html><html><head>	<title>position -- absolute -- relative</title></head><style>		.test-a{		position: absolute;		top:20px;		left:60px;		width:200px;		height: 100px;		background: red;	}	.test{		width:400px;		height: 100px;		background: green;	}	.test-r{		position:relative;		top:50px;		left:130px;		background: yellow;		width:160px;		height: 180px;	}	.test-rr{	    position: relative;	    top: 20px;	    left: 100px;	    width: 600px;	    height: 300px;	    background: blue;	}	.test-aa{		position: absolute;	    top: 24px;	    left: 34px;	    background: orange;	}	.test-aaa{		position: absolute;	    top: 24px;	    left: 34px;	    width:400px;	    height:200px;	    background: #18E457;	}	.test-aaaa{		position: absolute;	    top: 124px;	    left: 134px;	    width:400px;	    height:200px;	    background: yellow;	}	.test-rrr{		position: relative;	    top: 24px;	    left: 34px;	    width:400px;	    height:200px;	    background: yellow;	}	.test-rrr{		position: relative;	    top: 124px;	    left: 134px;	    width:400px;	    height:200px;	    background: red;	}	.test-r-a{		position: absolute;	    top: 124px;	    left: 134px;	    width:800px;	    height:800px;	    background: yellow;	}	.test-a-r{		position: relative;	    top: 124px;	    left: 134px;	    width:700px;	    height:700px;	    background: red;	}</style><body>	<div class="test-a">absolute</div>	<div class="test">分割</div>	<div class="test-r">relative</div>	<h2	>结合使用</h2>	<p>parentNode的position不是relative或absolute,那absolute的绝对对象是针对body的 	  parentNode的position  是relative或absolute,那absolute的绝对对象是针对parentNode的 	  也就是说absolute的绝对是有参照Node的 </p>	<div class="test-rr">		absolute外的relative		<div class="test-aa">			relative内的absolute,,,里面这个div是相对外面那个div定位的		</div>	</div>	<div class="test-aaa">			absolute外的absolute			<div class="test-aaaa">				absolute内的absolute,,,,,,,,里面这个div是相对外面那个div定位的			</div>	</div>	<div class="test-rrr" >			relative外的relative			<div class="test-rrrr">				relative内的relative,,,,,,,,里面这个div是相对原来位置定位的			</div>	</div>	<div class="test-r-a">		relative外的absolute		<div class="test">								<div class="test-a-r">				relative内的absolute,,,里面这个div是相对原来位置定位的			</div>		</div>	</div></body></html>
登录后复制

  其实很多时候,网上的经验,很多很杂,自己实践一下,才能自己真正理解

     

 

 

 

 

 

 

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号