CSS布局之浮动(一)两列布局

作者:Prower 来源:Prower 时间:2008-08-18 21:24:00 

CSS浮动一直是个比较让人郁闷的问题,很多的布局问题都出在浮动上,特别是当浮动的列数很多时,但其实只要理解了两列结构的浮动,面对多列数的浮动也不会再心慌,因为两列结构的左右浮动是最基本的浮动,也是更多浮动的基础,三列、四列等的浮动都是出于此的。

来看一下几种常见的CSS两列浮动,CSS代码见以下各分类,HTML结构代码如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>CSS浮动</title>
</head>
<body>
<div id=”a”>开始我是在左边,后面可能到右边</div>
<div id=”b”>开始我是在右边,后面就可能跑到左边去</div>
</body>
</html>

左侧定宽右侧自适应:

#a{float:left; width:200px; background:#aaa;}
#b{background:#f00;}

当需要左侧定宽而右侧自动时,则只需要设定a对象为左浮动即可,b对象默认是占整个屏幕的宽度的,但因为a为左浮动并且占了200PX的宽度,b则自动位于a后面。

当然这样会有一个问题,那就是当左侧的内容高度超过右侧时,右侧的高度并不能随之而增高,而当右侧内容高于左侧时,右侧的内容就会流到左侧内容的底下去。

解决这个问题的一个办法是,给b也设置一个浮动,当然并不是设置右浮动,如果是设置的右浮动,当右侧内容少不够一行的宽度时左右两侧中间则会出现空白:

#a{float:left; width:200px; background:#aaa;}
#b{background:#f00; float:right;}

给b设置左浮动时,则可以解决中间出现空白的问题,但同样的道理,当b对象内容少不够一行的宽度时时,右侧就会出现空白:

#a{float:left; width:200px; background:#aaa;}
#b{background:#f00; float:left;}

当然有另外一种两全的解决办法,即设置b对象距离左边的位置,这样即可以达到浮动的目的也可以解决b对象内容过多而流入到a对象下面的问题:

#a{float:left; width:200px; background:#aaa;}
#b{background:#f00; margin-left:200px;}

右侧定宽左侧自适应:

与左侧定宽右侧自动一样的道理,右侧定宽左侧自动同样可以实现:


#a{background:#f00; margin-left:200px;}
#b{float:right; width:200px; background:#aaa;}

如果按照上面的代码,那么你会发现这个代码并不能实现右浮动,b对象显示在a对象的下面,并没有如预期的那样显示成右侧定宽左而自动的效果。因为HTML结构的原因,浮动DIV应该出现在没有浮动的DIV前面,也就是说,如果是按上面的代码,那么<div id=”a”>…</dia>与<div id=”b”>…</dia>的顺序应该调换一下:

<div id=”b”>开始我是在右边,后面就可能跑到左边去</div>
<div id=”a”>开始我是在左边,后面可能到右边</div>

当然,也可以在不改动HTML结构的情况下,利用CSS样式去调整浮动顺序,这也是CSS的优点之一,即可以在不改动原HTML结构的情况下,完成对页面的修改:

#a{float:left; width:200px; background:#aaa;}
#b{background:#f00; margin-left:200px;}

阅读下一篇:CSS布局之浮动(二) 三列浮动

标签:布局,浮动,css
0
投稿

猜你喜欢

  • 怎样开启phpStudy服务器

    2023-05-25 00:38:06
  • Dreamweaver使用快技法十三则

    2009-07-21 12:45:00
  • asp下查询xml的实现代码

    2011-04-19 10:37:00
  • 用XsltArgumentList实现xsl的参数调用

    2008-09-04 11:24:00
  • 栅格:一以贯之

    2008-07-22 12:19:00
  • 我所钟爱的HTML5资源

    2010-07-23 09:25:00
  • Persits AspJpeg组件图片水印\\缩略图\\图片合并\\图片切割\\实例教程

    2008-12-14 10:36:00
  • 段正淳的css笔记(6)-浅谈css框架开发

    2008-01-13 22:42:00
  • IE下中英文字体不能对齐原因及解决

    2008-08-11 12:47:00
  • 关于获取HTML元素的CSS属性值函数

    2008-09-01 13:20:00
  • 使用HTML5中的canvas进行图形图像.游戏.动画开发时,不需要双缓冲机制

    2010-04-01 12:21:00
  • 全面阐述overflow:hidden属性

    2008-08-18 13:30:00
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享

    2012-05-22 18:41:58
  • Access中实现case when功能

    2009-04-28 13:02:00
  • 隐藏修改文件时间和文件属性的ASP脚本

    2011-03-17 11:15:00
  • 给JavaScript自定义一个Trim函数

    2008-04-20 16:30:00
  • 优化MySQL数据库查询的三种方法

    2009-03-09 15:19:00
  • asp,php 和 jsp 比较 之我见

    2007-08-10 13:35:00
  • 使用 createProcessingInstruction 方法不能输出 encoding 的解决方法

    2009-03-10 18:22:00
  • SQL Server 2000 清理日志精品图文教程

    2012-07-21 14:31:17
  • asp之家 网络编程 m.aspxhome.com