/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
CSS: Hvorfor bruge ID?
Fra : Kurt Hansen


Dato : 01-10-10 18:19

Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
et eksempel hvor det er nyttigt, måske ligefrem et must?

 
 
Birger Sørensen (01-10-2010)
Kommentar
Fra : Birger Sørensen


Dato : 01-10-10 18:39

Kurt Hansen forklarede:
> Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
> ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
> et eksempel hvor det er nyttigt, måske ligefrem et must?

Næppe - det er meget et temperaments-spørgsmål.

Umiddelbart er forskellen på de to, at et id på et HTML element *skal*
være unikt - en tilhørende CSS-class, kan altså kun bruges een gang,
hvor den "almindelige" class kan genbruges flere steder.

Har man clientside scripting, som f.eks. javascript, der skal bruge
elementer (eller data fra elementer), er det en fordel at give disse
elementer et id. Det gør scrptingen mere læselig - sammenhængen mellem
script og html mere indlysende.
Og hvis et sådant element er unikt, bruger man (jeg) ofte id'et frem
for også at tildele en class, hvis den css der skal anvendes ikke skal
kunne genbruges andre steder.
Man kan i øvrigt også blande - altså have et element med et id og
tilhørende css-definition *og* give elementet en class.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (01-10-2010)
Kommentar
Fra : Rune Jensen


Dato : 01-10-10 12:03

On 1 Okt., 19:38, Birger Sørensen <s...@bbsorensen.com> wrote:
> Kurt Hansen forklarede:
>
> > Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
> > ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
> > et eksempel hvor det er nyttigt, måske ligefrem et must?
>
> Næppe - det er meget et temperaments-spørgsmål.

Jeg er så overhovedet ikke enig.

Hold dig til IDer, hvor du kan. Hvis du er usikker på, om du kan holde
dig til én udgave af et element også fremtidigt, så brug class for at
være fremtidssikret. Men som udgangspunkt ID.

Det har intet at gøre med temparament, det er et rent
planlægningsspørgsmål, som de fleste bare ikke gider "spilde" for
meget tid på, og så gætter de. Men jeg ved f.eks. jeg kommer aldrig
til at bruge mere end én DIV til at holde menu, inhold og footer,
derfor skal de sættes med en ID, så jeg nemt og hurtigt kan tilgå de
DIVer individuelt.


MVH
Rune Jensen

Birger Sørensen (01-10-2010)
Kommentar
Fra : Birger Sørensen


Dato : 01-10-10 19:22

Rune Jensen formulerede spørgsmålet:
> On 1 Okt., 19:38, Birger Sørensen <s...@bbsorensen.com> wrote:
>> Kurt Hansen forklarede:
>>
>>> Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
>>> ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
>>> et eksempel hvor det er nyttigt, måske ligefrem et must?
>>
>> Næppe - det er meget et temperaments-spørgsmål.
>
> Jeg er så overhovedet ikke enig.
>
> Hold dig til IDer, hvor du kan. Hvis du er usikker på, om du kan holde
> dig til én udgave af et element også fremtidigt, så brug class for at
> være fremtidssikret. Men som udgangspunkt ID.
>
> Det har intet at gøre med temparament, det er et rent
> planlægningsspørgsmål, som de fleste bare ikke gider "spilde" for
> meget tid på, og så gætter de. Men jeg ved f.eks. jeg kommer aldrig
> til at bruge mere end én DIV til at holde menu, inhold og footer,
> derfor skal de sættes med en ID, så jeg nemt og hurtigt kan tilgå de
> DIVer individuelt.
>
>
> MVH
> Rune Jensen

Klart at det er hurtigere for browseren at finde et element med en
given id, end en given class - og det må derfor også være hurtigere for
den at sætte css'en for id.
Måske ikke temperament, men så vane.
Elementer til layout, giver jeg da også css på id'en, selvom der ikke
er andet at bruge id'et til. Når man ved de er unike. Absolut
positionerede elementer også. Fordi sådan plejer jeg at gøre.
Men det står ingen steder at det skal være sådan. Heller ikke at det
ikke må være omvendt.

Og at det er nemmere eller hurtigere at tilgå en css der starter med #
end en der starter med . er for det første noget vrøvl (med mindre du
er helt urimeligt uorganiseret - hvilket jeg har svært ved at
forestille mig) og for det andet ikke nogen god grund til at bruge
hverken det ene eller det andet.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (01-10-2010)
Kommentar
Fra : Rune Jensen


Dato : 01-10-10 13:28

On 1 Okt., 20:22, Birger Sørensen <s...@bbsorensen.com> wrote:

> Og at det er nemmere eller hurtigere at tilgå en css der starter med #
> end en der starter med . er for det første noget vrøvl (med mindre du
> er helt urimeligt uorganiseret - hvilket jeg har svært ved at
> forestille mig) og for det andet ikke nogen god grund til at bruge
> hverken det ene eller det andet.

En ID uden noget andet er det mest specifikke, man kan blive i sin CSS
overhovedet, og at være specifik *er* en best practise aht. hastighed.
En best practise, som Mozilla, Apple og Google anbefaler, og som jeg
derfor tror mere på end nogen andre herinde.


MVH
Rune Jensen

Birger Sørensen (01-10-2010)
Kommentar
Fra : Birger Sørensen


Dato : 01-10-10 20:35

Rune Jensen kom med følgende:
> On 1 Okt., 20:22, Birger Sørensen <s...@bbsorensen.com> wrote:
>
>> Og at det er nemmere eller hurtigere at tilgå en css der starter med #
>> end en der starter med . er for det første noget vrøvl (med mindre du
>> er helt urimeligt uorganiseret - hvilket jeg har svært ved at
>> forestille mig) og for det andet ikke nogen god grund til at bruge
>> hverken det ene eller det andet.
>
> En ID uden noget andet er det mest specifikke, man kan blive i sin CSS
> overhovedet, og at være specifik *er* en best practise aht. hastighed.
> En best practise, som Mozilla, Apple og Google anbefaler, og som jeg
> derfor tror mere på end nogen andre herinde.
>
>
> MVH
> Rune Jensen

Enig. ID'en er hurtigere for browserne at sætte/tage i anvendelse.

Du skrev *jeg* kan tilgå - hvilket jeg opfattede som editering af
egenskaberne.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (01-10-2010)
Kommentar
Fra : Rune Jensen


Dato : 01-10-10 14:47

On 1 Okt., 21:35, Birger Sørensen <s...@bbsorensen.com> wrote:

> Enig. ID'en er hurtigere for browserne at sætte/tage i anvendelse.
>
> Du skrev *jeg* kan tilgå - hvilket jeg opfattede som editering af
> egenskaberne.

Det har vidst ikke det store at sige ved editering, nej. Man kan
faktisk slet ikke bruge det som kriterie.

Men så må jeg åbenbart udtrykke mig klarere, for jeg misforstod også
dig her. Anyways.

Hvor man med sikkerhed skal bruge ID, er ved spring til afsnit vha.
links og ved "label for" i formularer.

Man kan (skal?) yderligere med stor sandsynlighed bruge det ved DIVer,
som omslutter logo, menu, indhold og sidebar samt footer også, og det
vil sige ved sideinddelinger i layout, hvor delene traditionelt kun
optræder én gang.

I alle andre tilfælde, der må man vælge det optimale efter
omstændighederne, og så vurdere, om det er unikt eller generelt, det
element man vil tilgå.

Analyserer man meget i dybden, kan man nok finde det optimale hvis man
er i tvivl, og nogle gange vil jeg måske også sige, det er en god
idé.

Et eksempel kunne være en liste af kommentarer på en Blog, hvor hver
kommentar skal kunne tilgås for sig. Det er klart, hvis
kommentarboksene har ens udseende, vil netop dette kunne laves med en
class, men skal man ramme noget individuelt for hver kommentar, vile
jeg yderligere bruge ID.

Og det kan f.eks. være, hvis man via JS vil lave et citat fra en
enkelt besked ned til formen, hvor man skriver kommentaren. Jeg ved
faktisk ikke engang, om det kan laves med class alene, i så fald
bliver koden nok ret lang, for man skal rode med indexer osv.

Men som regel er de problemer, man er stillet overfor i forb. med id
vs. class mindre langhårede, og så kan det tit betale sig at gætte. Så
meget koster det heller ikke at ændre class til id i HTMLen og . til #
i CSSen, hvis man gættede forkert.


MVH
Rune Jensen

Rune Jensen (01-10-2010)
Kommentar
Fra : Rune Jensen


Dato : 01-10-10 11:49

On 1 Okt., 19:18, Kurt Hansen <k...@ugyldig.dk> wrote:
> Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
> ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
> et eksempel hvor det er nyttigt, måske ligefrem et must?

En ID er jo kendetegnene ved, der kun er den ene på siden.

Så det kan f.eks. bruges til at springe til et afsnit på siden fra en
indholdsfortegnelse.Eksempel

<p><a href="#afsnit_to">Spring til afsnit to</a></p>
og så længere nede er der afsnit to, der nok som regel begynder med en
overskrift, så:

<h2 id="afsnnit_to">Her er afsnit to</h2>
<p>En hel masse tekst til afsnit to</p>

Når man så klikke på linket, som hedder "Spring til afsnit to", så
scroller siden lynhurtigt til afsnit to.

Andre muligheder er i en form, hvor man bruger label for. Man gør det
sådan:

<input name="navn" type="text" id="navn" />
<label for="navn">Skriv dit navn</label>

Dette betyder, at hvis man som blind havner i det felt med IDen navn,
så vil den fortælle, at man skal skrive sit navn, for det står i
labelelen. Man bruger ID her som et "hængsel" til label, for den kan
vide, hvor teksten hører til.

Der ud over, så kan IDer være en fordel ifbm. javascript, og i sidste
ende er IDer meget hurtigt for browseren at forstå ved både CSS og
javascript, hurtigere end class, så hvis man ved, man kun skal bruge
én udgave af et element, skal man næsten med sikkerhed bruge ID.

Man bruger derfor som regel ID ved logo, headerDIV, menuDIV,
indholdsDIV og footerDIV


MVH
Rune Jensen

Birger Sørensen (01-10-2010)
Kommentar
Fra : Birger Sørensen


Dato : 01-10-10 19:28

Rune Jensen har bragt dette til os:
> On 1 Okt., 19:18, Kurt Hansen <k...@ugyldig.dk> wrote:
>> Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
>> ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
>> et eksempel hvor det er nyttigt, måske ligefrem et must?
>
> En ID er jo kendetegnene ved, der kun er den ene på siden.
>
> Så det kan f.eks. bruges til at springe til et afsnit på siden fra en
> indholdsfortegnelse.Eksempel
>
> <p><a href="#afsnit_to">Spring til afsnit to</a></p>
> og så længere nede er der afsnit to, der nok som regel begynder med en
> overskrift, så:
>
> <h2 id="afsnnit_to">Her er afsnit to</h2>
> <p>En hel masse tekst til afsnit to</p>
>
> Når man så klikke på linket, som hedder "Spring til afsnit to", så
> scroller siden lynhurtigt til afsnit to.
>
> Andre muligheder er i en form, hvor man bruger label for. Man gør det
> sådan:
>
> <input name="navn" type="text" id="navn" />
> <label for="navn">Skriv dit navn</label>
>
> Dette betyder, at hvis man som blind havner i det felt med IDen navn,
> så vil den fortælle, at man skal skrive sit navn, for det står i
> labelelen. Man bruger ID her som et "hængsel" til label, for den kan
> vide, hvor teksten hører til.
>
> Der ud over, så kan IDer være en fordel ifbm. javascript, og i sidste
> ende er IDer meget hurtigt for browseren at forstå ved både CSS og
> javascript, hurtigere end class, så hvis man ved, man kun skal bruge
> én udgave af et element, skal man næsten med sikkerhed bruge ID.
>
> Man bruger derfor som regel ID ved logo, headerDIV, menuDIV,
> indholdsDIV og footerDIV
>
>
> MVH
> Rune Jensen

Jo jo - der er mange gode grunde til at bruge id.
Det har bare ikke noget at gøre med, om man sætter CSS'en på id'et
eller klasse.
Dit eksempel her med id på en input i en form.
Det er sandsynligt at formen indeholder flere inputs og flere labels,
som med god fornuft skal bruge samme CSS - altså class, i modsætning
til det du argumenterer for.
Dine h2ere til bogmærker, vil også kunne/skulle bruge samme css - altså
igen class og ikke id.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Bertel Lund Hansen (01-10-2010)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-10-10 21:16

Kurt Hansen skrev:

> Tro mig, jeg har læst på nettet ... mange steder, men jeg har endnu
> ikke fattet fordelen ved at anvende ID frem for CLASS. Kan nogen give
> et eksempel hvor det er nyttigt, måske ligefrem et must?

Begge dele.

En klasse kan bruges på vilkårligt mange elementer. En id må kun
bruges på ét element på en side.

Hvis man laver et internt link a la

   <a id='bund' href='#bundenafsiden'>Bunden af siden</a>

så må der i sagens natur kun være ét sted linket kan føre til, og
derfor skal der bruges id. Man bliver også nødt til at bruge id
hvis man koder i JavaScript, men det rækker ud over selve
HTML'en. Derudover kan jeg ikke komme i tanker om andre steder
hvor det er nødvendigt.

Nogle mener så det er nyttigt til at identificere elementer som
man rent logisk kun vil have ét af på hver side ved at give dem
id, f.eks. en menu. Det er en smagssag. Selv bruger jeg som
udgangspunkt altid class.

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste