近日开发中,总感觉页面布局方面力不从心。以前也曾学过这方面的内容,但是不够系统,因此我打算整理一下。

在web 页面中一般有 table 和 css+div 两种布局方式。

其中css+div 又分为原生css 和css 框架 两种。

现在一般网站已经不再使用table布局,但是一些简单对齐的页面也可以使用一下,因此在此处做一个简单的总结。

一、table 布局

html 标签中 跟table 布局相关的标签 有 <table> <th> <tr> <td>,另有两个比较重要的属性 是  rowspan,colspan。

table 布局也非常强大,在css 出现之前,所有的网页几乎都是用table 布局的。但是现在几乎不再使用了。以前看过的一话转载在此处:

为什么我们不建议用Table布局
Table要比其它html标记占更多的字节。
(延迟下载时间,占用服务器更多的流量资源。)
Tablle会阻挡浏览器渲染引擎的渲染顺序。
(会延迟页面的生成速度,让用户等待更久的时间。)
Table里显示图片时需要你把单个、有逻辑性的图片切成多个图。
(增加设计的复杂度,增加页面加载时间,增加HTTP会话数。)
在某些浏览器中Table里的文字的拷贝会出现问题。
(这会让用户不悦。)
Table会影响其内部的某些布局属性的生效(比如<td>里的元素的height:100%)
(这会限制你页面设计的自由性。)
一旦学了CSS知识,你会发现使用table做页面布局会变得更麻烦。
(先花时间学一些CSS知识,会省去你以后大量的时间。)
table对对于页面布局来说,从语义上看是不正确的。
(它描述的是表现,而不是内容。)
table代码会让阅读者抓狂。
(不但无法利用CSS,而且会你不知所云)
table一旦设计完成就变成死的,很难通过CSS让它展现新的面貌。
(你看过CSS Zen Garden吗?) Tables的好处 在某些场合,使用Table是100%的适合、恰当和正确。比如,用table做表格是完全正确的。 如果你无法判断是否应该使用table,参考一下上面的几条,相信你能找到答案。 英文:Why Tables Are Bad.
译文:webhek

table 布局需要使用table 标签把一块区域圈起来 ,化为布局区域,可以指定大小等,页面的内容应该放在<td> 标签内。

代码1:

<table width="500" height="500" border="1">
<tr>
<td>
这是一个table 布局
</td>
</tr>
</table>

代码1就在页面上布置了一个单元格,显示在了页面左上角。

如果我想把页面居中显示怎么办呢?方法就是在外层嵌套一个table ,然后把这个table 放在外层table 的td 单元格中,设置单元格对齐样式为居中。

代码2:

<table width="100%" border="1">
<tr>
<td align="center" valign="middle">
<table width="500" height="500" border="1">
<tr>
<td>
这是使用table 布局。
</td>
</tr>
</table>
</td>
</tr>
</table>

另外一个常用的就是合并单元格:包括横着合并和竖着合并。使用colspan 和rowspan 实现。

代码3:

<table width="100%" border="1">
<tr>
<td align="center" valign="middle" >
<table width="300" height="300" border="1">
<tr>
<td colspan="2">
这是使用table 布局。
</td>
<td>
这是使用table 布局。
</td>
</tr>
<tr>
<td>
这是使用table 布局。
</td>
<td rowspan="2">
这是使用table 布局。
</td>
<td>
这是使用table 布局。
</td>
</tr>
<tr>
<td>
这是使用table 布局。
</td>
<td>
这是使用table 布局。
</td>
</tr>
</table>
</td>
</tr>
</table>

colspan="2"指定了该单元格占两列位置。

rowspan="2" 指定了该单元格占两行位置。

经过上面代码扩展,现在的表格布局效果如下图所示:

基本上复杂布局就靠表格之间的嵌套来实现,最复杂的布局甚至要几十个table 来嵌套完成。

另外表格还有很多属性和标签,设置不同的属性就能达到想要的效果。

下一篇介绍css 布局。

CSS 布局的更多相关文章

  1. 界面设计技法之css布局

    css布局之于页面就如同ECMAScript之于JS一般,细想一番,html就如同语文,css就如同数学,js呢,就是物理,有些扯远,这里就先不展开了. 回到主题,从最开始的css到如今的sass(l ...

  2. CSS布局 - 三栏布局

    CSS布局技术可谓是前端技术中最基础的技术,就是因为基础,所以我认为要更加熟练,深入的去掌握,去梳理. 一. 传统 ---> 浮动实现的三栏布局 采用浮动实现的三栏布局有以下特点及注意事项: · ...

  3. DIV+CSS布局中主要CSS属性介绍

    Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...

  4. CSS布局经典—圣杯布局与双飞翼布局

    在我之前的博客网页整体布局完全剖析-剖完你不进来看一下么?中总结单列.两列.三列固宽与变宽布局,我还以为已经囊括了所有经典的网页布局方法了呢,当然除了CSS3的弹性盒模型没有涉及到,现在看来确实是自己 ...

  5. html学习第三天—— 第12章——css布局模型

    清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又不同于我们常说的 ...

  6. CSS篇之DIV+CSS布局

    <div></div> div与其他标签一样,也是一个XHTML所支持的标签. div是XHTML中指定的,远门用于布局设计的容器标记. 简单的CSS布局 头部 内容 页脚 & ...

  7. CSS 布局口诀

    body { font-family: Segoe UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMi ...

  8. CSS布局基础——BFC

    what's BFC? 第一次看到这个名词,我是拒绝的,css什么时候还有这个东西?于是迫不及待的google了一下,才发现原来它无时无刻不在我们的css当中,只不过它并不是一个属性,不需要我们平常使 ...

  9. 熟悉HTML CSS布局模型

    HTML最难的地方来了!这个我反复了很多遍, 包括现在写博客, 也对我自己算是一种温习, 我这块怕是没办法写的很好懂, 因为我自己还不能把我学到的准确通俗易懂的表达出来, 给自己记个笔记, 以后再来一 ...

随机推荐

  1. Nginx在线服务状态下平滑升级或新增模块的详细操作

    今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了 1:查看现有的nginx编译参数 /usr/local/nginx/sbin/ng ...

  2. A*寻路算法探究

    A*寻路算法探究 A*算法常用在游戏的寻路,是一种静态网路中求解最短路径的搜索方法,也是解决很多搜索问题的算法.相对于Dijkstra,BFS这些算法在复杂的搜索更有效率.本文在U3D中进行代码的测试 ...

  3. T-SQL 关闭数据库所有连接

    原文引用自: http://www.cnblogs.com/kissazi2/p/3462202.html 下面给出一种删除数据库活动连接的方式.将下面代码段中的"--修改一下"处 ...

  4. eclipse设置快速提示符

    省掉废话,一个快速提示符真的能快速地提高编程效率. 下面介绍如何设置eclipse的快速提示符. 步骤如下: Windows --> preferences --> java --> ...

  5. php-fpm优化方法详解

    php-fpm优化方法 php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少:另一种则是开始时开启一定数量的php-fpm进程,当请求量变大时,动态的增加php-f ...

  6. CentOS 6 部署GlusterFS

    首先需要关闭CentOS的防火墙和selinux,否则glusterfs将可能无法正常工作. /etc/init.d/iptables status 会得到一系列信息,说明防火墙开着. /etc/in ...

  7. TCP学习之一:TCP网络编程概念

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一.TCP 面向连接的(UDP是无连接的) 全双工,建立连接之后 ...

  8. spring boot开发入门

    最近学习了spring boot,刚刚入门,整理下

  9. 响应式web设计总结

    简单来说响应式是针对不同的屏幕的大小,比如电脑电脑.Pad设备上,屏幕比较宽的,就可以一行放多个Div.到了手机上,或者Pad竖着拿的的时候,一行就只放1到2个Div就差不多了.这样在移动设备上,无论 ...

  10. input事件与change事件

    输入框的change事件: 必须等到输入框失去焦点的时候才会触发,鼠标在空白的地方点一下: 输入框的input事件: 在输入内容变化的同时,实时的触发,不需要等到失去焦点.