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ä?
Mitä first-child ja last-child tarkoittaa?
9
518
Vastaukset
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 ... barOikeastaan 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
Persujen mukaan rasismi on huumoria
Vaan kun koomikko kutsui Halla-ahoa fasistiksi, niin piti haastaa oikeuteen. Mihin se huumorinitaju yhtäkkiä hävisi? ⠀2486409Rasismia kaikkialla näkevät ovat Suomen tyhmimpiä ihmisiä
ja monillahan kuluu myös mielialalääkkeitä, eli päässä on ongelmia. Mutta he eivät tajua kuinka paljon ja ihan todellis1965956Ei kahta sanaa etteikö Petteri Orpo hyväksy rasismia
Koska jatkaa hallituksessa rasistisen perussuomalaisiksi itseään kutsuvan puolueen kanssa. Se on Petteri Orpon arvomaai175499Mitkäs nuorisoporukat ovat toisia nuoria ryöstelleet (selvää rassismia)
No poliisi kertoo, että maahanmuuttajataustaisia ovat, ja isot porukat sillä yhden suomalaisen uhrin kimpussa on ollut j934233Hallitus on kaadettava ja Orpon on erottava
Mikään muu hallitus ei ole oman elämäni aikana tuhonnut näin paljon tämän maan taloutta ja työllisyyttä sekä suomen main1433523Lasse Lehtonen vaatii persuja pyytämään anteeksi aasialaisilta
Persut ova romahduttaneet Suomen maakuvan parissa päivässä negatiiviseksi rasismillaan ja se alkaa vaikuttamaan jo Suome1303333HS 12/25 kysely: persut romahti, demarit raketoi
Kyyti on kylmää persuleirissä, saattaa vetää siellä silmätkin viirulleen. Sen sijaan SDP:n puoluetoimistolla voidaan pok233046Töppö-persut ovat todella tyhmiä
sen kertoo tämäkin avaus: "Persujen suosio vain laskee" Töppö-persu vaan unohtaa, että ennen tätä galluppia persujen kan82502Rasismi rapauttaa Suomen mainetta ja hallituksen hiljaisuus pahentaa vahinkoa
Finnairin viesti Japanista on pysäyttävä: suomalaisen politiikan rasismikohut heijastuvat suoraan matkustuspäätöksiin ja2632449- 1322302