DIV多列显示问题的解决办法

作者:高湘 来源:原创 点击数: 发布时间:2006年12月26日
在DIV+CSS的页面中,实现一行两列或一行多列的页面布局,主要是对系统标签所输出的代码的进行样式定义,包括宽度与对齐方式等,下面钟对“文章列表 DIV多列”、“循环栏目列表一行多列”两种情况进行说明,其它相应 DIV多列布局情况请按相同方式处理。

问题一:循环显示栏目列表的多列显示

模板代码:



【ArticleList_ChildClass】【Cols=99】





{$rsClass_ClassName}








【/ArticleList_ChildClass】

模板代码说明:
1:


【ArticleList_ChildClass】【Cols=99】



【/ArticleList_ChildClass】

是将栏目循环标签输入的代码中,在DIV页面不需要的多余代码隐藏起来;

2:


这个层是所有栏目列表的外框,它在浏览器中的实际宽度影响多列显示的最终效果,比如需要它其中的r_box_list层按一行两列显示,那么r_box_list层的宽度必须大于main_line层的三分之一及不大于它的二分之一;

3:


这个层是每一个栏目框的外框,主要是对它的宽度、对齐方式进行定义;

样式定义:
#main_line,#main_line dl
{
Margin:0px;
Padding:0px;
Width:770px;
Clear:both;
}
#main_line dd
{
Margin:0px;
Padding:0px;
}
#r_box_list
{
Width:330px;
Float:left;
Height:200px;
overflow: hidden;
}

样式说明:
1:在知道main_line的实际宽度后,再按需要定义r_box_list的宽度,如果是按一行三列显示,那么r_box_list层的宽度是:大于main_line层的四分之一并不少于它的三分之一。
2:再将r_box_list层的对齐方式设为左对齐:float:left;。
3:设置r_box_list层的高度,并保证其在实际显示时被撑开,防止出现意想不到的效果,最好再加上overflow: hidden;定义。

问题二:文章列表多列显示


模板标签调用:



{$ClassName}{$ChannelShortName}



模板说明:
1:Main_line 、R_box_chan两个层的用跟上一问题中Main_line相同,在这一问题中,要确定最里面层的实际宽度;标签中,红色“5”表示输出的代码为DIV格式;
2:输出的代码是如下框架



标题


奇数行

偶数行



样式定义:
#r_box_chan,#r_box_chan dl
{
margin:0px;
padding:0px;
clear:both;
}
#r_box_chan dd
{
Margin:0px;
Padding:0px;
}
#listbg,# listbg2
{
float:left;
width:340px;
overflow: hidden;
height:23px;
line-height:23px;
}

样式定义:
其样式定义的原理与上一问题相同,在#listbg与# listbg2两个层的定义中:
overflow: hidden;height:23px;line-height:23px;防止列表中有换行的现像。