2012-05-05 22 views
31

Por razones obvias, el ángulo de soporte izquierdo no puede usarse literalmente en texto HTML. El estado del corchete angular derecho no es tan claro. Funciona cuando lo intento, pero, por supuesto, los navegadores son notablemente indulgentes con los constructos que no son HTML estrictamente válidos.Soporte de ángulo recto en HTML

http://www.w3.org/TR/html4/charset.html#h-5.4 parece decir que es válido, aunque puede no ser compatible con navegadores antiguos, pero también hace mención específica de los valores de los atributos entre comillas. Is it necessary to html encode right angle brackets? también dice que es válido pero de nuevo habla específicamente de los valores de los atributos entrecomillados.

¿Cuál es la respuesta para trozos de texto simples (el contenido de un elemento <pre> es el caso que estoy viendo) y difiere de alguna manera?

+0

Vas a tener que escapar de los corchetes izquierdos de todos modos. ¿Por qué no hacer lo más fácil y más seguro y también escapar de los corchetes correctos? –

+0

Porque tengo que mantener un fragmento de texto que consiste en una salida de programa que contiene corchetes de ángulo recto pero no a la izquierda, y esto determina si la tarea de mantenimiento es copiar y pegar versus copiar, pegar y buscar/reemplazar. – rwallace

Respuesta

56

El carácter “>” se puede utilizar como tales como el carácter de datos en cualquier versión de HTML, tanto en el contenido del elemento y en un valor de atributo. Esto se desprende de la falta de cualquier declaración en contrario en las especificaciones.

A menudo se escapa como &gt;, que es válido pero no es necesario por ningún motivo formal o técnico. Se usa en parte porque la gente asume que se necesita de la misma manera que el carácter "<" necesita ser escapado, en parte por simetría: escribir, por ejemplo, &lt;code&gt; puede parecer más simétrico que &lt;code>.

El caracter ">" es el caracter MAYOR QUE. Se usa en muchos contextos, como el marcado HTML, como un delimitador de un tipo, en forma de corchete, pero los corchetes angulares reales, como se usan en algunas notaciones matemáticas, son bastante diferentes, como "⟩" U + 27E9 . Si necesita incluir corchetes angulares en un documento HTML, tiene algunos problemas serios que considerar, pero se relacionan con las fuentes (y la semántica), y no con los choques potenciales con los caracteres significativos del marcado.

+5

Una razón para usar > es para que pueda diferenciarla rápidamente de un elemento html roto al codificar. Además, ciertos editores pueden marcarlo como no válido, independientemente de si lo es o no. – Sam

1

Los corchetes angulares son legales dentro de una etiqueta <pre> o como texto dentro de un elemento.

No hay ambigüedad al usarlos de esta manera y los analizadores no tienen problemas para "entenderlos".

Personalmente, acabo de escapar de estos cada vez que necesito para usarlos, simplemente para que coincida con paréntesis angulares de apertura ...