css|xhtml|浮动|网页
最近在做一篇文档,有关xhtml与css的,看了不少资料,这里先把总结的东西写一点出来。先说的是div+css的问题,最基本的,怎样使用它们来布局。
浮动
CSS允许任何元素浮动float,不论是图像,段落还是列表。无论先前元素是什么状态,浮动后都成为块级元素。浮动元素的宽度缺省为auto。
浮动有一系列控制它的规则。
1.浮动元素的外边缘不会超过其父元素的内边缘。
2.浮动元素不会互相重叠。
3.浮动元素不会上下浮动。
4.如果一个浮动元素在另一个浮动元素之后显示,而且会超出容纳块,则它下降到低于先前任何浮动元素的位置。说简单点就是没有空间的话,就另起一行。
下面是一个例子:
<div id="main">
<div id="box1">box1</div>
<div id="box2">box2</div>
<div class="clear"></div>
</div>
#main{ width:100%; }
#box1{ float:left; width:40%;}
#box2{ float:right; width:60%;}
.clear{ clear:both;}
这是一个一行两列的例子,其中clear的作用是不让浮动元素下面的元素环绕在它周围。
定位
position,我们通常用到的是绝对(absolute)和相对(relative)定位,运用这些定义,同样可以进行布局,做出上面一行两列的例子。
<div id="main">
<div id="box1">box1</div>
<div id="box2">box2</div>
</div>
#main{ position:relative;width:100%;}
#box1{ position:absolute; top:0; left:0; width:40%;}
#box2{position:absolute; top:0; right:0; width:60%;}
通常,做弹出菜单的时候,我会用到定位,父元素相对定位position:relative,其中的子元素绝对定位position:absolute,通过top,right,bottom,left的值来控制子元素的位置,要注意的是子元素的位置将相对于父元素,而不是整个页面。
浮动与定位的区别
通过定位虽然也可以进行布局,但是它的特点决定了它不适合做页面的布局,因为被定义的元素在普通文档中占有的任何空间都将被关闭,可以说,它是漂浮在整个页面上面的,所以,它可以和页面上其他的内容重叠显示。
这个特点可以方便的让我们做出其他特殊的效果,但是相对与浮动就布局来说,我们更多的还是用浮动。