24

我正在查看使用元素对齐列的W3Schools 演示<COL>

<table width="100%" border="1">
  <col align="left" />
  <col align="left" />
  <col align="right" />
  <tr>
    <th>ISBN</th>
    <th>Title</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>3476896</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
</table>

浏览器对它的渲染并不令人鼓舞:

铬(10.0.648.127):
在此处输入图像描述

火狐 (3.6.8):
在此处输入图像描述

Internet Explorer 9(标准模式):
在此处输入图像描述

Internet Explorer 8(标准模式):
在此处输入图像描述

Internet Explorer 7(标准模式):
在此处输入图像描述

Internet Explorer(怪癖模式): 在此处输入图像描述

有趣的是,它<COL align> 曾经在浏览器中工作,而该功能在 ie8 中被取消了。(而 Chrome 作为所有事物完美的仲裁者,不支持它。)

这让我想知道是否<COL align>是不应该工作的东西。

<COL align>被弃用?


更新一

我知道它还没有被正式弃用。但是浏览器曾经支持它,然后停止支持它的事实让我相信我错过了一些历史故事。我假设有意删除col alignIE 的支持,以及其他浏览器的持续缺乏支持,表明正在发生一些事情。

更新二

我错误地假设不支持<COL>mean<COL>本身的所有功能。我错误地认为,因为我尝试的唯一属性不起作用:元素不起作用。这是我的错误;事后看来,我应该问是否不推荐使用“COL align”(确实如此)。

在我的辩护中,我假设一个例子会显示什么“不再”起作用。

也可以看看

4

6 回答 6

27

是的, 的align属性<col />不再出现在 HTML5 中。规格说!

此外,值得注意的是,在<col />标签上使用 CSS 无法获得类似的结果。属性(或来自、等的style诱导样式)仅考虑适用于列本身的属性。也就是说,虽然每个元素都可以包含文本内容,因此可以具有set 之类的属性,但该元素不包含文本,因此不适用任何文本级样式。(块级的东西仍然有效。)idclass<td />text-align<col />background-color

但是,在不涉及colspanor的基本情况下rowspan,您可以<td />使用 CSS 伪类来选择 s 块(因此在某种意义上是“列”):nth-of-typec3例如,使用类使用使表格的第三列居中

table.c3 td:nth-of-type(3) { text-align: center; }

由 OP 编辑​​:

来自HTML 标准

15 过时的功能
15.2 不合格的功能

以下属性已过时(尽管元素仍然是语言的一部分),并且作者不得使用: ...
align on col元素
...

   改用 CSS。

WHATWG wiki 为各种过时的表示属性提供了一些推荐的替代方案:

Attribute              CSS equivalent
=====================  =====================================
align on col elements  'text-align' on the appropriate td/th
于 2011-03-10T15:41:45.337 回答
4

尝试

<!doctype html>
<html>
  <head>
    <title>Table</title>
    <style>
      table.foo td:nth-of-type(2) {
        font-style: italic;
      }
    </style>
  </head>
  <body>
    <table class="foo">
      <thead>
        <tr> <th>first</th> <th>second</th> </tr>
      </thead>
      <tbody>
        <tr> <td>bar</td> <td>baz</td> </tr>
        <tr> <td>bim</td> <td>buh</td> </tr>
      </tbody>
    </table>
  </body>
<html>

呈现

在此处输入图像描述

于 2012-07-05T23:58:54.627 回答
2

<col>标签未被弃用。

请参阅: 如何正确使用 <col> 标签,所有浏览器都支持它吗? 我认为这个答案澄清了它的用法,并解释了你在使用它时遇到的一些麻烦。

它是 XHTML 和 HTML 5 的一部分。 http://www.tutorialspoint.com/html5/html5_tags.htm

于 2011-03-10T15:02:59.610 回答
0

不,它没有,它是 html4 规范和 html5 规范的一部分。

http://www.w3.org/TR/html401/struct/tables.html#h-11.2.4.2

http://dev.w3.org/html5/markup/col.html

http://www.html-5.com/tags/col-tag/

于 2011-03-10T15:03:28.313 回答
0

为了使标记在语义上有意义,您是否考虑过用 替换您的<col>标签<colgroup>

<col>纯粹用于样式,而<colgroup>可用于对相关列进行分组(也许这就是您打算将其中两个左对齐的原因?)然后您可以将 CSS 应用于各种 colgroup 以相应地设置它们的样式。

于 2011-03-10T16:09:50.737 回答
0

根据 HTML 规范中的第二个示例表,它是 colgroup,尽管缺少 colgroup 标记。

http://www.w3.org/TR/html4/struct/tables.html#h-11.4.1

于 2013-11-12T11:35:07.967 回答