2010-11-23 24 views
2

如果未啓用JavaScript,我希望我的身體擁有overflow:hidden(無滾動條)。noscript標籤的正文樣式?

我該如何解決這個問題?是否可以在< head>內使用noscript標籤,並在其中設置特定的樣式?

回答

2

我在你<head>會做的工作非常肯定

<noscript> 
    <style type="text/css"> 
     body { 
      overflow:hidden; 
     } 
    </style> 
</noscript> 

但正如另一篇文章所述,爲此目的使用CSS可能會更好,並且啓用JavaScript的瀏覽器溢出。

5

如果您的意思是HTML文檔的<body>,我會爲禁用JS的用戶構建HTML。例如,在CSS文件中有body { overflow:hidden },然後使用JavaScript來設置頁面,因爲它應該適用於啓用了JavaScript的用戶(即使用JavaScript去除overflow:hidden)。

+0

好主意,尤其是現在不推薦使用noscript。 – 2010-11-23 09:59:19

+0

+1!幫我一個忙,省略內聯樣式。這將使它完美:) – jwueller 2010-11-23 10:05:34

+0

是的,我不會在現實生活中使用內聯樣式,但我認爲它會比較緊湊。我將編輯答案:) – JJJ 2010-11-23 10:08:15

1

這可能是一個超級矯枉過正,但只是一般知識:

Modernizr採用一種機制,它建議你把no-js類在你的HTML標記。如果modernizr運行,它將刪除no-js類。使用modernizr會是一種矯枉過正,但你可以自己做。在你的CSS你會:

html.no-js body { 
    overflow:hidden; 
} 
2

它使用的頭段內的<noscript>標籤不是有效(只允許內部<body>),所以你可以使用此解決方案,而不是(HTML5的例子)

<!doctype html> 
<html lang="en"> 
    <head> 
     <script>document.documentElement.className = 'js';</script> 
     <style> 
      body { overflow: hidden; } 
      html.js body { overflow: auto; } 
     </style> 
    </head>