Re: help: styling a column with :first-child?

You wrote:
> Manos M. Batsis wrote:
> 
> > 
> > Hallo,
> > I'm trying to style every first TD in a table so I give:
> > 
> > table tr:first-child{text-align:left;}
> 
> This selects all tr in a table that are also the first child of
> their parent element, ie of a tbody tfoot or thead. Not cells.
> 
> The effect you are looking for can be achieved with the following
> selector :
> 
>    td:first-child, td:first-child { ... }

Not so:

tr:first-child td:first-child { ... }

is what you we require, although this is, in fact, not correct, since 
although it matches the simple case:

<table>
<tr>
<td>

it doesn't match, for example,

<table>
<col>
<tr>
<td>
</table>

So, you really need selectors that aren't standards yet 
[http://www.w3.org/TR/css3-selectors/]:

table > tr:first-of-type > td:first-of-type,
table > tfoot:first-of-type > tr:first-of-type > td:first-of-type,
table > thead:first-of-type > tr:first-of-type > td:first-of-type,
table > tbody:first-of-type > tr:first-of-type > td:first-of-type,
 {
... declarations
}
(the extra selectors there are necessary, to avoid selecting the trs 
inside tfoots, etc.)

In practice,
tr:first-child td:first-child { ... } will do what you want, because
the fancy table elements really aren't used very much.

-- Random fortune
It's trivial to make fun of Microsoft products, but it takes a real man to
make them work, and a god to make them do anything useful.

Received on Thursday, 7 December 2000 11:28:13 UTC