W3C home > Mailing lists > Public > www-style@w3.org > December 2003

Re: Column text color

From: Sandy Smith <ssmith@forumone.com>
Date: Fri, 5 Dec 2003 14:36:27 -0500 (EST)
Message-Id: <413E78EA-275A-11D8-82C7-000393874AC2@forumone.com>
To: Boris Zbarsky <bzbarsky@MIT.EDU>
Cc: www-style@w3.org, Jason Lefkowitz <jlefkowitz@forumone.com>




On Dec 5, 2003, at 12:28 PM, Boris Zbarsky wrote:

> Sandy Smith wrote:
>> http://ln.hixie.ch/?start=1070385285&count=1
>> This is a total off-the-top-of-my-head idea but what about building 
>> in a CSS accessor for the TD element's "header" property? That way as 
>> a table cell is being evaluated, a property like:
>> td::header#myColumn { color: red }
>> ...would take precedence over any definition for a TR element.
>
> How would this work exactly?  That is, how would this be used in an 
> actual document?
>
> -Boris
>

OK, my colleague, Jason Lefkowitz, and I have done a little more 
research, and this is currently supported in Mozilla and Safari, but 
not in IE (Mac or PC):

Example document:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<title>Untitled</title>
	<style type="text/css">
/* <![CDATA[ */
tr.data { color: blue }
td[headers~=myColumn] { color: red }
td.specialCell { background-color: black }
/* ]]> */
	</style>
</head>
<body>
<table>
	<tr>
		<th id="myColumn">Red Text in This Column</th>
		<th>Data</th>
	</tr>
	<tr class="data">
		<td headers="myColumn">this text is red</td>
		<td>This text is blue</td>
	</tr>
	<tr class="data">
		<td headers="myColumn" class="specialCell">this text is red, too</td>
		<td>This text is still blue</td>
	</tr>
</table>

</body>
</html>

Obviously you could achieve the same effect with a normal class, but 
this way you can use a class for other things, and it has a slight 
semantic meaning. And, if I understand the original article's problem 
statement correctly, it overcomes the problem of rows taking precedence 
to the <col> element and is be rendered at the appropriate point. 
Another drawback is that with only a single statement, you couldn't 
define the column with the traditional box model properties applied to 
the column as a whole.

Plus there's the "IE doesn't support it" problem, whereas a class would 
work across browsers.

--
Sandy Smith, Senior Programmer
Forum One Communications, Inc.
ssmith@forumone.com
tel. 703-548-1855 x28
http://www.forumone.com/
Received on Monday, 8 December 2003 05:16:15 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:25 GMT