para paginas metadatos etiquetas estilos enlazar ejemplos codigos basicos html coding-style html-head

paginas - head html



¿<STYLE> tiene que estar en<HEAD> de un documento HTML? (9)

Estrictamente hablando, ¿las etiquetas de style deben estar dentro del head de un documento HTML? El estándar 4.01 implica eso, pero no está explícitamente establecido:

El elemento ESTILO permite a los autores colocar reglas de hojas de estilo en el encabezado del documento. HTML permite cualquier cantidad de elementos STYLE en la sección HEAD de un documento.

Digo "estrictamente hablando" porque tengo una aplicación que pone elementos de estilo dentro del cuerpo, y todos los navegadores con los que he probado parecen usar los elementos de estilo. Me pregunto si eso es legal.


Al igual que las otras respuestas han declarado que en realidad no necesita estar allí. Sin embargo, no validará. Esto puede o no ser importante en este caso, pero tenga en cuenta que la representación de html depende completamente de los navegadores. Por lo que sé, todos los navegadores usados ​​de hoy en día soportarán ponerlo fuera de la cabeza, pero no se puede garantizar eso para los futuros navegadores y las futuras versiones de los navegadores.

Quédate con el estándar y estás más seguro. Cuánto más seguro está para mucho debate.



De acuerdo con las últimas especificaciones de WhatWG y W3C, sí, los elementos de style siempre deben estar en la head . Durante un tiempo, las especificaciones incluían un atributo de scoped para elementos de style que, cuando estaba presente, permitía ubicarlos dentro de un elemento en el cuerpo para diseñar solo los descendientes de ese elemento ... pero esa característica nunca llegó a ningún navegador real (en al menos no sin necesidad de habilitarse a través de un indicador de desarrollador) y se eliminó de ambas especificaciones "debido a la falta de interés del implementador" . En consecuencia, los elementos de style ahora solo están permitidos en contextos que permiten contenido de metadatos, que es solo el encabezado.

(De acuerdo, eso no es del todo cierto: legalmente puedes poner contenido de metadatos, incluidos elementos de style , dentro de un elemento de template dentro del body , pero en realidad no tendrá efecto si estás en un navegador que admite plantillas. Esto es solo una tonto tonto)

La especificación WhatWG tiene esto que decir:

4.2.6. El elemento de style

Categories :

Contenido de metadatos

Contextos en los que se puede usar este elemento :

Donde se espera el contenido de metadatos .
En un elemento <noscript> que es hijo de un elemento <head> .

CTRL-Fing a través de la especificación de una sola página revela que el único elemento cuyo modelo de contenido incluye contenido de metadatos es el elemento principal.

Mientras tanto, la última versión preliminar del W3C contiene términos exactamente idénticos, excepto que también enumeran el contenido de los metadatos en el modelo de contenido de los elementos de la template . (WhatWG conceptualiza las template diferente y enumera su modelo de contenido como nothing ).

El índice no normativo de elementos en la especificación WhatWG confirma que los únicos padres permitidos para un elemento de style son un elemento head o noscript . (La versión W3 del mismo índice afirma erróneamente que el contenido de flujo puede contener elementos <style> , pero este es un error introducido por el W3C en el momento de eliminar el atributo de scoped . Tengo una solicitud de extracción abierta para solucionarlo).


Mientras que las otras respuestas son correctas, me sorprende que nadie haya explicado dónde los estándares no permiten estilos fuera de la head .

En realidad, está en la sección sobre el elemento principal (y en el 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 -->

Sí, lo sé. Las DTD son difíciles de leer.

Este es el único lugar donde se produce el elemento STYLE , por lo que implícitamente no es válido en ninguna otra parte.


Puede usar la etiqueta de estilo dentro de la sección de la cabeza o del cuerpo o también fuera de la etiqueta html (no se recomienda el uso de html de lado). En proyectos en tiempo real, muchas veces puedes ver que usan etiquetas de estilo al lado de la etiqueta html


Se supone que no deben salir de la cabeza, pero funcionan de todos modos; aunque es posible que notes un rápido parpadeo. El sitio no debe validar con la etiqueta de estilo fuera de la cabeza, pero ¿eso realmente importa? Además, las etiquetas de enlace funcionan también fuera de la cabeza, aunque no se supone que lo hagan.


Según este sitio, HTML5.1 (en borrador) y WHATWG permiten poner la etiqueta <style> en el cuerpo:

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

También parece haber sido admitido por los navegadores durante bastante tiempo. Según esta respuesta de , Firefox 3+, IE6 +, Safari 2+ y Chrome 12+ lo admiten:

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


Una etiqueta de estilo en cualquier lugar pero dentro del <head> no validará con las reglas del W3C.


style se supone que debe incluirse solo en el head del documento.

Además del punto de validación, una advertencia que podría interesarle al usar style en el body es el destello del contenido sin estilo . El navegador obtendría elementos que se diseñarían después de que se muestran, haciendo que cambien de tamaño / forma / fuente y / o parpadeo. En general, es un signo de mala artesanía. Generalmente puede salirse con la suya poniendo style cualquier lugar que desee, pero trate de evitarlo siempre que sea posible.

HTML 5 introdujo un atributo de scoped que permitía incluir etiquetas de style en todo el cuerpo, pero luego lo eliminaron nuevamente.