/ 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
Forskellen på CSS id's
Fra : Jahirah


Dato : 02-02-10 23:11

Jeg synes det er pinligt at spørge om, men jeg har aldrig rigtig
lært det grundliggende i CSS og derfor føler jeg mig lidt nød til
at spørge, bl.a for at opnå bedre forståelse.

Hvad er forskellen på div#ID og #ID?

Hver side kan kun have 1 element pr. ID ifølge standarderne.
Men jeg kan ikke rigtig sætte en finger på om der er forskellen
på brugen af div#ID og #ID.
Nogle af de templates jeg har haft fingre i har bestået
hovedsageligt af div#ID's mens andre ikke har indeholdt én
eneste...

//Jahirah

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Johan Holst Nielsen (02-02-2010)
Kommentar
Fra : Johan Holst Nielsen


Dato : 02-02-10 23:50

Jahirah wrote:
> Jeg synes det er pinligt at spørge om, men jeg har aldrig rigtig
> lært det grundliggende i CSS og derfor føler jeg mig lidt nød til
> at spørge, bl.a for at opnå bedre forståelse.
>
> Hvad er forskellen på div#ID og #ID?
>
> Hver side kan kun have 1 element pr. ID ifølge standarderne.
> Men jeg kan ikke rigtig sætte en finger på om der er forskellen
> på brugen af div#ID og #ID.
> Nogle af de templates jeg har haft fingre i har bestået
> hovedsageligt af div#ID's mens andre ikke har indeholdt én
> eneste...

Det kan være af flere årsager.

1. (Og nok den mest brugbare) - er for at fortælle evt. andre udviklere
- eller en selv, når man kommer tilbage senere til CSS filen - at ID'et
er tilkoblet en DIV. Det kan reelt set være at betragte som en form for
"kommentar". Det kan være praktisk, da f.eks. et SPAN element og et DIV
element har forskellige egenskaber (pr. standard).

2. (Og nok den mere tvivlsomme) - er at der bruges samme ID til flere
ting. F.eks. hvis man har et side, hvor indholdet ligger i en tabel - og
en anden hvor indholdet ligger i en div, kan man bruge henholdvis div#ID
eller table#ID til at style elementerne med.

Derudover kan der selvfølgelig også være tale om at nogle brugere,
simpelthen ikke ved et ID er unikt - og derfor bruger den som et
alternativ til class ;)

Men ovenstående 2 er reelt gæt. Der er ingen praktisk forskel på den ene
eller anden.

Mvh
Johan

Birger Sørensen (03-02-2010)
Kommentar
Fra : Birger Sørensen


Dato : 03-02-10 00:05

Johan Holst Nielsen har bragt dette til os:
> Jahirah wrote:
>> Jeg synes det er pinligt at spørge om, men jeg har aldrig rigtig
>> lært det grundliggende i CSS og derfor føler jeg mig lidt nød til
>> at spørge, bl.a for at opnå bedre forståelse.
>>
>> Hvad er forskellen på div#ID og #ID?
>>
>> Hver side kan kun have 1 element pr. ID ifølge standarderne.
>> Men jeg kan ikke rigtig sætte en finger på om der er forskellen
>> på brugen af div#ID og #ID.
>> Nogle af de templates jeg har haft fingre i har bestået
>> hovedsageligt af div#ID's mens andre ikke har indeholdt én
>> eneste...
>
> Det kan være af flere årsager.
>
> 1. (Og nok den mest brugbare) - er for at fortælle evt. andre udviklere
> - eller en selv, når man kommer tilbage senere til CSS filen - at ID'et
> er tilkoblet en DIV. Det kan reelt set være at betragte som en form for
> "kommentar". Det kan være praktisk, da f.eks. et SPAN element og et DIV
> element har forskellige egenskaber (pr. standard).
>
> 2. (Og nok den mere tvivlsomme) - er at der bruges samme ID til flere
> ting. F.eks. hvis man har et side, hvor indholdet ligger i en tabel - og
> en anden hvor indholdet ligger i en div, kan man bruge henholdvis div#ID
> eller table#ID til at style elementerne med.
>
> Derudover kan der selvfølgelig også være tale om at nogle brugere,
> simpelthen ikke ved et ID er unikt - og derfor bruger den som et
> alternativ til class ;)
>
> Men ovenstående 2 er reelt gæt. Der er ingen praktisk forskel på den ene
> eller anden.
>
> Mvh
> Johan

#ID sætter værdier for et hvilket som helst element, med id="ID".
div#ID sætter værdier for en div med id="ID"

Som John er inde på, skal id være unikt i et dokument, så den praktiske
forskel er minimal. Mest et spørgsmål om hvordan man læser sin CSS..

Birger

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



Rune Jensen (03-02-2010)
Kommentar
Fra : Rune Jensen


Dato : 03-02-10 00:11

Johan Holst Nielsen skrev:

> 2. (Og nok den mere tvivlsomme) - er at der bruges samme ID til flere
> ting. F.eks. hvis man har et side, hvor indholdet ligger i en tabel - og
> en anden hvor indholdet ligger i en div, kan man bruge henholdvis div#ID
> eller table#ID til at style elementerne med.

Der kan også være en tredje, eftersom det har været diskuteret en teori
om, at der er en performance-optimering i at være så specifik som muligt.

Idéen skulle så være, at i og med, man specificerer hvor den ID (eller
class for den sags skyld) hører til, skal browseren arbejde mindre for
at finde den i DOMen (tror det er sådan noget lignende).

Hvis man forudsætter, at der _er_ noget performance at hente, kan man
kommentere som så:

1. Jo mere specifik man er, des mere vil ens CSS fylde. Derfor er det
vigtigt, at det kan cashes. Der må så også være et skæringspunkt for,
hvor det kan betale sig og hvor ikke.

2. Man riskerer at begrænse sig for meget, hvis man er alt for specifik.

Jeg kan ikke huske, hvor jeg har læst det med performance, desværre, så
jeg kan ikke sige, om det passer, men det er jo så alle tiders chance
for andre til at skyde teorien ned, hvis det er.

Men at performance generelt har en del at sige, det vil jeg nu godt være
med til. Yahoo har lavet flere forsøg, som beviser dette. Bare ét
sekunds længere "svartid", og brugerne kan blive så utålmodige, de
finder et andet site.


MVH
Rune Jensen

Rune Jensen (03-02-2010)
Kommentar
Fra : Rune Jensen


Dato : 03-02-10 01:46

Rune Jensen skrev:

> Idéen skulle så være, at i og med, man specificerer hvor den ID (eller
> class for den sags skyld) hører til, skal browseren arbejde mindre for
> at finde den i DOMen (tror det er sådan noget lignende).

Hm. OK, det lader til at være misforstået. I hvert fald siger Mozilla

https://developer.mozilla.org/en/Writing_Efficient_CSS

div#id

tager længere tid end

#id

Men om det betyder noget synligt, ved jeg så ikke. Der er vidst ret
stort uenighed blandt de "lærde", om det kan betale sig at gå igennem
sin CSS og optimere på denne måde, som Mozilla anbefaler. Men iøvrigt er
der en del tests for dem, som finder det interessant, rundt om på nettet.

Så vidt jeg kan se på de forskellige udtalelser, skal man dog op i en
del antal "ikke-optimerede" regler, før det kan mærkes som en reel slowdown.



MVH
Rune Jensen

Bertel Lund Hansen (03-02-2010)
Kommentar
Fra : Bertel Lund Hansen


Dato : 03-02-10 01:52

Rune Jensen skrev:

> Men om det betyder noget synligt, ved jeg så ikke. Der er vidst ret
> stort uenighed blandt de "lærde", om det kan betale sig at gå igennem
> sin CSS og optimere på denne måde, som Mozilla anbefaler.

Jeg vil på det kraftigste advare mod at tidsoptimere noget som
helst hvis man ikke er spilprogrammør og sidder med tidskritiske
afsnit der skal kodes i assembler, eller med store databaser der
skal betjene mange samtidige brugere.

Skriv filerne så de er så nemme som muligt at læse og rette i for
udenforstående. Det vil man selv sætte pris på den dag man vender
tilbage til noget kode efter et par måneder.

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

Rune Jensen (03-02-2010)
Kommentar
Fra : Rune Jensen


Dato : 03-02-10 05:03

Bertel Lund Hansen skrev:
> Rune Jensen skrev:
>
>> Men om det betyder noget synligt, ved jeg så ikke. Der er vidst ret
>> stort uenighed blandt de "lærde", om det kan betale sig at gå igennem
>> sin CSS og optimere på denne måde, som Mozilla anbefaler.
>
> Jeg vil på det kraftigste advare mod at tidsoptimere noget som
> helst hvis man ikke er spilprogrammør og sidder med tidskritiske
> afsnit der skal kodes i assembler, eller med store databaser der
> skal betjene mange samtidige brugere.

Og performance er ikke interessant for f.eks. webshops, så?

Ovenstående med uoptimerede CSS-regler har godt nok intet at sige for
nogensomhelst, maksimum ligger på noget, der ligner 5ms for et worst
case på 750 uoptimerede regler (facebook). Men det fandt jeg så ud af
langt senere, og efter længere søgning og granskning af de forskellige
tests. Jeg vidste det ikke på forhånd, ellers havde jeg skrevet det. Men
performance i sig selv er skam ikke bare "ligegyldigt", heller ikke for
mindre sider. Du skriver om det, som om det er et tabu, man helst skal
holde sig langt væk fra, hvilket jeg simpelthen ikke forstår. Hvorfor
skal det være "store databaser", før performance og tidsoptimering er
interessant? Det er kun 2-3 mennesker i hele verden, det kan have
interesse for, så?

> Skriv filerne så de er så nemme som muligt at læse og rette i for
> udenforstående. Det vil man selv sætte pris på den dag man vender
> tilbage til noget kode efter et par måneder.

Performance på CSS var ikke subject, men et sidespor. Det kom sig af min
(mulige) forklaring til, hvorfor nogen vælger én form for regler, mens
andre vælger en anden, som giver samme resultat. Derfor følte jeg ikke i
første omgang forpligtet til at undersøge nærmere eller underbygge
rigtigheden af drt, men lagde det ud som åbent spørgsmål. Jeg vidste
bare, det havde været diskuteret på et mere seriøst plan, ikke andet.

Og som sagt, selv om nogen altså har interesseret sig nok for det til
både at lave egentlige tests og skrive afhandlinger om det, så har lige
dette med uoptimerede CSS-regler ikke noget at sige. Men lad være med at
tro, at performance generelt er ligegyldigt ting, for det er simpelthen
ikke korrekt. Specielt ikke ved web2.0, hvor AJAX er involveret, eller
ved portaler eller ved webshops. Og sikkert også mange andre steder på
ganske alm. sider. Nedskalering af billeder i browseren er en ganske
alm. forekommende performance-udfordrende (tidskrævende) ting, som nok
alle nybegndere oplever, som eksempel. Det kan virkelig få en side til
at hakke, og jeg vil bestemt ikke sige det er "ligegyldigt", tværtimod.


MVH
Rune Jensen

Rune Jensen (03-02-2010)
Kommentar
Fra : Rune Jensen


Dato : 03-02-10 06:34

Rune Jensen skrev:

> Nedskalering af billeder i browseren er en ganske
> alm. forekommende performance-udfordrende (tidskrævende) ting, som nok
> alle nybegndere oplever, som eksempel. Det kan virkelig få en side til
> at hakke, og jeg vil bestemt ikke sige det er "ligegyldigt", tværtimod.

Jeg må nok understrege, at jeg er _ikke_ uenig med Bertel i, at det for
langt de fleste kan betale sig at sætte læsbarhed over performance. Og
lige med uoptimeret CSS, er dette netop også, hvad testene viser:

http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/

Der, hvor jeg er uenig, meget uenig, er, at det ikke er interessant for
nybegyndere, begyndere, lettere øvede i det segment at tidsoptimere, for
det er det. Man kan så kalde det noget andet, f.eks. bedre
brugervenlighed, når man eksempelvis skalerer et billede i et
fotoediteringsprogram i stedet for i browseren, eller bruger JPEG til
fotos i stedet for PNG eller GIF, men resultatet vil stadig være en
hurtigere side.

Alle webdesignere kan have gavn af at tænke i tid, for i sidste ende vil
det gavne ens brugere. At tro alle ens brugere sidder på et 20mb, bare
fordi man selv gør, det er ikke smart. Men der er forskelle på, hvor
meget, man skal gå op i de forskellige former for tidsoptimering i
forhold til sidens funktion og i forhold til, hvor avanceret den er,
samt evt. antallet af samtidige brugere. Derfor er det heller ikke alle
"best practises", man behøver følge.

Se f.eks.:
http://developer.yahoo.com/performance/rules.html

Reglen om skalering af billeder samt andre regler for images ligger
iøvrigt næsten nederst.


MVH
Rune Jensen

Stig Johansen (03-02-2010)
Kommentar
Fra : Stig Johansen


Dato : 03-02-10 09:00

Bertel Lund Hansen wrote:

> Jeg vil på det kraftigste advare mod at tidsoptimere noget som
> helst hvis man ikke er spilprogrammør og sidder med tidskritiske
> afsnit der skal kodes i assembler, eller med store databaser der
> skal betjene mange samtidige brugere.

Læste du den artikel Rune linkede til?

Så vidt jeg kan udlede, så omhandler den god kodeskik, og best practice, og
ikke enkelte optimeringer.

Hvis man starter med at indarbejde god kodeskik, giver det bedre
performance, og vel at mærke _uden_ at bruge tid på enkeltoptimeringer.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (03-02-2010)
Kommentar
Fra : Rune Jensen


Dato : 03-02-10 12:07

Stig Johansen skrev:

> Hvis man starter med at indarbejde god kodeskik, giver det bedre
> performance, og vel at mærke _uden_ at bruge tid på enkeltoptimeringer.

Mozilla taler om Best Practise, som vel er noget, man ved, *inden* man
starter på sit arbejde, mens testene og også konklusionen på de test
beskægtiger sig med de best practises i forb. med optimering. Det er
faktisk to forskellige måder at se det på, hvilket nok også forvirrede
mig, for optimering forudsætter jo, at arbejdet *er* lavet, og at man
først her begynder at kigge på at forbedre koden.

Her er konklusionen meget klar, at som optimeringsmodel, der kan disse
Best Practise ikke anbefales - man får simpelthen nul ud af det set i
forhold til det man vil vinde ved at optimere ved andre ting i stedet,
f.eks. ukritisk brug af :hover (ikke nærmere underbygget, men det står der).

Men... som du skriver, hvis de Best Practise er indarbejdet fra start,
så vil alt hvad man tjener være ganske gratis derefter. Også selv om det
kun er 5 ms. Hvis jeg kan få 5 ms ganske gratis uden at gøre noget
ekstra arbejde, men simpelthen fordi jeg har den viden, så vil jeg da
gøre det...

Jeg har forstået de første regler, så. Men en del af det er simpelthen
gibberish for mig, desværre, f.eks. under inheritanse. XUL og RDF siger
mig mindre end intet, bortset fra, det første vidst er noget intern
joking med Ghostbusters.


MVH
Rune Jensen

Stig Johansen (03-02-2010)
Kommentar
Fra : Stig Johansen


Dato : 03-02-10 13:00

Rune Jensen wrote:

> for optimering forudsætter jo, at arbejdet *er* lavet, og at man
> først her begynder at kigge på at forbedre koden.

Nej, hvis man fra start tænker i optimerede banewr, og faktisk også let
læselige, så vil resultatet automatisk være optimeret kode.

> XUL og RDF siger
> mig mindre end intet, bortset fra, det første vidst er noget intern
> joking med Ghostbusters.

Tænker du på ZUUL?

XUL er 'yet another language', som om vi ikke har nok.
Tænk hvis vi havde lige så mange varianter over HTML, som der er varianter
over sprog.

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (05-02-2010)
Kommentar
Fra : Erik Ginnerskov


Dato : 05-02-10 12:10

Jahirah wrote:
> Jeg synes det er pinligt at spørge om, men jeg har aldrig rigtig
> lært det grundliggende i CSS og derfor føler jeg mig lidt nød til
> at spørge, bl.a for at opnå bedre forståelse.
>
> Hvad er forskellen på div#ID og #ID?
>
> Hver side kan kun have 1 element pr. ID ifølge standarderne.
> Men jeg kan ikke rigtig sætte en finger på om der er forskellen
> på brugen af div#ID og #ID.

Man kan betragte det sådan, at hvis du i css skriver div#id for at tilpasse
en bestemt div på en side, afskærer du dig selv fra at bruge samme
css-definition på f.eks. en p på en anden side.

Hvis du derimod i css nøjes med at skrive #id, kan du på enhver side selv
vælge hvilket element, der skal have den pågældende definition.

--
Med venlig hilsen
Erik Ginnerskov
http://ginnerskov.dk - http://html-faq.dk



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

Månedens bedste
Årets bedste
Sidste års bedste