table?div+css?

相信很多网站现在布局都采用div,也有不在少数的兄弟或网站用的还是table.今天我们一起看看两者的优劣.当然只是从一个很小的应用侧面.
1.table不要您真不可能!
在布局时,table有自已的太多的优势,在此只举一个:自动延伸.会有人说div也可以呀.我只从代码量来权稳衡.在左右两列随内容自动拉长的页面:横1,纵2的布局中我还是会首先用table的.但不是说div+css在这个场景下实现不了需求.关键看代码量.
2.div+css您是我的最爱!
在论坛里有少了兄弟在问:如何把复杂的table换成div+css.这是一贴我曾回复的贴子:
url:http://topic.youkuaiyun.com/u/20080412/16/155b0430-f0fb-4f93-b1c2-7d6942caa425.html
代码如下:

  1. <table width="769" border="1" cellpadding="0" cellspacing="0"> 
  2.   <!--DWLayoutTable--> 
  3.   <tr> 
  4.     <td width="269" height="99" valign="top"></td> 
  5.     <td width="308" valign="top"></td> 
  6.     <td width="192" rowspan="3" valign="top"></td> 
  7.   </tr> 
  8.   <tr> 
  9.     <td height="107" colspan="2" valign="top"></td> 
  10.   </tr> 
  11.   <tr> 
  12.     <td height="144" valign="top"></td> 
  13.     <td valign="top"></td> 
  14.   </tr> 
  15. </table> 

这时我们要分清数据和样式(外现)的比例.相信谁都不想重复烦重的敲打键盘动作.从示例的代码中不难看.html表签占了4/5的比例.如果页面有这样10个以上的table叠起来.在网速不理想;您又开了5个以上的connection连接数据库,情况可想而知.
再看div的情况:

  1. <div id="layout"> 
  2. <div id="topColumn2"> 
  3. <ul> 
  4. <li></li> 
  5. <li></li> 
  6. </ul> 
  7. </div> 
  8. <div id="topRow3"></div> 
  9. <div id="middleColumn1"></div> 
  10. <div id="bottomcolumn2"> 
  11. <ul> 
  12. <li></li> 
  13. <li></li> 
  14. </ul> 
  15. </div> 
  16. </div> 

如果割去id="",可以看出彼此代码的数量.好像还少了css.不要担心.浏览器会先解析html内容.再去套css样式表.如果您网站规划还算理想的情况下.css应用到html结构上的时间将几何级的缩短.

 

3.今天的CSS!
相信网站中都有这样的需求存在:根据数据库的内容以表格的样式显示:小举一例:

  1.       <table width="670" border="0" cellpadding="0" cellspacing="0">
  2.         <tr>
  3.           <td width="325" height="30" valign="middle" class="gerenbg"> 建筑行业</td>
  4.           <td width="325" height="30" class="gerenbg"> 金融行业</td>
  5.         </tr>
  6.         <tr>
  7.           <td width="325" height="140" valign="top" bgcolor="#F4FAFF">记录</td>
  8.           <td width="325" valign="top" bgcolor="#F4FAFF">记录</td>
  9.         </tr>
  10.         <tr>
  11.           <td width="325" height="30" class="gerenbg"> 机械行业</td>
  12.           <td width="325" height="30" class="gerenbg"> 传媒行业</td>
  13.         </tr>
  14.         <tr>
  15.           <td width="325" height="140" valign="top" bgcolor="#F4FAFF">记录</td>
  16.           <td width="325" valign="top" bgcolor="#F4FAFF">记录</td>
  17.         </tr>
  18.         <tr>
  19.           <td width="325" height="30" class="gerenbg"> 汽车行业</td>
  20.           <td width="325" height="30" class="gerenbg"> 电子行业</td>
  21.         </tr>
  22.         <tr>
  23.           <td width="325" height="140" valign="top" bgcolor="#F4FAFF">记录</td>
  24.           <td width="325" valign="top" bgcolor="#F4FAFF">记录</td>
  25.         </tr>
  26.       </table>

上面的示例仅是一个平面设计阶段的劣作.写有:记录,处的列还要套一个表格(有N条记录要罗列).我的天呀!还好老板不用我写这样的东东!.显示效果是一个多对多.多个行业,一个行业对多个记录.我想说的不只这些.在种情况下我们要用脚本控制换行和补位.

看div的代码:

  1.       <div id="recordlist">
  2.       <dl>
  3.           <dt>建筑行业</dt>
  4.       <dd>
  5.           <ul>
  6.            <li>记录 </li>
  7.           </ul>
  8.       </dd>
  9.       </dl>
  10.       <dl>
  11.           <dt>金融行业</dt>
  12.       <dd>
  13.           <ul>
  14.            <li>记录 </li>
  15.           </ul>
  16.       </dd>
  17.       </dl>
  18.       <dl>
  19.           <dt>机械行业</dt>
  20.       <dd>
  21.           <ul>
  22.            <li>记录 </li>
  23.           </ul>
  24.       </dd>
  25.       </dl>  
  26.        ...      
  27.       </div>

最重要的是:我们的双层循环不再需要换行和补位.我们用CSS实现上面table所要呈现的外观.

CSS代码:

  1. #recordlist{float:left;width:670px;height:auto;}
  2. #recordlist dl{float:left;margin:0;padding-top:10px;padding-right:5px;width:330px;height:auto;}
  3. #recordlist dl dt,#recordlist dl dd{float:left;margin:0;padding:0;width:330px;height:auto;}
  4. #recordlist dl dt{padding-left:5px;width:325px;border:1px dashed #ddd;}
  5. #recordlist dl dd ul{float:left;margin:0;padding:0;width:330px;height:auto;}
  6. #recordlist dl dd ul li{float:left;margin:0;padding:0;width:165px;height:auto;list-style:none;}

4.总结:
不要作完美主义者.在不同的情况下,权衡用table,div是最重要的.个人观点:在结构很清晰时用table也不失为明智之举.在html结构很复杂时.不要犹豫div+css不会占用你太长的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值