---
title: "Style i noscript-taggen?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/html-css/151719-style-i-noscript-taggen"
topic: "HTML & CSS"
topic_url: "https://www.webforum.nu/amne/html-css"
author: "Travoni"
published: "2006-09-25T08:56:53.000Z"
updated: "2006-09-27T07:37:46.000Z"
replies: 14
views: 567
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/html-css/151719-style-i-noscript-taggen"
---

# Style i noscript-taggen?

## #1 — Travoni, 2006-09-25T08:56Z

Detta validerar fel på w3c.

```
<noscript>
	<style type="text/css">
			#foo table{ display:none; }
			.bar{ display:block; }
	</style>
</noscript>
```

> **validator.w3.org skrev:**
>
> The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

 Vilket i och för sig inte stämmer.

Dumt att det inte är godkännt. Finns det någon workaround?

Permalänk: https://www.webforum.nu/p/151719

## #2 — @nders, 2006-09-25T08:58Z

Lägg \<style\> utanför \<noscript\> och använd css:en inuti?

Permalänk: https://www.webforum.nu/p/1874186

## #3 — Travoni, 2006-09-25T09:07Z

Nä, då får jag: 

> Line 13 column 11: end tag for element "NOSCRIPT" which is not open.
> 
> 	\</noscript\>
> 
> The Validator found an end tag for the above element, but that element is not currently open

Permalänk: https://www.webforum.nu/p/1874187

## #4 — @nders, 2006-09-25T09:25Z

Öh, hur ser din kod ut då?

jag menade förstås att du skulle lägga hela css-blocket på någonstans som inte är inne i noscript-blocket.

Permalänk: https://www.webforum.nu/p/1874188

## #5 — Travoni, 2006-09-25T09:39Z

Kanske gjorde fel.

```
	<style type="text/css">
             /* Annan CSS */
            <noscript>
			#foo table{ display:none; }
			.bar{ display:block; }
            </noscript> 
	</style>
```

Fel? Hur menade du?

Permalänk: https://www.webforum.nu/p/1874190

## #6 — @nders, 2006-09-25T09:45Z

```
<style>
....
</style>
(typ där du har annan css-kod på sidan)

....

<noscript>
....
</noscript>
```

Permalänk: https://www.webforum.nu/p/1874193

## #7 — Fuel, 2006-09-25T10:50Z

...

Permalänk: https://www.webforum.nu/p/1874204

## #8 — @nders, 2006-09-25T10:55Z

Fuel, man får alltså ha \<link\> var som helst, men \<style\> endast i \<head\>?

Permalänk: https://www.webforum.nu/p/1874205

## #9 — zcorpan, 2006-09-25T11:13Z

NOSCRIPT får endast innehålla blockelement. Blockelement får man inte ha i HEAD och därför får man inte ha NOSCRIPT i HEAD heller. (LINK får endast förekomma i HEAD också.)

Det du vill göra är att ha annan CSS när JS är aktiverat. En enkel lösning på det problemet är att göra såhär:

```
<script type="text/javascript">
 document.body.className += " hasjs";
</script>
```

...och sen lägga till ".hasjs" före dina selektorer (i din vanliga stilmall) som bara ska användas när JS är aktiverat.

Permalänk: https://www.webforum.nu/p/1874210

## #10 — Fuel, 2006-09-25T14:50Z

...

Permalänk: https://www.webforum.nu/p/1874276

## #11 — Troxy, 2006-09-25T18:01Z

Jag slängde ihop ett Javascript som helt enkelt infogar ett stylesheet i ett dokument.

```
<script type="text/javascript">
var linkTag = document.createElement('link');
linkTag.setAttribute('rel','stylesheet');
linkTag.setAttribute('type','text/css');
linkTag.setAttribute('href','javastyle.css');
document.getElementsByTagName('head').item(0).appendChild( linkTag );
</script>
```

Så CSS-koden i filen javastyle.css kommer alltså bara att användas om man har Javascript aktiverat!
Blev riktigt nöjd med lösningen själv måste jag säga  :i

Permalänk: https://www.webforum.nu/p/1874331

## #12 — Travoni, 2006-09-26T10:14Z

Ok, varför inte med document.write?

```
<script type="text/javascript">
    docuement.write('<link rel="stylesheet" href="script.css" type="text/css" />');
</script>
```

Permalänk: https://www.webforum.nu/p/1874535

## #13 — Moberg, 2006-09-26T23:33Z

Därför att link-taggen ska hamna i head-taggen? Antar jag?

Permalänk: https://www.webforum.nu/p/1874846

## #14 — Troxy, 2006-09-27T07:08Z

Moberg, dels det, samt att det är lite modernare och bättre att koda Javascript med hjälp av DOM-metoderna.

Permalänk: https://www.webforum.nu/p/1874885

## #15 — zcorpan, 2006-09-27T07:37Z

SCRIPT kan också förekomma i HEAD så om man lägger document.write()-skriptet i HEAD hamnar länken på rätt plats. Det är inget fel på document.write() egentligen, förutom att det inte är definierat hur det ska fungera i XML ännu (och stöds därför inte i XHTML i webbläsare än). Den praktiska skillnaden mellan DOM-skriptet och document.write()-skriptet är att det senare är lättare att skriva, stöds bättre i webbläsare och är snabbare att köra. (Om DOM-skriptet ska köras i XHTML borde man använda createElementNS() istället.)

Permalänk: https://www.webforum.nu/p/1874891

---

Tråden på webben: https://www.webforum.nu/amne/html-css/151719-style-i-noscript-taggen
