Pergunta

Se nenhum javascript estiver ativado, quero que meu corpo tenha overflow:hidden (sem barras de rolagem).

Como posso resolver isso? É possível usar uma etiqueta de noscript dentro deu003Chead> e definir estilos específicos dentro dele?

Foi útil?

Solução

Eu tenho certeza

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

na tua <head> faria o trabalho.

Mas, como afirmado no outro post, pode ser melhor usar o CSS para esse fim e permitir o transbordamento para navegadores com JavaScript.

Outras dicas

Se você quer dizer o <body> Do documento HTML, eu construiria o HTML como deveria ser para os usuários com JS desativados. Por exemplo, no arquivo CSS tem body { overflow:hidden } e depois use JavaScript para definir a página como deve ser para usuários com JavaScript ativado (ou seja, remova o overflow:hidden com javascript).

Não é válido usando o <noscript> Marque dentro da seção da cabeça (é permitida apenas dentro <body>), para que você possa usar essa solução alternativa (um exemplo html5)

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

Provavelmente é um super exagero, mas apenas para conhecimento geral:

Modernizr usa um mecanismo em que sugere que você coloque o no-js classe na sua tag html. Se o Modernizr for executado, ele remove o no-js classe. Usar o Modernizr seria um exagero, mas você poderia fazer isso sozinho. No seu CSS que você teria:

html.no-js body {
    overflow:hidden;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top