网页设计小组

Web创作常见问题解答:HTML表格


英语-荷兰语-法国
目录-完整FAQ(HTML)-完整常见问题解答(文本)
上一节-下一节

本文档回答了网络作者经常提出的问题。虽然它的重点是HTML相关的问题,但此FAQ也回答了一些与CSS、HTTP、JavaScript、服务器配置等相关的问题。

本文件由Darin McGrew保管<darin@htmlhelp.com>并定期发布到新闻组comp.infosystems.www.authoring.html.上次更新时间为2007年4月26日。

第9节:HTML表格

  1. 我可以在表中嵌套表吗?
  2. 如何使用表格构造表单?
  3. 如何将桌子居中?
  4. 如何将表格向右(或向左)对齐?
  5. 我可以使用<TD WIDTH=…>的百分比值吗?
  6. 为什么<TABLE WIDTH=“100%”>不使用整个浏览器宽度?
  7. 为什么我的桌子前后有多余的空间?
  8. 使用表格进行布局有什么问题吗?

9.1. 我可以在表中嵌套表吗?

是的,一个表可以嵌入到另一个表的单元格中。这里有一个简单示例:

<表格><tr><td>这是外桌的第一个单元格</td><td>这是外桌的第二个单元格,内表嵌入其中<br><表格><tr><td>这是内表的第一个单元格</td><td>这是内表的第二个单元格</td></tr></表格></td></tr></表格>

关于嵌套表的主要警告是如果不明确关闭,Netscape Navigator会出现问题你的信托收据,技术总监、和元素。为了避免出现问题,请将每个</tr>,</td>、和</th>标签,偶数尽管HTML规范不需要它们。

此外,旧版本的Netscape Navigator在表格方面也存在问题嵌套得非常深(例如,表嵌套得很深)。为了避免出现问题,请避免将表嵌套得太深。您可以使用ROWSPAN(世界其他地区)科尔斯潘属性来最小化表嵌套。

最后,特别要确保验证标记无论何时使用嵌套表。

另请参见

9.2. 如何使用表格构造表单?

小表格有时放在技术总监表中的元素。这对于相对于其他内容定位表单很有用,但这无助于将与表单相关的元素彼此相对定位。

要定位与表单相关的元素,请将整个表必须在表单中。不能在一个窗体中启动窗体技术总监元素并以另一个元素结尾。如果不将表单放入技术总监元素。您可以将表格放入表格中,然后使用表格定位这个INPUT(输入),文本区域,选择以及其他与表单相关的元素,如如以下示例所示。

<表单操作=“[网址]"><表边框=“0”><TR>账户:<TD><INPUT TYPE=“text”NAME=“account”></TD></TR><TR><TH>密码:</TH><TD><INPUT TYPE=“password”NAME=“password”></TD>输入类型=“密码”名称=“密码”></TD></TR><TR><TD></TD><TD><INPUT TYPE=“submit”NAME=“Log On”></TD></TR></表格></FORM>

9.3. 如何将桌子居中?

在HTML中,使用

<div class=“center”><表格></表></div>

在CSS中,使用

div中心{文本对齐:居中;}div.center表{边缘左侧:自动;边缘-右侧:自动;文本对齐:左;}

另请参见

9.4. 如何将表格向右(或向左)对齐?

你可以使用<表ALIGN=“右”>将表格浮动到右边。(使用ALIGN=“左”将其向左浮动。)结束后的任何内容</表格>标签将在桌子周围流动。使用<BR CLEAR=“right”(右)><BRCLEAR=“所有”>标记要围绕的文本的结尾表,如本例所示:

本例中的表格将向右浮动。
<表格align=“right”>...</表格>
此文本将换行以填充左侧的可用空间(如果文本足够长,在下面)表格。
<br clear=“right”>
此文本将显示在表格下方,即使它的左边有额外的空间。

9.5. 我可以使用<TD WIDTH=…>的百分比值吗?

HTML 3.2和HTML 4.0规范只允许使用整数值TD元素的WIDTH属性(表示像素数)。然而,HTML4.0DTD允许百分比(和其他非整数)值,所以HTML验证器不会抱怨<TD宽度=“xx%”>.

应该注意的是,Netscape和Microsoft的浏览器解释<TD WIDTH=…>的百分比值不同。然而,它们的解释(以及其他桌面软件浏览器的解释)与<TABLE WIDTH=“100%”>组合时恰好匹配。在这种情况下,可以相对安全地使用百分比值,甚至尽管它们被公共规范禁止。

9.6. 为什么不<表格宽度=“100%”>使用全浏览器宽度?

图形浏览器在显示区域和内容。

还要注意,Navigator总是在对,但只有当文档足够长时才绘制滚动条需要滚动。如果文档不需要滚动,则这会留下一个右键无法删除的“边距”。

另请参见

9.7. 为什么我的桌子前后有多余的空间?

这通常是由无效的HTML语法引起的。具体来说,它通常是由表中的松散内容引起的(即,不在技术总监元件)。没有标准的方法来处理表中的松散内容。有些浏览器会在表之前或之后显示所有松散的内容。当松散内容仅包含多个换行符或为空时段落,然后这些浏览器将显示所有这些空白在表本身之前或之后。

解决方案是修复HTML语法错误。表中的所有内容都必须在技术总监元素。

9.8. 使用表格进行布局有什么问题吗?

在当前浏览器上,必须下载整个表,并且必须先知道表中所有内容的尺寸,然后才能使用表被渲染。这会延迟内容的呈现,尤其是如果您的表包含没有的图像高度宽度属性。

如果表中的任何内容太宽,无法显示区域,然后扩展表以容纳超大的内容。然后,其余内容将进行调整,以适合超大表格,而不是安装可用的显示区域。这可能会迫使读者水平滚动阅读您的内容,或者可能会导致打印版本被裁剪。

对于显示范围比作者预期的窄的读者,固定宽度的表与其他超大的表会产生相同的问题。对于显示范围比作者预期的要宽的读者,固定宽度的表格会产生极宽的边距,浪费了大量显示区域。对于需要较大字体的读者,固定宽度的表格可能会导致内容以短小的断断续续的行显示,每行只有几个单词。

许多浏览器对表格时的无效语法特别敏感都涉及到了。正确的语法尤其重要。即使语法正确,嵌套表也可能无法在中正确显示旧版本的Netscape Navigator。

一些浏览器忽略表,或者可以配置为忽略表。这些浏览器将忽略您使用表创建的任何布局。此外,搜索引擎会忽略表格。一些搜索引擎使用文档开头的文本来当它出现在搜索结果中时对其进行汇总,并且某些索引仅针对文档的前n个字节。当表格用于布局时,文档的开头通常包含许多导航链接出现在实际内容之前。

许多版本的Navigator在以下情况下链接到命名锚时出现问题它们位于使用排列属性。这些浏览器似乎将命名锚点与表,而不是锚定的内容。您可以通过不使用排列属性。

如果使用表格进行布局,仍然可以最小化相关的仔细标记的问题。避免放置宽图像,之前具有的元素长行、长URL或表中的其他宽内容。使用几个独立的桌子。例如,可以使用表在页面的顶部/底部,并将主要内容完全保留在任何布局表。

另请参见

目录-完整FAQ(HTML)-整个常见问题解答(文本)
上一节-下一节