Стиль тела для тега noscript? - PullRequest
       3

Стиль тела для тега noscript?

2 голосов
/ 23 ноября 2010

Если JavaScript не включен, я хочу, чтобы в моем теле было overflow:hidden (без полос прокрутки).

Как я могу решить это? Можно ли использовать тег noscript внутри и установить в нем определенные стили?

Ответы [ 4 ]

5 голосов
/ 23 ноября 2010

Если вы имеете в виду <body> документа HTML, я бы построил HTML, как это должно быть для пользователей с отключенным JS. Например, в файле CSS есть body { overflow:hidden }, а затем используйте JavaScript, чтобы установить страницу, как это должно быть для пользователей с включенным JavaScript (т.е. удалите overflow:hidden с JavaScript).

2 голосов
/ 23 ноября 2010

Недопустимо использование тега <noscript> внутри раздела head (это разрешено только внутри <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>
2 голосов
/ 23 ноября 2010

Я уверен, что

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

в вашем <head> сработает.

Но, как указано в другом посте, может быть лучше использовать CSS для этогоцель и включить переполнение для браузеров с JavaScript.

1 голос
/ 23 ноября 2010

Это, вероятно, супер перебор, но только для общего знания:

Modernizr использует механизм, который предлагает вам добавить класс no-js в свой HTML-тег. Если модернизатор запускается, он удаляет класс no-js. Использование modernizr было бы излишним, но вы могли бы сделать это самостоятельно. В вашем css у вас будет:

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