CSS布局浮动(float)和定位(position)属性的区别

开发 前端
这里向大家描述一下CSS布局浮动(float)和定位(position)属性的区别和应用,postion:relative是子块级元素面向父级元素的相对定位,float:right/left是子块级元素流集合面向父级元素的定位。

你对CSS布局浮动(float)和定位(position)属性的区别是否熟悉,这里向大家简单介绍一下,postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom,而float:right/left是子块级元素流集合面向父级元素的定位,定位的关键词使用margin/padding。

CSS布局浮动(float)和定位(position)属性的区别和应用

postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom。兄弟块元素之间相对进行定位,但是position移动后,原位置依然保留。而且随后的兄弟块元素定位基于被移走前的位置。

float:right/left是子块级元素流集合面向父级元素的定位,定位的关键词使用margin/padding。兄弟块元素之间进行相对的定位均基于移动后的新位置进行重新渲染,可以重叠,原位置被清空。

二者之中最大的差别就是位置保留。

人们也就利用这种差异,可以做出CSS代码的滑动门菜单。

hover时取当前元素为保留位置,定义一个relative时,没有hover时使用float清空保留位置。

比较示例中的3个样式表,就可以发现:

<!--<style> 
*{border:1pxsolid#eee;}  
body{  
border-color:#09f;  
}  
ul{list-style:none;width:800px;height:600px;  
margin:0auto;padding:10px;}  
li{float:left;}  
#li1{width:200px;height:200px;  
border-color:red;}  
#li2{width:200px;height:150px;  
border-color:green;margin-left:-20px;}  
#li3{width:200px;height:100px;  
border-color:blue;margin-left:-20px;}  
</style>--> 
<!--<style> 
*{border:1pxsolid#eee;}  
body{  
border-color:#09f;  
}  
ul{list-style:none;width:800px;  
height:600px;margin:0auto;}  
li{position:relative;}  
#li1{width:200px;height:200px;  
border-color:red;top:10px;}  
#li2{width:200px;height:150px;  
border-color:green;top:-192px;left:180px;}  
#li3{width:200px;height:100px;  
border-color:blue;top:-344px;left:360px;}  
</style>--> 
<style> 
*{border:1pxsolid#eee;}  
body{  
border-color:#09f;  
}  
#ul{list-style:none;width:800px;  
height:600px;margin:0auto;padding:20px;}  
#li1{width:200px;height:200px;  
border-color:red;position:relative;}  
#li2{width:200px;height:150px;  
border-color:green;float:left;  
margin-left:-20px;margin-top:-202px;}  
#li3{width:200px;height:100px;  
border-color:blue;float:left;  
margin-left:20px;margin-top:-202px;}  
</style> 
<ulidulid=#id> 
<liidliid=li1>li1</li> 
<liidliid=li2>li2</li> 
<liidliid=li3>li3</li> 
</ul> 
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.

【编辑推荐】

  1. CSS中Float和Clear属性用法
  2. 畅谈DIV排版和table排版的区别
  3. CSS布局中float和position属性使用技巧
  4. 详解CSS定位属性Position用法
  5. 鼠标经过时改变DIV背景颜色的三种途径

 

 

责任编辑:佚名 来源: aa25.cn
相关推荐

2010-09-02 11:18:46

CSSfloatposition

2010-09-01 11:21:18

CSSpositionfloat

2010-09-08 16:22:32

PositionCSS

2010-09-02 15:32:51

CSSfloat

2010-08-30 15:26:13

floatCSS

2010-09-06 13:04:16

CSS浮动float

2010-09-14 17:07:26

DIV浮动定位CSS

2010-09-06 11:11:31

CSS定位

2010-09-01 14:02:27

绝对定位浮动CSS

2010-09-07 15:38:42

CSS绝对定位浮动

2010-08-31 10:30:59

CSSpositionz-index

2010-09-15 13:44:01

CSS positio

2010-09-15 14:00:06

position属性DIV

2010-08-24 15:11:24

PositionCSS

2013-03-28 11:02:26

CSS浮动

2010-09-10 11:32:23

CSS绝对定位CSS相对定位

2010-08-31 15:24:43

CSSpositionabsolute

2010-09-09 15:08:40

CSSfloatclear

2010-08-16 11:05:54

DIV+CSS

2013-05-20 15:45:12

CSS
点赞
收藏

51CTO技术栈公众号