No código abaixo, eu coloquei a folha de estilo interna com a tag body, em vez de ter na cabeça. Para aplicativos de página única, estou pensando em fazer isso apenas para estilos aplicáveis apenas a essa página, em vez de ter um arquivo pagespecific.css separado.
Existe um cenário em que isso tem desvantagem, pois eu não estou colocando o mesmo na seção principal?
<!-- myPartial.html starts here -->
<!-- Like to keep styles unique to this html right here in this file -->
<div>
<style>
body { background-color: red; }
#myText { color: white; }
</style>
<span id='myText'>Hello</span>
</div>
<!-- myPartial.html ends here -->
head
elemento. Uma página HTML sempre tem uma.(Como estamos no SE.SX, uma abordagem mais estratégica pode ser um aumento valioso das considerações técnicas usuais.)
[preâmbulo] A especificação do HTML5 é um alvo em constante movimento e eles têm uma política para acompanhar as práticas comuns estabelecidas. Eles obsoletos e ressuscitaram recursos no passado, mudaram o significado dos outros, mudaram o foco das recomendações metódicas, etc. Não está escrito por toda a eternidade, com toda a sabedoria da humanidade disponível de uma só vez. A especificação não é uma fonte sagrada da verdade. É natural que às vezes os navegadores estejam certos. [/preâmbulo]
A situação do OP é esmagadoramente comum e válida.
Você tem um CMS, com o tema projetado e instalado, todo o CSS carregado corretamente a partir do HEAD, e aí está, o editor de páginas, deixado com uma caixa WYSIWYG moderna que você pode (graças a Deus!) Alternar para o "modo de origem" e digite (cole) na marcação HTML (criada anteriormente em outro lugar, com as ferramentas mais adequadas). Felizmente, você pode até incluir
STYLE
tags (talvez devido a uma omissão acidental em um filtro de tags) ... O dia é salvo, devido a muito trabalho repetitivo que destrói a alma. Mas você ainda não tem meios de interferir com o elemento HEAD do sistema em um cenário de edição de página.Isso deve impedir você de usar seu CSS de maneira direta com seus fragmentos HTML, apenas porque a especificação o diz?
Ou você tem um aplicativo AJAX de página única.
Ele está sendo executado sem recarga por uma longa sessão e há conteúdo sindicalizado vindo de várias fontes aleatórias, todas com estilo arbitrário e independente. Exigir que eles sejam primeiro convertidos para usar apenas
STYLE
atributos inline, em vez de apenas virem com umSTYLE
elemento incorporado , seria absurdo.Além disso: você pode: a) já incorporar qualquer CSS em qualquer lugar nos atributos,
BODY
viaSTYLE
, para que o CSS seja "teoricamente" legal lá; eb) você já pode fazer o que quiser com praticamente qualquer estilo, sempre que quiser (e muito mais) do Javascript, para que o CSS também já seja possível usar indevidamente de maneiras patologicamente não-performáticas. E nenhum de nós jamais objetaria esses recursos. O W3C também não.Então, o que exatamente há de tão mau nos
STYLE
elementos doBODY
? Quais são as implicações adversas extras que isso adicionaria ao nosso amplo arsenal de abuso de construções HTML? Mais desempenho ruim? Provavelmente. As vezes.Esse é um motivo válido para abolir essa prática incrivelmente útil, suportada por todos os navegadores por um motivo? Não em um milhão de milhas!
Nós não somos idiotas. Bem, nem todas, ou nem sempre ...;) Técnicas com risco de baixo desempenho poderiam simplesmente ser documentadas , e não apenas proibidas. Costumávamos ter applets Java nos primeiros dias da Web e sobrevivíamos. Os carros podem ser mal utilizados, causando miséria, até os alimentos podem ser usados de maneiras perturbadoras e ineficientes, e os motoristas que podem comer podem ser, em média, ainda mais estúpidos do que os web designers comuns. Além disso, Prezado W3C, não precisa se preocupar: os rebanhos furiosos de mexilhões em HTML com suas pernas disparadas com
STYLE
elementos noBODY
ainda não podem ir atrás do W3C e se vingar. Eles não sabem o endereço. E eles não têm pernas.Então, por favor: faça sua voz ser ouvida por
STYLE
se tornar legalBODY
! Citar o texto obedientemente, mas não fornecer uma alternativa viável melhor do que a situação atual não ajuda. Na verdade, é uma ameaça para essa técnica de solução alternativa de último recurso.Lembre-se: a especificação HTML5 é chamada de recomendação .
fonte
STYLE
é agora válido emBODY
! ;)A especificação html afirma que
O atributo com escopo definido é um valor booleano, indicando que deve ser aplicado apenas à subárvore enraizada no elemento pai do elemento de estilo.
No momento, apenas o Firefox suporta o atributo com escopo. http://www.w3schools.com/tags/att_style_scoped.asp
fonte
Existem algumas razões técnicas para ter seu css em um arquivo x uma tag de estilo:
Alguns motivos de opinião para usar um arquivo:
Minha preferência pessoal é usar o Compass para manter arquivos separados para cada página e depois usá-lo para compilá-los todos em um arquivo. Esse arquivo único seria incluído em todas as páginas. Se, no futuro, os arquivos precisarem ser separados por qualquer motivo, sempre poderão ser, mas, entretanto, não vale a pena.
fonte