2011-04-19 16 views

Respuesta

2

El W3C HTML 4.01 Strict Charset section dice

de cuatro caracteres entidad ref erences merecen una mención especial, ya que son utilizado con frecuencia para escapar especiales caracteres:

* "&lt;" represents the < sign. 
* "&gt;" represents the > sign. 
* "&amp;" represents the & sign. 
* "&quot; represents the " mark. 

Los autores que deseen poner el "<" caracter de texto deberían usar "<" (ASCII decimal 60) para evitar posibles confusión con el comienzo de una etiqueta (etiqueta de inicio abre delimitador). Del mismo modo, los autores deberían usar ">" (ASCII decimal 62) en el texto en lugar de ">" para evitar problemas con los agentes más antiguos usuarios que erróneamente perciben esto como el final de una etiqueta (tag delimitador de cierre) cuando aparece en los valores de cotización .

Los autores deben usar "& amp;" (ASCII decimal 38) en lugar de "&" para evitar la confusión con el comienzo de una referencia de caracteres (entidad de referencia delimitador abierto). Los autores también deben usar "& amp;" en los valores de atributo desde se permiten las referencias de caracteres dentro de los valores de los atributos CDATA.

Como utiliza la palabra "debería" en lugar de "debe", supongo que puede omitirla y aún así validar.

Pero no hagas eso, porque a veces se renderizará de forma extraña.

realidad, tuve que escapar de un par de los símbolos de unión en mi corte y pegar de esta cita para obtener SO para hacer que la entidad de caracteres de texto ... ;-)

+0

Además, la sección sobre Ampersands en valores de atributos URI se relaciona: http://www.w3.org/TR/html401/appendix/notes.html # hB.2.2. –

1

Si se trata de un error o no en HTML 4 depende de si se trata de un error o no en SGML. No puedo verificarlo ya que las especificaciones no son de acceso público. La especificación de HTML 4 implica que no es un error (« Los autores deben usar "&" » usa "debería", no "debe").

Es un error en el código HTML de 4 serialización XML (XHTML) ya que es un error en XML (« CharData :: = [^ < &] * - ([^ < &] * ']]>' [^ < &] *) »)

No es un error en la serialización HTML de HTML 5. (. « No es una referencia de carácter no los personajes se consumen, y no se devuelve nada (Esto no es un error, ya sea) »..)

se trata de un error en el código HTML de 5 serialización XML para el que es válida en XML (« CharData: : = [^ < &] * - ([^ < &] * ']]>' [^ < &] *) »)

1

Sí, es legal.

Es legal en HTML 4.01, y también es legal en el HTML 4 Strict doctype, porque no es una de las características obsoletas, como la etiqueta FONT.

No es legal en ninguna versión de XHTML. La razón es que, por definición, XHTML debe ser compatible con XML y el signo común sin escindir tiene un significado especial en la especificación (para entidades).

Cuando sea posible es preferible utilizar XHTML porque es una especificación más estricta, más moderno y más información se puede encontrar aquí http://en.wikipedia.org/wiki/XHTML. Por lo general, HTML se usa para soporte heredado.

entiendo HTML todavía se utiliza por razones prácticas, en muchos lugares, y en este caso se considera una buena práctica utilizar la versión escapado, a pesar de que en realidad es legal en su tipo de documento.

Un ampersand "por sí mismo" se denomina "ampersand sin escote" si alguna vez desea buscar más sobre el tema.

0

He investigado esto a fondo y escribió acerca de mis resultados aquí: http://mathiasbynens.be/notes/ambiguous-ampersands

También he creado an online tool que se puede utilizar para comprobar el marcado de los símbolos de unión o ambiguas referencias de caracteres que no terminan con un punto y coma, ninguno de los cuales es válido. (No se validador HTML actualmente hace esto correctamente.)

http://i.stack.imgur.com/nyGPK.png

Cuestiones relacionadas