深入学习表格
◇ 黑马
表格还有一些重要的内容需要彻底弄懂。实际上,这些内容,前面几节我们已经接触过,但我们还需要进一步去探讨一下。
我们先来做个实验。
下面黑马给出一条长度为450个像素的分隔线,然后在分隔线下面放置一张表格,其宽度亦为450个像素:
border=1
cesllpadding=15
cellspacing=8
width=450
现在,我们看到,表格的总宽度仍然是450个像素(它没有超越分隔线),因此,我们可以得出这样的结论:表格的border、cellpadding和cellspacing虽然都是占位元素,但它们不会使得表格变得更宽,换一个更生动的说法,表格的这些元素是往里占位的,而不是往外占位。
第二个实验:设定表格的宽度为400个像素,然后在里面放置一个可视元素,令其宽度为450,看看表格的总宽度发生了什么。我们依然用一条长度为450个像素的分隔分做参照。
本表格设定宽度为400个像素,但因表格里的分隔线宽度为450个像素,表格的实际显示宽度发生了变化。
现在我们看到,虽然在<table>标签里设定了width=400,但表格的总宽度并不是400个像素,而是被表格里面的那条分隔线的实际宽度(450个像素)撑宽了。你可能会觉得奇怪:为什么表格总宽度超过了450个像素呢?道理是这样:表格设置了cellpadding值为10,cellpadding区域是不可放进任何可视内容的。细心比较一下,你将发现,表格宽出的部分正是留空的部分,即表格的单元格衬距。
可见,表格里面的内容会影响到表格的宽度。实际上,如果我们设置好表格里面的内容的宽度,表格的width值是完全可以不设置的,但这不是一个好的习惯,我们通常仍然需要合理地设置表格的宽度,但必须留意一个问题:表格的总体宽度是否超过了可显示的范围。
实验三:设定一个450个像素宽度的表格,表格的边框、单元格间距和衬距都为实值,该表格有三个单元格,每个单元格设定宽度为150(加起来恰好的450个像素),看看表格的实际宽度是否发生变化。这个实验仍然使用450个像素宽度的分隔线作参照。
width=150width=150width=150
上面的表格,我们设置border=1,cellpadding=10,cellspacing=6,三个单元格的宽度均为150个像素,结果是:表格的总体宽度未发生变化。由此我们得出结论:多单元格表格里,只要各单元格的宽度相加起来不超过<table>里的宽度赋值,它们不会因表格边框、单元格间距和单元格衬距都为实值而撑宽表格。
本节通过实验的方式,从表格的宽度角度剖析了表格的一些深层特征,估计这些知识和体验从其他的教程中或许是得不到的。它并不是很抽象,加上黑马创造的用分隔线做对照标准和耐心的讲解,悉心阅读和比较后,你会很容易掌握的。