Tästä on jo keskusteltu, mutta jatkan vielä.
ID:tä voi käyttää vain kerran/sivu, classia useita kertoja, mutta mitä sellaista ID tarjoaa, jota class ei? Miksi siis ID:itä pitäisi käyttää?
ID:tä voi käyttää vain kerran/sivu, classia useita kertoja, mutta mitä sellaista ID tarjoaa, jota class ei? Miksi siis ID:itä pitäisi käyttää?
Vastaukset 6
Vanhimmat
*ID:tä voi käyttää vain kerran/sivu, classia useita kertoja*
ID:n käyttökertojen määrä ei mitenkään ole sivukohtainen, ei edes elementtikohtainen mutta on hyvän ohjelmointitavan mukaista käyttää jokaiselle elementille yksikäsitteistä ID:tä semanttisista syistä.
*..mitä sellaista ID tarjoaa, jota class ei? Miksi siis ID:itä pitäisi käyttää?*
ID on CSS:n rankinglistalla korkeammin priorisoitu kuin luokka, esim:
.greenAndBold {color:#00ff00;font-weight:bold;}
#spesiaali_lohko {font-weight:normal;}
Vihreetä ja lihavoitua
Vihreetä ja lihavoitua
Vihreetä normaalitekstiä
Hirveän usein luokkamäärittelyjä ei kyllä tarvitse ohittaa tällä tavalla. Voit myös määritellä useita luokkaattribuuteja
---
...enemmänkin ID:n määrittely elementille on hyödyllisä JavaScriptissä, eli jos sinulla on esim elementti:
---
Voit manipuloida e.m elementtiä ajoaikana JavaScriptillä käyttäen hyväksi DOM (= Document Object Model) ominaisuuksia&metodeja, esim:
document.getElementById("asuntoinfo").style.backgroundColor="#ffff00";
bonapiltti
*ID:n käyttökertojen määrä ei mitenkään ole sivukohtainen, ei edes elementtikohtainen mutta on hyvän ohjelmointitavan mukaista käyttää jokaiselle elementille yksikäsitteistä ID:tä semanttisista syistä.*
Alkuperäinen kysyjä varmaankin tarkoitti, ettei saman nimistä ID:tä saa olla kuin yksi sivua kohden. Sen sijaan erinimisiä ID:tunnisteita saa olla vaikka kuinka paljon sivua kohti. Kuten nimi ID viittaa, sen pitää olla jokaiselle ainutlaatuinen.
**
Miten hyvin selaimet moista juttua tukee?
Tollee olis kätevä määrittää määrittää lisäjuttuja, kuten kehykset jne... jollekkin elementille.
*Alkuperäinen kysyjä varmaankin tarkoitti, ettei saman nimistä ID:tä saa olla kuin yksi sivua kohden. Sen sijaan erinimisiä ID:tunnisteita saa olla vaikka kuinka paljon sivua kohti. Kuten nimi ID viittaa, sen pitää olla jokaiselle ainutlaatuinen.*
Juuh niin varmaan tarkoittikin ja siihen vastasin, kyllä saman ID:n voi määritellä useammalle elementille, mutta siitä tulee yleensä ongelmia koska ID:nhän tarkoitus on yksilöidä tietty elementti (erityisesti JavaScript objektina)
*
**
Miten hyvin selaimet moista juttua tukee?
Tollee olis kätevä määrittää määrittää lisäjuttuja, kuten kehykset jne... jollekkin elementille.*
Toimii ihan hyvin nykyisissä valtaselaimissa, en tiedä miten toimii vanhoissa selaimissa a' la IE4/NN4/Opera6 , mutta ne ovatkin tässä vaiheessa jo museotavaraa.
bonapiltti
Pieni lisäys edelliseen, jokunen on aivan oikeassa että HTML standardin mukaan ID:n on oltava yksikäsitteinen, tarkoitin enemmänkin että mikään ei "hajoa" vaikka samaa ID:tä käyttäisi usealle elementille, mutta ongelmia voi tulla, esim. kun haluaa JavaScriptissä viittauksen objektiin ID:n perusteella.
bonapiltti
Jos haluaa sivujensa menevän läpi validaattorista, ei samaa ID:tä voi kahdesti käyttää :)
Käytännössä olen tehnyt niin, että jos jotakin tiettyä elementtiä on sivulla aina vain yksi, niin käytän ID:tä. Jos tulee useampia, niin sitten vain classia kehiin. Minusta tällainen jaottelu on järkevää jo sen takia, että CSS:ää on paljon helpompi lukea sillä tavoin. Olen myös alkanut määritellä tarkasti elementin jolle määritys kuuluu, esim. div#main tai a.footer:hover - helpottaa kovasti varsinkin kun palaa pidemmän tauon jälkeen jonkin sivun pariin.
Meni ehkä aavistuksen ohi aiheen, mutta ainakin kertoo milloin tästä erilaisuudesta on hyötyä :)
Vanha taittaja - tyypitä ja asettele sillä... eihän taitossakaan kaikki ole "sis. "- vaan ekar. lih. ...jne.
Jos tyypität kaiken "p = xxx" - joudut kumminkin tulemaan takaisinpäin ulkoasussa... tyvestä latvaan ,ja kääntäen...
Helpompi päättää ulkoasu taiton mukana jos käyttää InDesignia ja XML:ää XHTML:ää tai tietokantojen tyypitystä.
Kiire, kiire...montako virhettä jäi?
Paddy