是否弃用了HTML?

时间:2011-03-10 14:59:32

标签: html html5 col

我正在查看W3Schools demo of using the <COL> element to align columns

<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>

浏览器的呈现并不令人鼓舞:

Chrome(10.0.648.127):
enter image description here

FireFox(3.6.8):
enter image description here

Internet Explorer 9(标准模式):
enter image description here

Internet Explorer 8(标准模式):
enter image description here

Internet Explorer 7(标准模式):
enter image description here

Internet Explorer(怪癖模式): enter image description here

有趣的是,<COL align> 使用在浏览器中工作,并且该功能在ie8中被带走。 (而Chrome作为所有事物的完美仲裁者,并不支持它。)

这让我想知道<COL align>是不是假定的工作。

是否已弃用<COL align>


更新一个

据我所知,它尚未正式弃用。但浏览器使用支持它,然后停止支持它的事实让我相信有一些我缺少的历史故事。我假设故意从IE中删除col align支持,并且其他浏览器继续缺乏支持,表明正在发生一些事情。

更新两个

我错误地认为缺少对<COL>的所有功能的支持,意味着<COL>本身不受支持。我错误地认为,因为我尝试的唯一属性不起作用:元素不起作用。这是我的错;并且事后我应该询问是否弃用“COL align”(它是)。

在我的辩护中,我假设一个例子已经显示出“不再”工作了。

另见

7 个答案:

答案 0 :(得分:27)

是的,align的{​​{1}}属性不再出现在HTML5中。 Says the spec!

此外,值得注意的是,您无法在<col />标记上使用CSS获得类似的结果。 <col />属性(或来自styleid的诱导样式等)仅考虑明智地应用于列本身的属性。也就是说,虽然每个class都可以包含文本内容,因此可以设置<td />集等属性,但text-align元素不包含文本,因此不会应用任何文本级样式。 (像<col />这样的块级别的东西仍然有用。)

但是,在不涉及background-colorcolspan的基本情况下,您可以使用CSS伪类选择rowspan s块(在某种意义上是“列”) <td />。例如。使用类:nth-of-type使用

使表格的第三列居中
c3

按OP编辑:

来自The HTML Standard

  

15已过时的功能
  15.2不符合要求

     

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

     

改用CSS。

WHATWG维基为各种过时的presentational attributes提供了一些推荐的替代方案:

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

答案 1 :(得分: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>

哪个renders as

enter image description here

答案 2 :(得分:1)

[edit] Uggh,你改变了你的问题,专门提到了对齐属性。

不,它尚未被弃用。浏览器支持是存在的,但实现和范围是多种多样的。我在使用它时唯一的跨浏览器成功是为整列设置了宽度。

W3的注释:

  • 仅限Firefox,Chrome和Safari 支持span和width属性 colgroup元素。
  • 只有col的宽度属性 在Firefox中工作(没有 其他属性)。

答案 3 :(得分:1)

不推荐使用<col>代码。

请参阅:How to use <col> tag correctly and is it supported in all browser? 我认为这个答案澄清了它的用法,并解释了你遇到的一些麻烦。

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

答案 4 :(得分:0)

答案 5 :(得分:0)

为了使标记在语义上有意义,你考虑过substituting your <col> tags with <colgroup>吗?

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

答案 6 :(得分:0)

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

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