2012-02-06 6 views
16

Duplicar posible:
Why is <br> an HTML element rather than an HTML entity?¿Por qué <br> es un elemento, no una entidad?

¿Por qué es un salto de línea en HTML un elemento <br> en lugar de una entidad, tal como &br;? En muchos sentidos, parece un mal ajuste para ser un elemento (por ejemplo, tiene un atributo de tipo de nodo diferente para los elementos HTML normales, es similar a &nbsp; en lo que hace).

+1

Debido a que en algunos casos es posible que desee desactivar los saltos de línea y hacer que todo parezca una sola línea. no puede reasignar dinámicamente un ' ' a otra cosa, pero PUEDE usar css para que un '
' no haga un salto de línea. –

+0

en ese caso, permítanme reformular mi pregunta: ¿Por qué   no es una etiqueta? :) – wheresrhys

+0

Otra cosa que puedo pensar: compatibilidad. &br; parece indicar un solo carácter, pero \ r \ n es la secuencia correcta en Windoze, \ n para Linux, \ r para Mac OS antiguos. Sin embargo, un carácter de espacio no disruptivo tiene el mismo significado en todos los sistemas (y es un único punto de código). – darvids0n

Respuesta

-1

Desde el elemento spec *

El ancho representa un salto de línea.

Mientras saltos de línea se representan generalmente en medios visuales por mover físicamente texto subsiguiente a una nueva línea, una hoja de estilo o usuario agente serían igualmente justificada en la causa de los saltos de línea a ser prestados de una manera diferente, por ejemplo como puntos verdes, o como espacio extra .

Los elementos br se deben usar solo para los saltos de línea que en realidad son la parte del contenido, como en poemas o direcciones.

Por lo tanto, se establece claramente que está bien diseñar un salto de línea como algo más, lo que justifica por qué no es una entidad. Me hace pensar que debería haber dos formas de agregar un salto de línea, como una entidad &br; o una etiqueta <br>, lo que le da al autor flexibilidad sobre si el salto de línea es o no flexible. La afirmación anterior, que iguala el uso de los saltos de línea en poemas y direcciones, es un poco difícil si me preguntas.

* No está seguro de si se trata de la especificación , pero es sin duda un especificación

+0

Y esto debería suceder ¿cómo? Por magia? ¿A qué se extendería '&br;' en la DTD que se mostraría como un salto de línea? –

11

El espacio en blanco en HTML se representa como un espacio de un solo carácter, independientemente de la cantidad de espacios en blanco. Esto ayuda a la autoría de marcado sin afectar la representación de marcado.

< br/> no es un carácter de visualización, sino un especificador de formato para cuando el formato afecta el significado del contenido. La especificación HTML 5 establece que "debe usarse solo para saltos de línea que en realidad son parte del contenido, como en poemas o direcciones".

+3

Gran explicación. El elemento '
' * es * ampliamente utilizado indebidamente para propósitos de diseño (por ejemplo, personas que usan '

' en lugar de párrafos). – animuson

+0

Todavía no entiendo por qué esto significa que tiene que ser una etiqueta cuando   no lo está. Como alguien comentó anteriormente, si lo desea puede pegar un estilo
para mostrar ninguno con CSS (http://jsfiddle.net/XqdKE/), alterando así el significado del contenido. Sé que técnicamente esto no cambia el significado ya que un cambio en CSS no es un cambio en el marcado, pero si se supone que un br tiene un significado intrínseco dependiendo de que sea una nueva línea, parece incorrecto que deba ser mutable en de esta manera. – wheresrhys

+1

@wheresrhys - Estoy de acuerdo. Sobre la base de la semántica moderna de
, es dudoso que se haya inventado. Podríamos haber esperado usar el SEPARADOR DE LINEA U + 2028, que podría haberse correlacionado con '&br;'. Pero el diseño de HTML rara vez es claro. La historia y la comodidad desempeñan un papel importante ('
' funciona independientemente del conjunto de caracteres, por ejemplo), y a menos que pueda ver un problema real con la forma actual, es mejor simplemente aceptarlo e ir con eso. – Alohci

Cuestiones relacionadas