coding-style code - O<STYLE>precisa estar no<HEAD>de um documento HTML?




conventions codes (9)

Estritamente falando, as tags de style precisam estar dentro da head de um documento HTML? O padrão 4.01 implica isso, mas não é explicitamente declarado:

O elemento STYLE permite que os autores coloquem regras de folha de estilo no cabeçalho do documento. O HTML permite qualquer número de elementos STYLE na seção HEAD de um documento.

Digo "estritamente falando" porque tenho um aplicativo que coloca elementos de estilo dentro do corpo e todos os navegadores com os quais testei parecem usar os elementos de estilo. Eu só estou querendo saber se isso é legal.


Answers

Enquanto as outras respostas estão corretas, fico surpreso que ninguém tenha explicado onde os padrões proíbem estilos fora da head .

Na verdade, está na seção The head Element (e no DTD ):

<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->

Sim eu conheço. DTDs são difíceis de ler.

Este é o único lugar onde o elemento STYLE ocorre, então implicitamente é inválido em outro lugar.


style deve ser incluído apenas no head do documento.

Além do ponto de validação, uma advertência que pode interessá-lo ao usar o style no body é o flash do conteúdo não-estilizado . O navegador obteria elementos que seriam estilizados após serem exibidos, fazendo com que eles mudassem de tamanho / forma / fonte e / ou piscar. Geralmente é um sinal de mau artesanato. Geralmente você pode se safar colocando o style onde quiser, mas tente evitá-lo sempre que for possível.

O HTML 5 introduziu um atributo com scoped que permitia que as tags de style fossem incluídas em todos os lugares do corpo, mas elas foram removidas novamente.


De acordo com este site, o HTML5.1 (em rascunho) e o WHATWG permitem que a tag <style> seja colocada no corpo:

http://www.html.am/tags/html-style-tag.cfm

Também parece ter sido suportado pelos navegadores por um bom tempo. De acordo com esta resposta do , o Firefox 3+, IE6 +, Safari 2+ e o Chrome 12+ suportam:

https://.com/a/10989663/297793


Uma tag de estilo em qualquer lugar, mas dentro do <head> , não será validada com as regras do W3C.


Eles não devem sair da cabeça, mas eles trabalham de qualquer maneira; embora você possa notar uma rápida cintilação. O site não deve validar com a tag de estilo fora da cabeça, mas isso realmente importa? Além disso, as tags de link também funcionam fora da cabeça, mesmo que não devam.


A recomendação HTML5.2 W3C, de 14 de dezembro de 2017 (não o rascunho anterior mencionado acima) agora diz que você pode incluir <style> .

"No corpo, onde o conteúdo de fluxo é esperado." (seção 4.2.6)


Você pode usar tag de estilo dentro da seção de cabeça ou seção do corpo ou também fora da tag html também (o lado externo html não é recomendado). Em tempo real projetos muitas vezes você pode ver que eles usam tag de estilo fora do lado da tag html



Assim que a página é carregada, a função init é disparada e a página é redirecionada:

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <script>
            function init()
            {
               window.location.href = "www.wherever.com";
            }
        </script>
    </head>

    <body onload="init()">
    </body>
</html>




html coding-style html-head