Ola... is het mogelijk om met css het eerste element van iets te selecteren?

Ik heb een tabel met daarin meerdere tabellen. Hieronder een voorbeeldje met een tabel met daarin 1 tabel. Nu wil ik een border zetten om alleen de buitenste tabel. Kan dat zonder dat ik die tabel een id hoef te geven? Ik heb het geprobeerd met table:first-child en table:first-of-type, maar dan pakt ie ook de binnenste tabellen mee. Iemand een idee?



<table>
  <tr>
    <td>
      <table>
        <tr>
          <td>
            foo bar
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

Je bedoelt body > table neem ik aan? Dat werkt inderdaad... ik zat ff te moeilijk te denken :)

Maar als je nu meerdere tables onder elkaar hebt staan en je wilt alleen de 1e selecteren? Dus:


<table> ... </table>
<table> ... </table>
<table> ... </table>
heb je al nth:child geprobeerd?
Nee, niet geprobeerd. De oplossing van HJ werkt op zich wel, maar ik vroeg het me af. Was eventjes in de war :-)
Merk op dat ::first-child alleen het eerste child selecteert, gebruik ::first-of-type om het eerste table element te selecteren.
Oké thanks!
Je kunt hier de aard van de relatie ook omkeren met de breder ondersteunde adjacent sibling selector: table + table {...} geldt voor elke tabel die volgt op een andere tabel en dus niet voor de eerste tabel.
Ik weet niet precies wat je wilt maar kan je dan niet beter met bijv. Jquery werken?
nth:child etc. lijkt me niet echt compatible met veel IE versies.
jQuery voor zoiets. Ach ja, doe maar... :(

Even serieus, dit werkt gewoon met IE9 en hoger en om hiervoor nou 24kb in te gaan laden. Mij niet gezien!
@Ward: thanks voor de tip!

@NK: het is al opgelost ;)

@Wouter: inderdaad, gewoon met css :)

Reageren