XHTML+CSS利用浮动与定位进行网页布局

80酷酷网    80kuku.com

  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的值来控制子元素的位置,要注意的是子元素的位置将相对于父元素,而不是整个页面。

浮动与定位的区别

通过定位虽然也可以进行布局,但是它的特点决定了它不适合做页面的布局,因为被定义的元素在普通文档中占有的任何空间都将被关闭,可以说,它是漂浮在整个页面上面的,所以,它可以和页面上其他的内容重叠显示。

这个特点可以方便的让我们做出其他特殊的效果,但是相对与浮动就布局来说,我们更多的还是用浮动。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: