html - etiquetas - que es<h3>
cómo mezclar enlaces(etiqueta<a>) y encabezados(etiqueta<h1>) en el estándar web? (3)
De acuerdo con los estándares web, no está permitido poner elementos de bloque en elementos en línea.
Como h1
es un elemento de bloque y a
es un elemento en línea, la forma correcta es:
<h1><a href="#">This is a title</a></h1>
Aquí hay un enlace para que pueda obtener más información: w3 Modelo de formato visual
Sin embargo, existe la excepción de que en HTML5 es válido para envolver elementos de nivel de bloque (como div
, p
o h*
) en etiquetas de anclaje. Envolver elementos a nivel de bloque en elementos en línea distintos a los anclajes aún va en contra de los estándares.
¿Cuál es el código correcto para crear un enlace con el título 1 de acuerdo con los estándares web?
Lo es
<h1><a href="http://stackoverflow.com"> stackoverflow </a></h1>
o
<a href="http://stackoverflow.com"><h1> stackoverflow </h1></a>
Gracias
HTML5 actualiza este tema: ahora está bien para envolver elementos de nivel de bloque con A, como se indica en otra pregunta: https://.com/a/9782054/674965 y aquí: http://davidwalsh.name/html5-elements-links
Por lo que yo entiendo, HTML5 te permite envolver elementos de nivel de bloque en etiquetas de enlace. Sin embargo, es posible que aparezcan errores en los navegadores más antiguos. Encontré esto con Firefox 3.6.18 y obtuve moz-rs-heading = "" insertado en mi código. Por lo tanto, mis estilos se rompieron. Si te preocupa una alternativa, puedes envolver las etiquetas de enlace en divs. A continuación, se proporciona una mejor explicación de por qué funciona el código adicional http://oli.jp/2009/html5-block-level-links/