本文部分内容转载自:http://www.html5tricks.com/why-not-table-layout.html

刚刚接触html的时候,利用table进行页面布局是比较容易的。但是,在实际的项目开发过程中,我们不建议用table进行布局,原因如下:

  1. table比其它html标记占更多的字节。(造成下载时间延迟,占用服务器更多流量资源)
  2. table会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度,让用户等待更久的时间)
  3. table里显示图片时需要你把单个、有逻辑性的图片切成多个图。(增加设计的复杂度,增加页面加载时间,增加http会话数)
  4. 在某些浏览器中,table里的文字的拷贝会出现问题。(会让用户不悦)
  5. table会影响其内部的某些布局属性的生效(比如<td>里的元素的height:100%) (限制页面设计的自由性)
  6. 一旦学了CSS的知识,你会发现使用table做页面布局会变得更麻烦。(先花时间学一些CSS知识,会省去你以后大量的时间)
  7. ‘table对’对于页面布局来说,从语义上看是不正确的。(它描述的是表现,而不是内容)
  8. table代码会让阅读者抓狂。(不但无法利用CSS,而且会不知所云,尤其在进行页面改版或内容抽取的时候)
  9. table一旦设计完成就变成死的,很难通过CSS让它展现新的面貌。(CSS ZEN GARDEN:http://www.csszengarden.com/

table的好处

在某些场合,使用table是完全合适、恰当和准确的。比如用table做表格。如果无法判断是否应该使用table,请问自己几个问题:

  • “是否这些行或者列的信息共享某一个属性?比如每行显示一个学生的信息,所有学生都有个‘姓名’属性。”
  • “如果我改变了这些行或者列的顺序,是不是依然有意义或者有同样的效果?”
  • “如果我将行变成列或者将列变成行,是不是依然有意义或者有同样的效果?”

如果答案仅仅是“我猜……也许不是”,那么就不应该用table。更多信息请参考“为什么用table布局不如HTML+CSS”。

不用table怎样让两个span显示在同一行

在进行HTML+CSS布局的时候,经常会遇到需要将控件(span、div等)放到同一行的情况,参考下面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
<style type="text/css">
div {
width: 24px;
overflow-x:hidden;
white-space: nowrap;
} span {
width: 15px;
display:inline-block;
border-style:solid;
border-width:1px;
}
</style>
</head>
<body>
<div>
<span></span><span></span>
</div>
</body>
</html>

父层overflow-x:hidden可以避免当窗体大小发生改变时换行。这样对div和span进行CSS控制后,就可以避免使用table的tr进行页面布局,同时页面代码也更清晰。

最新文章

  1. 一些Unity基础操作的性能测试
  2. Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
  3. (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除
  4. jQuery实现星星评分功能
  5. Minimum Size Subarray Sum
  6. ACM之Java速成(2)
  7. Web安全技术(3)-浏览器的跨域访问
  8. pythoncharm 中解决启动server时出现 “django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured”的错误
  9. 【一天一道LeetCode】#263. Ugly Number
  10. Linux共享库、静态库、动态库详解
  11. freetype 字形解析
  12. 洛谷P4553 80人环游世界
  13. python学习-Day1-接口测试
  14. bash shell执行方式
  15. eclipse创建maven组合项目
  16. 【Udacity并行计算课程笔记】- lesson 1 The GPU Programming Model
  17. 【AtCoder】AGC024
  18. 【mysql】一条慢查询sql的的分析
  19. Docker 后台进程参数-------更改Docker运行根目录的方法
  20. ES6学习--函数剩余参数 (rest参数)

热门文章

  1. java 遍历list 模糊查询用
  2. 优动漫PAINT中设置横排文字
  3. dp入门—数塔
  4. CF 949C Data Center Maintenance_强联通分量_思维题
  5. baidu练习/html/css
  6. luogo p3379 【模板】最近公共祖先(LCA)
  7. django patch
  8. Parse error: syntax error, unexpected &#39;__data&#39; (T_STRING), expecting &#39;,&#39; or &#39;)&#39;
  9. phpstorm中,光标变成一个长方红色块,如何调回来?
  10. Element源码阅读(1)