Avatar billede rudi1234 Nybegynder
12. november 2005 - 16:07 Der er 8 kommentarer og
1 løsning

Sæt anden style på 1. instans af et element

Kan man med CSS lave det således at første instans af fx h1 har én style, mens de efterfølgende h1 har en anden?

Det er i et CMS (TYPO3) hvor jeg ikke kan ændre klasse på h1, og jeg vil gerne sikre mig at brugerne, når de opretter indholdelementer med h1-overskrifter, få en større overskrift øverst og en mindre på efterfølgende h1-overskrifter.

Løsningen skal fungere i de mest brugte browsere.

Kan det ikke lade sig gøre, kunne en javascript-løsning evt. accepteres (fx en det løber alle h1 igennem og giver særlig klasse på den første).
Avatar billede stich Nybegynder
12. november 2005 - 17:37 #1
Det lader sig ikke gøre med CSS. Du kunne bruge pseudo-selectoren 'first-child', men den er ikke understøttet af IE (<7). Så du må nok ty til JavaScript...
Avatar billede rudi1234 Nybegynder
12. november 2005 - 18:42 #2
Ja, det er jeg også bange for... og javascript er jo ikke den mest vel-understøttede løsning.

Jeg lader spørgsmålet stå åbent. Hvis der er nogle der har en javascript-løsning, må de gerne melde ind. Hvis det er bedst, kan disse folk bede mig oprette et nyt spørgsmål i javascript-kategorien...
Avatar billede roenving Novice
13. november 2005 - 04:32 #3
Tjah, javascript er jo altså understøttet af samtlige nutidige browsere ...

-- og man kunne f.eks.

<script type="text/javascript">
window.onload = function(){
  document.getElementsByTagName("h1")[0].style.fontSize = "24px";
}
</script>
Avatar billede rudi1234 Nybegynder
13. november 2005 - 06:55 #4
"understøttet af samtlige nutidige" - det har du jo ret i. Smid et svar!

(og gerne en udvidelse af funktionen så den rammer den h1 som ligger inden for container-elementet med id="contentcontainer")
Avatar billede rudi1234 Nybegynder
13. november 2005 - 06:58 #5
Til nysgerrige TYPO3-folk må jeg hellere sige at jeg har fundet en anden løsning i mellemtiden da jeg fandt ud af at TYPO3 faktisk nummererer klassen den DIV der indkapsler h1-elementer.

Denne style rammer den 1. h1:
div.csc-header-n1 H1 {
    noget styling
}

Denne style rammer den x. h1:
div.csc-header-nX H1 {
    noget styling
}
Avatar billede roenving Novice
13. november 2005 - 14:54 #6
Og eksemplet med den første i en bestemt container:

<script type="text/javascript">
window.onload = function(){
  document.getElementById("contentcontainer").getElementsByTagName("h1")[0].style.fontSize = "24px";
}
</script>
Avatar billede rudi1234 Nybegynder
13. november 2005 - 15:13 #7
roenving > du må gerne smide et svar.
Avatar billede roenving Novice
13. november 2005 - 16:58 #8
Velbekomme '-)
Avatar billede roenving Novice
14. november 2005 - 00:38 #9
-- og tak fo0r point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester