I'm trying to set all the <td> elements of my <tr> to be right-aligned except the first one, which I want to be left-aligned. I tried this:
<style>
td { text-align: right };
td:first-child { text-align: left };
</style>
That makes all cells be right-aligned. If I swap the order of those two rows, then all cells are left-aligned. Highly confused. According to w3schools,
The :first-child selector is used to select the specified selector, only if it is the first child of its parent.
But that doesn't seem to be happening for me.
With <tr> tag In this CSS :first-child example, the first row (ie: the first <tr> tag) will have a yellow background color. All other rows in the table will not be styled by the :first-child selector.
You could also have table > thead > tr and then table > tbody > tr. So you might need to specify whether you want the first row from the thead or the tbody. find('tr:first') will select the tr in the thead. – Jeff S.
The ::first-line selector is used to add a style to the first line of the specified selector.
Your syntax was incorrect.
td { text-align: right }; /* This was being applied */
td:first-child { text-align: left }; /* This wasn't.. */
Should be:
td { text-align: right; }
td:first-child { text-align: left; }
Note the semi-colons - they shouldn't be outside of the brackets {}
Other than that, you were using :first-child
properly.
jsFiddle demo
td:nth-child(2) { text-align: right; }
You can do that in one line.
Another option, depending on what you want to do:
table tr td {
background-color:red;}
table tr td:nth-child(1) {
background-color:green;}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With