Is html <COL align> deprecated?

你。 提交于 2019-11-30 10:58:23

Yes, the align attribute of <col /> no longer appears in HTML5. Says the spec!

Also, it's worth noting that you can't achieve a similar result using CSS on the <col /> tag. The style attribute (or induced style from id, class, etc.) only takes into account properties that sensibly apply to the column itself. That is, while each <td /> can contain text content and thus can have attributes like text-align set, the <col /> element does not contain text and thus none of the text-level styles apply. (Block-level stuff like background-color still works.)

However, in basic cases not involving colspan or rowspan, you can select blocks of <td />s (and thus "columns" in a sense) by using the CSS pseudo-class :nth-of-type. E.g. to center the third column of the table with class c3 use

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

Edit by OP:

From The HTML Standard:

15 Obsolete features
15.2 Non-conforming features

The following attributes are obsolete (though the elements are still part of the language), and must not be used by authors: ...
align on col elements
...

   Use CSS instead.

The WHATWG wiki gives some recommended alternatives for various obsolete presentational attributes:

Attribute              CSS equivalent
=====================  =====================================
align on col elements  'text-align' on the appropriate td/th
bastian

Try

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

Which renders as:

[edit] Uggh, you changed your question to refer specifically to the align property.

No, it hasn't been deprecated. Browser support is there but the implementation and extent are varied. The only cross-browser success I've really had in using it has been with setting widths for entire columns.

Notes from W3:

  • Firefox, Chrome, and Safari only support the span and width attributes of the colgroup element.
  • Only the width attribute [of the col element] works in Firefox (none of the other attributes).
Brad

The <col> tag is not deprecated.

See: How to use <col> tag correctly and is it supported in all browser? I think this answer clarifies its usage, and explains some of the trouble you are having with it.

It is part of XHTML and HTML 5. http://www.tutorialspoint.com/html5/html5_tags.htm

In the interest of making the markup semantically meaningful have you considered substituting your <col> tags with <colgroup>?

<col> is purely used for styling whereas <colgroup> can be used to group related columns (Perhaps this is why you intend to align two of them left?) You can then apply CSS to the various colgroups to style them accordingly.

According to the second example table in the HTML spec, it’s colgroup, despite the lack of colgroup tags.

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!