javascript som aktiverar annan css?

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Karlstad
  • 2005-09-11 16:44

Jag har bestämt för mig att jag sett detta tidigare. Har Googlat utan resultat.

Söker ett javascript som exekveras onload i body-taggen som gör att en stylesheet EFTER bodytaggen tar över istället för stilarna som finns FÖRE samma tagg.

Danne

Jag vet inte om det går, men jag skulle INTE rekommendera det.
Anledningen är enkel, "style"-taggar ska inte användas i "body"-taggen utan bara i "head"-taggen.
Jag citerar HTML 4.01 Specification: "The STYLE element allows authors to put style sheet rules in the head of the document. HTML permits any number of STYLE elements in the HEAD section of a document."

  • Medlem
  • Karlstad
  • 2005-09-12 07:33

Tack för förmaningen.

Nu vill jag ju inte göra det här för att det är kul, utan för att jag inte KAN styra innehållet i head. Om jag kunde det skulle jag ju inte ha skäl att ställa frågan, eller hur?

Dessutom: W3C är ju i stora stycken bra, men man ska ha klart för sig att dom också är ute och cyklar då och då. Glöm inte att deras standard är en bunt REKOMMENDATIONER, och inga regler. Vi är ju alla olika, och medan många stirrar sig blinda på deras validering så är jag så funtad att jag faktiskt skiter i dom ibland. Om jag tvingas använda en teknik som dom inte gillar, men som är enda utvägen att fixa nåt, så gör jag ju det om mitt sätt fungerar problemfritt i alla webbläsare. Ändamålet helgar medlen.

Klistra in koden nedan i ett dokument och testa i alla webbläsare du kan hitta. Då kommer du att se att båda stiledefinitionerna fungera alldeles utmärkt i varenda en, trots att dom ligger i body.

Kör du sidan genom http://validator.w3.org/ så kommer du också att se att W3C inte alls har något emot den ena av dom.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body>
<style type="text/css">.blue {color: #003399;font-size: 36px;font-weight: bold;}</style>
<p style="color:#CC0000; font-size:36px; font-weight: bold;">Hello world!</p>
<p class="blue">Hello world!</p>
</body></html>

Frågan återstår alltså: var finns ett script som gör det jag försöker göra...

Danne

Det torde väl gå om du skapar css klassen med javascript så ska du enkelt kunna skriva in dem som något annat via javascript. Det kommer krävas en reload av dokumentet oavsett.
Något färdigt script har jag inte men något får du göra själv.

  • Medlem
  • Stockholm
  • 2005-09-16 12:34

Jag är inte säker på att jag förstått frågan rätt men jag tycker det borde fungera att lägga allt mellan <head> och lägga in alternativa stylecheets som du aktiverar onload med javascript. Är det ungefär vad du menar?

Alistapart har en artikel på hur man använder alternativa stylesheets och hur man aktiverar dem med javascript

1
Bevaka tråden