validator validar validador org online espaƱol codigo chrome check html w3c-validation html-validation

html - validar - w3c validator css



No hay elemento p en el alcance, sino validaciĆ³n de la etiqueta ap end seen.w3c (3)

Mi HTML es como a continuación. He abierto todos los elementos y los cerré. Aún cuando lo reviso en w3c muestra un error. No puedo resolverlo.

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> </head> <body> <p> <div class="inr_content clearfix"> <div class="col2 first fl"> to provide a drive-in services. </div> <div class="col2 last fr"> to provide a drive-in services. </div> </div> </p> </body> </html>


Como la sintaxis del elemento p no permite un elemento secundario div , y la etiqueta final </p> puede omitirse, el validador (y un navegador) implica </p> cuando encuentra una etiqueta <div> al analizar un elemento p elemento. Es decir, cuando p se analiza (o "está abierto"), la etiqueta de inicio de un elemento div cierra implícitamente, como si el marcado tuviera:

<body> <p> </p><div class="inr_content clearfix"> <div class="col2 first fl">

Esto significa que hay un elemento p con solo espacios en blanco. La etiqueta </p> que aparece más tarde no tiene ninguna etiqueta de inicio coincidente, y se informa que no es válida. Los navegadores ignoran esas etiquetas finales sin hogar, pero los validadores tienen que informarlas.

El cambio mínimo es eliminar la etiqueta </p> . Si esto es adecuado depende de lo que quieras. Quitar la etiqueta <p> también eliminaría el elemento p , y esto afectaría la representación. Aunque el elemento p no tiene contenido procesado (la altura del contenido es 0), tiene un margen superior e inferior predeterminado, lo que permite crear un espacio vertical vacío.

Si no desea ese espacio, simplemente elimine la etiqueta <p> (junto con </p> por supuesto). Si quiere algo de espacio, por lo general, es mejor eliminar la etiqueta, pero también debería establecer, en CSS, algún valor adecuado de margin-top en el elemento div nivel superior.

Aunque los elementos p que contienen solo espacios en blanco están permitidos en HTML5, no se recomiendan. Esto es parte de la recomendación general relacionada con el llamado contenido palpable : "los elementos cuyo modelo de contenido permite cualquier contenido de flujo o contenido de fraseo deben tener al menos un nodo en sus contenidos que sea contenido palpable". Y el texto suele ser contenido palpable, pero no si se trata solo de espacios en blanco.


Esto se debe a que está anidando un elemento de nivel de bloque dentro de la etiqueta p que no es válido. Solo puede anidar elementos en línea como span , a e img dentro de la etiqueta p . Entonces su marcado no es válido, considere hacer algo como

<div class="inr_content clearfix"> <div class="col2 first fl"> <p>to provide a drive-in services.</p> </div> <div class="col2 last fr"> <p>to provide a drive-in services.</p> </div> </div>

De W3C [1] :

El elemento P representa un párrafo. No puede contener elementos de nivel de bloque (incluido P mismo).

1 - Reference


No se puede poner semánticamente un div dentro de una etiqueta <p> .