使用UL进行宽度固定的多行多列布局

2008-04-19

几天在用CSS写三列布局的时候突然想到的这样一个方法,这个想法自己都觉得有些疯狂,如果其中有什么不对的地方请各位不吝指教。

当需要写一个三列布局的时候,一般情况下我会选择使用如下的DIV布局方式:

使用这样的嵌套方式无疑可以使代码出错的概率减少很多,但同时这样的布局也略显复杂,对于后期的维护也略显不便。我们在布局导航时经常会使用到一个方法,那就是使用<ul>列表来进行布局,而导航可以形容为多列式的布局,既然如此,那么我们也就可以使用<ul>来进行页面的多列布局。

这是一个固定宽度的布局,也就是说流动性不强,流动性的布局目前还没有试验过,等有时间了再试验一下,下面贴上这个布局的代码:

<!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>使用UL进行多列布局</title>
<style type=”text/css”>
* {margin:0; padding:0;}
body {
width:100%;
height:100%;
background:#ddedfb;
}
#mainContent {
width:600px;
margin:10px auto;
}
#header,#footer {
background:#8AC7FA;
height:80px;
clear:both;
}
#footer {
clear:both;
padding-top:10px;
}
#content {
height:300px;
margin:10px auto;
}
#content ul {
list-style:none;
height:100%;
}
#content ul li {
width:150px;
height:100%;
background:#8AC7FA;
float:left;
}
#content ul li#li2 {
width:280px;
margin:0 10px;
}
#content ul li#li2 ul li {
width:270px;
height:140px;
margin:5px;
background:#0581F0;
}
</style>
</head>

<body>
<div id=”mainContent”>
<div id=”header”>这是头部</div>
<div id=”content”>
<ul>
<li>这是左边</li>
<li id=”li2″>
<ul>
<li>这是中间的上部</li>
<li>这是中间的下部</li>
</ul>
</li>
<li>这是右边</li>
</ul>
</div>
<div id=”footer”>这是底部</div>
</div>
</body>
</html>

这段代码在IE7及FF3下都能正常显示,其他浏览器未做测试,如果你有更好的方法不妨提出来。

分类:前端开发 | 标签: | 查看:12,057

11 条评论

  1. soking 说道:

    内容区一般还会有个ul,到时候就会再嵌套一层了。

  2. 忙什么 说道:

    这种写法没有遵循UL的语义:无序列表,怕不是很合适吧?
    符合W3C标准不应该仅仅是能通过校验。

  3. 忙什么 说道:

    其实做这个很简单,头,左浮动,右浮动,中间两个DIV设置合适的宽度就可以了,页脚设置clear属性,基本不会有问题的。 :)

  4. Robin 说道:

    这种方法是完全不可取的, 完全违背了列表的语义, 他根本不是用来划分页面区块的, 的功能才是划分区块的. 我想这些并不是站长不了解. 但是作为一个另类的思考方式还是不错的. 不过要是这种方法流传开去可是对大家的误导哦 :)

  5. 摄氏度 说道:

    当初想到这个布局仅仅是因为想为博客改版时底部的三个小栏目(prower v2)而引发的,因为里面的内容很简单也不存在另外的DIV层,也仅仅只是一种另类的尝试,嘿嘿。

  6. 阿军 说道:

    你写的一价值都没有.没有理解到真正的东西

  7. 摄氏度 说道:

    @阿军:
    难道仅仅只是做个好玩的试验也不行?

  8. jiucool 说道:

    呵呵……发现一个小问题啊,你的博客副标题好像有一个错字哦。
    纪录成长历程中的点滴
    “记录”的记好像不是这个吧?^^

  9. 摄氏度 说道:

    @jiucool:
    汗!还真的是一样没有发现这个问题,相当的汗颜,感谢朋友的提醒!

  10. 断峰狼 说道:

    如果再在ul下嵌套多个ul还会有更多的麻烦~~

评论被关闭!