CSS-lunttilappu

Tämä on suomenkielinen versio Dave Shean julkaisemasta ja ylläpitämästä CSS Crib Sheetista. Käännös: Yoji Hirabayashi. Lupa julkaisuun on pyydetty ja saatu. Mikäli löydät käännöksestä virheitä tai muita epäloogisuuksia, ota yhteyttä. Kiitokset kommenteista ja korjausehdotuksista Pikselille, Zvonalle ja Stüldt HÃ¥jtille.


Käyttäessäsi CSS:ia sivuston suunnittelemiseen, tulet varmasti törmäämään sen oikkuihin ja lyömään päätäsi seinään yrittäessäsi ratkaista ongelmia. Tämä on yritys helpottaa design-prosessia ja tarjota pikainen ohjenuora auttamaan ongelmanratkonnassa.

Mikäli olet epävarma, validoi.
Kun etsit virheitä, voit välttyä paljolta päänsäryltä yksinkertaisesti tarkistamalla koodisi oikeellisuus. Huonosti muotoiltu XHTML / CSS aiheuttaa yllätyksiä.
Suunnittele ja testaa CSS:si edistyneimmällä saatavilla olevalla selaimella ennen kuin muilla. Älä vasta sen jälkeen.
Jos suunnittelet sivuston testaamalla sitä rikkinäisellä selaimella, koodisi alkaa nojata selaimen väärään esitystapaan. Kun edessä on testausta edistyneemmillä selaimilla, turhaudut huomatessasi niiden esittävän sivun huonosti. Aloita sen sijaan täydellisyydestä ja käytä tunnettuja menetelmiä kiertääksesi selainkohtaiset ongelmat. Tällä hetkellä edistynein tarkoittaa Mozillaa, Safaria tai Operaa.
Varmistu, että haluttu efekti on olemassa.
On olemassa selainkohtaisia laajennuksia, jotka eivät sisälly viralliseen määrittelyyn [en]. Mikäli yrität liittää suodinta tai esimerkiksi sivupalkin värjäystä, käytät sovelluskohtaista koodia, joka toimii vain IE:ssa. Mikäli validaattori kertoo, että käyttäämäsi koodia ei ole määritelty, on todennäköistä että koodi on sovelluskohtainen, eikä näin ollen toimi muissa selaimissa.
Kun käytät kelluvia (float) elementtejä, hyödynnä clear-ominaisuutta.
Kelluvat elementit ovat pulmallisia eivätkä aina toimi odotetulla tavalla. Mikäli törmäät tilanteeseen, jossa kelluva (float) elementti leviää toisen elementin päälle tai yli tai ei muuten vain toimi haluamallasi tavalla, varmistu että käyttämäsi tapa on oikea. Tutustu Eric Meyerin oppaaseen [en].
Marginaalit pettävät; vältä asettamalla paddingia tai reunusta (border).
Voit joutua kamppailemaan ylimääräisen tyhjän tilan kanssa siellä, missä et sitä halua. Mikäli käytät marginaaleja, on niiden pettäminen todennäköisin syy. Andy Budd [en] kertoo aiheesta enemmän.
Pyri välttämään paddingia/reunuksia (border) ja määrämittaa elementissä.
IE5 laskee laatikkomallin väärin, mikä sotkee asioita. Tämä on kierrettävissä [en], mutta parasta on sivuuttaa asia lisäämällä paddingia ylemmän tason elementtiin, määrämittaisen sisäisen elementin sijaan.
Vältä IE:n tapaa vilauttaa tyylittelemätön sisältö sivua ladattaessa.
Mikäli käytät pelkkää @import-menetelmää ulkoisen tyylitiedoston kanssa, törmäät IE:n tapaan vilauttaa muotoilematon HTML ennen dokumentin muotoilua. Tämä on vältettävissä [en].
Älä käytä min-widthia IE:ssa.
Internet Explorer ei tue sitä mutta kohtelee tiettyyn pisteeseen asti width-ominaisuutta kuin se olisi min-width. Pienellä IE-filtteröinnillä saavutat saman lopputuloksen.
Kokeile vähentää leveyttä.
Joskus pyöristysvirheet aiheuttavat 50% + 50% summaantuvan 100.1%, mikä saattaa rikkoa ulkoasun joissain selaimissa. Kokeile laskea 50% -> 49%:n, tai jopa 49.9%:n.
Osa sisällöstä ei näy IE:ssä.
Tämä saattaa johtua ns. Peekaboo-bugista, varsinkin mikäli se näkyy, kun hiiren kursori viedään linkin päälle. Ongelman kuvaus ja korjaus siihen löytyvät Position is Everything-sivustolta [en].
Tarkkuutta linkkien esittämiseen, mikäli käytät ankkureita.
Mikäli käytät perinteistä ankkuria (<a name="anchor">), huomaat, että myös :hover ja :active pätevät siihen. Välttääksesi tämän, sinun pitää käyttää joko id-tagia ankkurissa tai hieman toisenlaista [en] tapaa: :link:hover, :link:active
”LoVe/HAte” muistisääntö linkkeihin.
Määritellessäsi linkkien pseudo-luokkia, tee se aina tässä järjestyksessä: Link, Visited, Hover, Active. Muuten ne eivät toimi yhdenmukaisesti eri selaimilla. Harkitse myös :focusin käyttöönottoa, jolloin muistisääntö muuttuu muotoon LVHFA (tai ”Lord Vader’s Handle Formerly Anakin”, kuten Matt Haughey [en] ehdotti).
”TRouBLEd” muistisääntö (margin, padding).
Lyhenteet asetetaan aina myötäpäivään (top-right-bottom-left), joten margin: 0 1px 3px 5px; luetaan margin-top 0, margin-right 1px ja niin edelleen.
Määritele mittayksikkö muihin kuin nolla-arvoihin.
CSS vaatii määrittelemään mittayksiköt kaikkiin määreisiin, kuten fonttiin, marginaaleihin ja kokoihin. (Poikkeuksena line-height, joka – omituista kyllä – ei vaadi mittayksikköä.) Ei siis kannata luottaa siihen, että selain osaa arvata mittoja oikein. Nolla on nolla, oli se sitten px, em, tai jokin muu. Yksikköä ei tarvitse määritellä. Esimerkki: padding: 0 2px 0 1em;
Testaa eri kirjainkokoja.
Edistyneemmät selaimet, kuten Mozilla ja Opera, antavat käyttäjälleen mahdollisuuden vaihtaa kirjasimen kokoa mittayksiköstä riippumatta. Koska ihmisillä on käytössä eri perusasetuksia, suurempi tai pienempi kuin omassa käytössäsi, yritä saada sivusto toimimaan mahdollisimman monella kirjainkoolla.
Testaa CSS sisäisenä, julkaise ulkoisena.
Kun työskentelet käyttämällä dokumentin sisäistä tyylitiedostoa, <style type="text/css"> head-osiossa, ennaltaehkäiset mahdolliset selainten välimuisteihin liittyvät virhetilanteet. Tämä on huomioitava erityisesti tiettyjen Mac-selainten kanssa. Viimeistele työsi ulkoistamalla CSS:isi, käyttämällä @import– tai <link>-menetelmää ennen julkaisua.
Käytä reunaviivoja (border) ulkoasussa ilmenevien virheiden etsimisessä.
Yleispätevän säännön, kuten div { border: solid 1px #f00; }, käyttö saattaa helpottaa virheen tarkan sijainnin löytymistä. Reunaviivojen lisääminen tiettyihin elementteihin auttaa sinua löytämään päällekkäisyydet ja ylimääräiset white-space-tilanteet, jotka eivät välttämättä ole itsestäänselvyyksiä.
Vältä lainausmerkkejä kuvien osoitepoluissa.
Kun asetat taustakuvan, vältä lainausmerkkien käyttöä osoitepolussa. Ne eivät ole tarpeellisia ja IE5/Mac tukehtuu niihin.
Mac IE5 tukehtuu tyhjään tyylitiedostoon ja sivun latausaika kasvaa. Lisää tiedostoon yksi sääntö (tai vaikka pelkkä kommentti) tämän välttämiseksi.

Lopuksi muutama huomionarvoinen asia, jotka eivät suoranaisesti liity toiminnallisuuteen, mutta tulee silti ottaa huomioon kehitysvaiheessa:

Organisoi CSS-tiedostosi.
Kommentoi CSS-lohkot asianmukaisesti, ryhmitä selektorit, käytä yhdenmukaista nimeämiskäytäntöä, white-space muotoilua (suositus: yksi välilyönti tabulaattorin sijaan varmistaaksesi muotoilun myös muilla alustoilla) sekä järjestä ominaisuuksien mukaan.
Nimeä luokat (class) ja tunnisteselektorit (id) toiminnallisuuden, älä ulkoasun mukaan.
Mikäli luot luokan .smallblue, ja myöhemmin saatkin pyynnön muuttaa teksti isommaksi ja punaiseksi, nimessä ei ole mitään järkeä. Nimeä ne sensijaan kuvaavasti, kuten .copyright ja .pullquote.
Käytä CSS-filttereitä vasta viimeisenä apukeinona.
CSS-hackit ja -filtterit auttavat liittämään (tai piilottamaan) tietyn säännön tietyiltä selaimilta. Yritä kuitenkin ratkaista ongelma ensin ilman näiden käyttöä, standardinmukaisella tavalla. Niiden käyttö voi kuitenkin joskus pelastaa päiväsi. Lista käytössäsi olevista CSS filttereistä [en].
Yhdistele selektoreita.
Pidä CSS:isi mahdollisimman kevyenä latausaikojen minimoimiseksi. Yhdistä [en] selektoreita ryhmiksi, käytä hyväksesi periytyvyyksiä [en] ja lyhennysmerkintää [en].
Muista esteettömyys, mikäli korvaat tekstiä kuvilla.
Klassisella FIR-menetelmällä [en] on tunnettuja haittapuolia ruudunlukijoiden kanssa. Ongelma esiintyy myös, mikäli kuvien lataus on poistettu käytöstä. Vaihtoehtoja on olemassa [en]; käytä niitä.