CSS
定位
position 值
- static 默认值,表示没有定位,此时left、right、bottom、top、z-index的设置无效
 - relative 相对定位,总会覆盖正常文档流中的元素
 - absolute 绝对定位,脱离文档流,绝对定位的元素的位置相对于最近的已定位祖先元素来定位
 - fixed 固定定位,脱离文档流
 
position的一些总结
- 对于position值为absolute、fixed或者float值为left或者right的元素,它们的宽度会尽可能地小
static、relative、float:none不变 - 对于position值为absolute、fixed或者float值为left或者right的元素,即使它们原来是行内元素也会变成块级元素
static、relative、float:none不变 - con 通过position或者float脱离文档流时,会变成块级元素,但是并不会像一般块级元素那样宽度会尽可能的大,反而它们会尽可能地小
 
position 与 float
- relative + float:非none
float优先,元素会尽可能地小,同时如果是行内元素也会变成块级元素
设置left、right、top、bottom时,是相对于float后的位置进行移动,但是注意:
第一个div左右上下移动之后后面的div并不会补上去,因为relative的移动还会占据本来的位置,如下 
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0px;
				padding: 0px;
			}
			
			div{
				width: 100px;
				height: 100px;
				border: 1px solid black;
				background-color: goldenrod;
				position: relative;
				float: left;
				
				
			}
			.one{
				right: 50px;
			}
		</style>
	</head>
	<body>
		<div class="one">
			
		</div>
		<div>
			
		</div>
		<div>
			
		</div>
	</body>
</html>
- absolute + float:非none
float的文字围绕效果会失效 ,但是relative + float:非none文字围绕效果依然会存在
float浮动效果也失效
如下,div并没有float:right,而是全部重叠在了左边 
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0px;
				padding: 0px;
			}
			
			div{
				width: 100px;
				height: 100px;
				border: 1px solid black;
				background-color: goldenrod;
				position: absolute;
				float: right;
				
				
			}
		</style>
	</head>
	<body>
		<div>
			
		</div>
		<div>
			
		</div>
		<div>
			
		</div>
	</body>
</html>
- 
fixed + float:非none
同absolute + float:非none - 
absolute和float为兄弟元素时并不会相互影响到它们的位置
 - 
不论在前在后,absolute元素总会遮住float元素,可以通过在absolute元素将z-index的值设置为负来改变着一状况
css 
*{
	margin: 0;
	padding: 0;
}
div{		
	width: 300px;
	height: 300px;
	border: 1px solid black;
}
.r{
	position: absolute;	
	background-color: brown;
}
.f{
	float: left;
	background-color: yellow;
}
html
<div class="r">
	1111111111
</div>
<div class="f">
	aaaa
</div>
- relative不一定会遮住float元素
relative的z-index<0时不会遮住float,如果不设置,或者>0时则会遮住。注意:z-index属性在float元素中并不会起任何效果 
响应式
对于position值为absolute或者fixed的元素,如果没有设置它的高度和宽度,并且top,bottom,left,rigth
都设置了值的话,该元素四边则会缩进到top,bottom,left,right对应的距离。注意relative是没有这个效果的。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>absolute</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			div{
				width: 100%;
				heigth: 100%;			
				border: 1px solid black;
			}
			.r{
				position: absolute;	
				left: 50px;
				right: 50px;
				top: 50px;
				bottom: 50px;
				background-color: brown;
			}
		</style>
	</head>
	<body>
		<div class="r">
			
		</div>
	</body>
</html>
图像与文字垂直居中对齐问题
- 方法
html 
<div>
	我是文字<img src = "url">
</div>
css
img{
	vertical-align: middle;
}
                    
                
                
            
        
浙公网安备 33010602011771号