Estilo corporal para uma tag noscript?
-
27-09-2019 - |
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?
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;
}