seguidos - Por qué no se forma anidado en p validar como XHTML
hashtag tendencia instagram (5)
Tomemos por ejemplo este fragmento de XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>A webpage</title>
</head>
<body>
<p>
<form action="something.php" method="get">
<input type="submit" value="Hello"/>
</form>
</p>
</body>
</html>
El árbol debe ser válido, sin embargo, esto no se analizará correctamente en un navegador.
De acuerdo con this , porque:
Línea 8, columna 44: el tipo de documento no permite el elemento "formulario" aquí; falta una etiqueta de inicio "objeto", "ins", "del", "mapa" ✉ No se permite que el elemento mencionado aparezca en el contexto en el que lo ha colocado; los otros elementos mencionados son los únicos que están permitidos allí y pueden contener el elemento mencionado. Esto podría significar que necesita un elemento contenedor, o posiblemente que haya olvidado cerrar un elemento anterior.
Una posible causa de este mensaje es que ha intentado colocar un elemento de nivel de bloque (como "p" o "tabla") dentro de un elemento en línea (como "a", "span" o "font").
Línea 9, Columna 40: el tipo de documento no permite la "entrada" del elemento aquí; falta uno de "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "dirección", "fieldset", "ins" , "del" etiqueta de inicio tipo de entrada = "enviar" valor = "Hola" El elemento mencionado no puede aparecer en el contexto en el que lo ha colocado; los otros elementos mencionados son los únicos que están permitidos allí y pueden contener el elemento mencionado. Esto podría significar que necesita un elemento contenedor, o posiblemente que haya olvidado cerrar un elemento anterior.
Una posible causa de este mensaje es que ha intentado colocar un elemento de nivel de bloque (como "p" o "tabla") dentro de un elemento en línea (como "a", "span" o "font").
Ejecuté una prueba con su código HTML a través de validator.w3.org y el resultado es que necesita cambiar las etiquetas P y FORM para que pase como HTML W3C válido.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>A webpage</title>
</head>
<body>
<form action="something.php" method="get">
<p>
<input type="submit" value="Hello"/>
</p>
</form>
</body>
</html>
Intente utilizar el W3C Markup Validator , que le indicará qué es válido con la mayoría (X) de los documentos HTML y CSS.
Mire los mensajes de error que recibe cuando lo intenta con this
Además de una advertencia de que no ha especificado una codificación de caracteres (y que, por lo tanto, asume UTF-8), el error principal es que a <p>
no se le permite contener contenido no en línea. Puede eliminar <p>
y </p>
completo o moverlos dentro de <form>
.
En cuanto a "por qué", es porque así es como se define en el esquema que define lo que es y lo que no es XHTML válido. Si observa esta sección de la definición XHTML , verá que <p>
solo puede contener etiquetas de texto o "en línea" (no "bloqueadas"). Sin embargo, un <form>
cuenta como contenido ''bloque'' no como contenido ''en línea''.
En otras palabras, un formulario puede contener párrafos, pero un párrafo no puede contener formularios.
No puedes poner la forma dentro del párrafo. Escribe así:
<body>
<form action="something.php" method="get">
<p>
<input type="submit" value="Hello"/>
</p>
</form>
</body>