Mitä first-child ja last-child tarkoittaa?

Uteliasmies82

Opettelin CSS 2.1:tä lukemalla Ohjelmointiputkan CSS tiedostoa http://www.ohjelmointiputka.net/css/sisalto.css?1294943964 . Siinä oli seuraava pätkä:

.taulukkoyla a:first-child:last-child, thead tr a:first-child:last-child {
padding: 0 0.25em;
}

Mitä nuo first- ja last-childit ovat ja miksi validaattori valittaa niistä?

9

573

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Lapsielementit ovat äidin alapuolella (sisällä) olevia elementtejä. Esimerkiksi

      eka
      toka
      kolmas
      neljas


      kaikki -elementit ovat tuon -elementin lapsia. Näistä ensimmäinen, eli eka on first-child ja viimeinen eli neljas tietenkin last-child.

      Se, miksi validaattori valittaa, johtuu siitä, että se olettaa validoitavan css-tiedoston olevan versiota css2.1, mutta ainakin tuo last-child -pseudo kuuluu vasta versioon css3.

      • Tässä tapauksessa kai hämärintä on, miksi CSS-koodissa on
        a:first-child:last-child
        koska sehän viittaa vain sellaisiin a-elementteihin, jotka ovat sekä ensimmäisiä että viimeisiä "lapsia". Eli kyseessä on a-elementti, joka on "isänsä" (lähinnä ulomman elementin) ainoa lapsi, esimerkiksi
        foo ... bar


      • Uteliasmies82
        Yucca kirjoitti:

        Tässä tapauksessa kai hämärintä on, miksi CSS-koodissa on
        a:first-child:last-child
        koska sehän viittaa vain sellaisiin a-elementteihin, jotka ovat sekä ensimmäisiä että viimeisiä "lapsia". Eli kyseessä on a-elementti, joka on "isänsä" (lähinnä ulomman elementin) ainoa lapsi, esimerkiksi
        foo ... bar

        Oikeastaan hämärintä oli se, miksi asiaa ei selitetty Meyerin kirjassa "CSS: The Definitive Guide". Näköjään ominaisuus on CSS 3:n speksejä. En tajunnut, että nykyajan selaimet tukevat jo CSS3:a. Käsittääkseni CSS3 on vasta kehitteillä, joten täytyypä etsiä netistä, milloin speksit valmistuvat.


      • Uteliasmies82 kirjoitti:

        Oikeastaan hämärintä oli se, miksi asiaa ei selitetty Meyerin kirjassa "CSS: The Definitive Guide". Näköjään ominaisuus on CSS 3:n speksejä. En tajunnut, että nykyajan selaimet tukevat jo CSS3:a. Käsittääkseni CSS3 on vasta kehitteillä, joten täytyypä etsiä netistä, milloin speksit valmistuvat.

        :first-child-pseudoluokkaa kuuluu kyllä jo CSS 2.1:een.
        CSS3 on todellakin kehitteillä, eikä sen valmistumista tiedä kukaan (mielipiteitä toki maailmaan mahtuu). Selaintuki vaihtelee paljon, eikä tukea oikeastaan voi edes tarkasti määritellä, ennen kuin jonkinlainen CSS3-määrittely on valmis. CSS3 on joukko erillisiä luonnoksia, joista osa on suhteellisen pitkällä, osa näyttää jämähtäneen paikoilleen. Selaintuesta on melko hyvä tiivistelmä osoitteessa
        http://www.quirksmode.org/css/contents.html

        Jos minulle tulisi kiusaus käyttää :first-child- ja etenkin :last-child-pseudoluokkaa, harkitsisin vakavasti muita vaihtoehtoja tai ainakin varmistamista Javascriptillä. Javascriptillähän voisi melko helposti käydä dokumentin läpi ja lisätä jokaisen elementin ensimmäiseen ja viimeisen lapsielementtiin luokan, esim. first-child ja last-child, ja CSS:ssä voisi sitten kirjoittaa
        :first-child, .first-child { ... }


      • Uteliasmies82
        Yucca kirjoitti:

        :first-child-pseudoluokkaa kuuluu kyllä jo CSS 2.1:een.
        CSS3 on todellakin kehitteillä, eikä sen valmistumista tiedä kukaan (mielipiteitä toki maailmaan mahtuu). Selaintuki vaihtelee paljon, eikä tukea oikeastaan voi edes tarkasti määritellä, ennen kuin jonkinlainen CSS3-määrittely on valmis. CSS3 on joukko erillisiä luonnoksia, joista osa on suhteellisen pitkällä, osa näyttää jämähtäneen paikoilleen. Selaintuesta on melko hyvä tiivistelmä osoitteessa
        http://www.quirksmode.org/css/contents.html

        Jos minulle tulisi kiusaus käyttää :first-child- ja etenkin :last-child-pseudoluokkaa, harkitsisin vakavasti muita vaihtoehtoja tai ainakin varmistamista Javascriptillä. Javascriptillähän voisi melko helposti käydä dokumentin läpi ja lisätä jokaisen elementin ensimmäiseen ja viimeisen lapsielementtiin luokan, esim. first-child ja last-child, ja CSS:ssä voisi sitten kirjoittaa
        :first-child, .first-child { ... }

        Hmm. Onkohan CSS:n syntaksi muuttunut versioiden 2.1 ja 3 välillä, vai miksi yllä oleva tiedosto ei ole validia 2.1:ä, mutta CSS3:n mukaan validoinnissa ei ole ongelmia? Toki validaattorissakin voi olla bugeja.

        Totta. Javascriptillä tuon ominaisuuden saa tehtyä helposti.


      • Uteliasmies82
        Uteliasmies82 kirjoitti:

        Hmm. Onkohan CSS:n syntaksi muuttunut versioiden 2.1 ja 3 välillä, vai miksi yllä oleva tiedosto ei ole validia 2.1:ä, mutta CSS3:n mukaan validoinnissa ei ole ongelmia? Toki validaattorissakin voi olla bugeja.

        Totta. Javascriptillä tuon ominaisuuden saa tehtyä helposti.

        Nyt tajusinkin: :first-child kuuluu CSS 2.1:n spekseihin, mutta :last-child astuu kuvioihin vasta CSS 3:n spekseissä.


      • Jejej
        Uteliasmies82 kirjoitti:

        Nyt tajusinkin: :first-child kuuluu CSS 2.1:n spekseihin, mutta :last-child astuu kuvioihin vasta CSS 3:n spekseissä.

        Niin mielestäni CSS3 ominaisuuksia joiden puuttuminen aiheuttaa lähinnä kosmeettista muutosta voi huoletta käyttää, kuten pyöristetyt kulmat..... Niiden puuttumista pystyy IE:llä paikkaamaan jonkinverran esim http://css3pie.com/

        Jos kiinostaa enempi leikkiä CSS3 kanssa niin http://selectivizr.com/ on tutustumisen arvoinen ja kohtuu hyvin toimiva IE6 - IE8 kanssa. Nykyäänhän JS on lähes pakollinen, joten lähes kaikilla IE:n käyttäjistä se on toiminnassa. Toki sivuston olisi syytä myös toimia ilman JS.


      • Jejej kirjoitti:

        Niin mielestäni CSS3 ominaisuuksia joiden puuttuminen aiheuttaa lähinnä kosmeettista muutosta voi huoletta käyttää, kuten pyöristetyt kulmat..... Niiden puuttumista pystyy IE:llä paikkaamaan jonkinverran esim http://css3pie.com/

        Jos kiinostaa enempi leikkiä CSS3 kanssa niin http://selectivizr.com/ on tutustumisen arvoinen ja kohtuu hyvin toimiva IE6 - IE8 kanssa. Nykyäänhän JS on lähes pakollinen, joten lähes kaikilla IE:n käyttäjistä se on toiminnassa. Toki sivuston olisi syytä myös toimia ilman JS.

        Kyllähän niitä kivalta näyttäviä ominaisuuksia voi käyttää, kunhan huolehtii ja tarkistaa, ettei selaimen tukemattomuus niissä aiheuta mitään ongelmia. Tärkeintä on kuitenkin, että sivut toimivat järkevästi kaikissa ympäristöissä, samalta niiden ei tarvitse näyttää.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Lindtman I vasemmistohallitus aloittaa viimein Suomen kuntoon laittamisen

      Tässä nyt on 3 vuotta seurattu irvokasta kärsimysnäytelmää nimeltään "valtion budjetin tasapainotus by äärioikeisto", ja
      Maailman menoa
      155
      2540
    2. Missä viipyy persujen lupaama euron bensa?

      En edes muista milloin bensapumpussa olisi ollut ykkösellä alkava litrahinta. Missä siis viipyy persujen lupaama euron b
      Maailman menoa
      148
      2377
    3. Kirje, PellePelottomalle.

      Tärkeää olisi luoda ystävyys, että se, jota rakastaa, on samalla paras ystävä ja luotettavin, jolle voi ja uskaltaa luot
      Ikävä
      102
      1062
    4. Meni kyllä aika solmuun

      Meidän tutustuminen 😐
      Ikävä
      64
      891
    5. Sinua oli kiihottavaa

      Sinua nainen oli kiihottavaa katsella.
      Ikävä
      65
      829
    6. Persut jakavat tekoälyllä tehtyjä kuvia maahanmuuttajista somessa

      Eivät mainitse, että ovat tekoälyllä tehtyjä. Eivät näe asiassa mitään ongelmaa. Valehtelijapuolue taas vauhdissa. Unka
      Maailman menoa
      274
      717
    7. Mistä löytyy naisseuraa sinkkumiehelle?

      Kertokaapas kokeneemmat mistä löytyis naisseuraa sinkulle. Ihan ois eukko nyt tosissaan hakusessa. Tanssipaikat kun on a
      Kuhmo
      18
      717
    8. Voi teitä naisia

      Suudeltiin ja nukuttiin toisissamme kiinni mutta pillua ei tullu, ei edes aamulla. t.38vmies
      Sinkut
      85
      700
    9. Martinan hevoset.

      Tämä todella kaunis ja ketterä harmaa hevonen jolla monet kilpailut voitetaan ei ole Martinan.Tytär ratsastaa sillä tait
      Kotimaiset julkkisjuorut
      203
      680
    10. Hyvä meininki

      TTP:ssa väkeä tosi runsaasti paikalla. Hyvää ruokaa jälleen ja munkit ja sima erinomaista. Kiitos yrittäjälle! Hieno Vap
      Haapavesi
      22
      658
    Aihe