Razlika između ": nth-child", ": first-child" i ": first-of-type" u CSS-u

Referenca

CSS selektor :nth-child :first-child :first-of-type

Detaljno objašnjenje

Prvo, pogledajmo sljedeći HTML kôd uzorka, kroz ovaj kôd ćemo razumjeti upotrebu tri selektora jedan po jedan.

            <div id="divMain">
    <div>
        <p id="p1">p1</p>
        <div id="div1">div1</div>
        <p id="p2">p2</p>
    </div>
    <p id="p3">p3</p>
    <div id="div2">div2<div>
</div>
<style>
/*css1*/
#divMain div:nth-child(2) {
    color: blue;
}
/*css2*/
#divMain p:first-child {
    color: red;
}
/*css3*/
#divMain p:first-of-type {
    background-color: blue;
}
</style>
        

": N-dijete" je detaljno objašnjeno

Značenje css1 u gornjem kodu je drugi podređeni element i tip je "div", pa je odabran samo div1. div1 je drugi podređeni element u nadređenom spremniku, a tip je "div". p3 je drugi podređeni element nadređenog spremnika, ali nije tipa "div" pa nije odabran. Ako modificiramo stil tako da uklonimo div ispred selektora, tada će biti izabran i p3.

": Prvo dijete" je detaljno objašnjeno

Značenje css2 u gornjem kodu je prvi podređeni element i tip je p, pa je odabran samo p1. p1 je prvi podređeni element u nadređenom spremniku, a tip je "p". Ima slično značenje kao gore: "nth-child". Ako koristite ": nth-child" za prosljeđivanje parametra na 1, učinak je potpuno isti.

": Prva vrsta" detaljno objašnjena

Značenje css3 u gornjem kodu je da je prvi tip podređeni element "p". Razlika ovdje od gornja dva selektora je u tome što se prvo pronađe odgovarajući tip, a zatim se dobije prvi element koji odgovara tipu . Dakle, odabrani su p1 i p3. I p1 i p3 su prvi "p" elementi u nadređenom spremniku.