CSS中的定位

CSS中的定位大概可以分为:普通定位,浮动定位,绝对定位。除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。

posiion的属性呢又有四种:

static:手册的解释“元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。”这个是各个定位坐标并不对它产生作用。该属性是浏览器的默认属性。

relative:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

absolute:元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

这里,relative和absolute之间的区别在于:relative移动后它之前停留的位置任然会被保留,而absolute移动之后它之前停留的位置更本不见了!

fixed:元素框会偏移到视窗的某个位置,及时你下拉滚动条,它任然存在定位后的某个位置。仅仅根据你的视窗来定位的。

浮动:float

使用float定位一个元素有float:left;&float:right;两种值。这种定位只能在水平坐标定位,不能在垂直坐标定位。而且让下面的元素浮动环绕在它的左边或者右边。
例如:
#div.a {
float:left;
width:200px;
}
<div id="a">第一行</div>
<div >第二行<div>
原本两个DIV都是各占一行的,
但第一行的div向左浮动后,它就不再具有独占一行的属性,而第二行就跟排在后的空位置。
那么浮动后,我也可以使用margin外边局调整浮动后的元素
如果让一个元素float:left;另一个float:right;控制好他们的宽度,(如果两者宽度能超过屏幕大小。则会自动换行)就能实现两列的布局效果:
#div-a{
float:left;
width:250px;
}
#div-b {
float:left;
width:250px;
}
<div id="a">第一行</div>
<div id="b">第一行</div>
清除浮动则是使用clear:right/left/both.作用是清除上一个元素浮动的作用,让它浮动失效!
#div-a{
float:left;
width:250px;
}
#div-b {
clear:left;
width:250px;
}
这样它不再具有浮动效果了!

posted on 2015-05-09 11:53  /*我不是无情的人*/  阅读(111)  评论(0编辑  收藏  举报