i'm looking at the 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>
And browser's rendering of it is not encouraging:
Chrome (10.0.648.127):
FireFox (3.6.8):
Internet Explorer 9 (standards mode):
Internet Explorer 8 (standards mode):
Internet Explorer 7 (standards mode):
Internet Explorer (quirks mode):
It's interesting to note that <COL align>
used to work in browsers, and the feature was taken away in ie8. (And Chrome, with position of being the arbiter of all things perfect, doesn't support it.)
This makes me wonder if <COL align>
is something that's not supposed to work.
Has <COL align>
been deprecated?
Update One
i understand that it hasn't been formally deprecated. But the fact that browsers used to support it, then stopped supporting it makes me believe that there is some historical story that i'm missing. i assume the intentional removal of col align
support from IE, and the continued lack of support from other browsers, indicates something is going on.
Update Two
i was mistakenly assuming lack of support for all features of <COL>
meant <COL>
itself isn't supported. i mistakenly assumed that since the only attribute i was trying wasn't working: that the element wasn't working. This was my mistake; and in hindsight i should have asked if "COL align" is deprecated (which it is).
In my defense i assumed an example would have been shown what wasn't working "anymore".
[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:
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. Thestyle
attribute (or induced style fromid
,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 liketext-align
set, the<col />
element does not contain text and thus none of the text-level styles apply. (Block-level stuff likebackground-color
still works.)However, in basic cases not involving
colspan
orrowspan
, 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 classc3
useEdit by OP:
From The HTML Standard:
The WHATWG wiki gives some recommended alternatives for various obsolete presentational attributes:
Try
Which renders as:
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
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
No it has not, it is both part of the html4 spec and the html5 spec.
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/