我正在查看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):
FireFox(3.6.8):
Internet Explorer 9(标准模式):
Internet Explorer 8(标准模式):
Internet Explorer 7(标准模式):
Internet Explorer(怪癖模式):
有趣的是,<COL align>
使用在浏览器中工作,并且该功能在ie8中被带走。 (而Chrome作为所有事物的完美仲裁者,并不支持它。)
这让我想知道<COL align>
是不是假定的工作。
是否已弃用<COL align>
?
据我所知,它尚未正式弃用。但浏览器使用支持它,然后停止支持它的事实让我相信有一些我缺少的历史故事。我假设故意从IE中删除col align
支持,并且其他浏览器继续缺乏支持,表明正在发生一些事情。
我错误地认为缺少对<COL>
的所有功能的支持,意味着<COL>
本身不受支持。我错误地认为,因为我尝试的唯一属性不起作用:元素不起作用。这是我的错;并且事后我应该询问是否弃用“COL align”(它是)。
在我的辩护中,我假设一个例子已经显示出“不再”工作了。
答案 0 :(得分:27)
是的,align
的{{1}}属性不再出现在HTML5中。 Says the spec!
此外,值得注意的是,您无法在<col />
标记上使用CSS获得类似的结果。 <col />
属性(或来自style
,id
的诱导样式等)仅考虑明智地应用于列本身的属性。也就是说,虽然每个class
都可以包含文本内容,因此可以设置<td />
集等属性,但text-align
元素不包含文本,因此不会应用任何文本级样式。 (像<col />
这样的块级别的东西仍然有用。)
但是,在不涉及background-color
或colspan
的基本情况下,您可以使用CSS伪类选择rowspan
s块(在某种意义上是“列”) <td />
。例如。使用类:nth-of-type
使用
c3
按OP编辑:
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:
答案 2 :(得分:1)
[edit] Uggh,你改变了你的问题,专门提到了对齐属性。
不,它尚未被弃用。浏览器支持是存在的,但实现和范围是多种多样的。我在使用它时唯一的跨浏览器成功是为整列设置了宽度。
W3的注释:
答案 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)
不,它没有,它是html4规范和html5规范的一部分。
http://www.w3.org/TR/html401/struct/tables.html#h-11.2.4.2
答案 5 :(得分:0)
为了使标记在语义上有意义,你考虑过substituting your <col>
tags with <colgroup>
吗?
<col>
纯粹用于样式,而<colgroup>
可用于对相关列进行分组(也许这就是为什么你打算将它们中的两个对齐?)然后你可以将CSS应用于各种colgroups相应地设计它们。
答案 6 :(得分:0)
根据HTML规范中的第二个示例表,它是colgroup,尽管缺少colgroup标记。