Pregunta

Un retorno de carro en mi código html provoca un espacio visual en el html dictada en Explorer 8. Supongo que esto afectará a otras versiones también.

Por ejemplo:

<span>
(111)&nbsp;
222-
3333&nbsp;
444444
</span>

tiene el siguiente aspecto:

(111)  222- 3333  444444

No debe haber sólo un 1 espacio después del primer soporte, no hay espacio después del guión y sólo 1 espacio después del último 3. Me gusta el carro vuelve a la legibilidad del código, es posible ir a continuación, mantener y aún así obtener el código HTML para hacer correctamente en IE?

Aquí está la información de tipo de documento:

<!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">

Editar:
En realidad estoy haciendo esto en una aplicación ASP.NET MVC 2, y el formato de plantilla ASPX es bastante detallado y por eso me he tratado de separarlo en varias líneas:

<span>
(<%=((Model == null || Model.AreaCode == null) ? "" : Model.AreaCode).PadRight(3)%>)&nbsp;
<%=((Model == null || Model.Prefix == null) ? "" : Model.Prefix).PadRight(3)%>-
<%=((Model == null || Model.Suffix == null) ? "" : Model.Suffix).PadRight(4)%>&nbsp;
<%=(Model == null || Model.Extension == null) ? "" : Model.Extension%>
</span>
¿Fue útil?

Solución

Este es un escenario en el que las funciones de tipo sprintf realmente brillan. En el mundo .NET éstos son manejados por String.Format. Aquí está el MSDN la documentación y usted podría volver a escribir el código de algo como esto:

<span>
<%= String.Format("({0:###}) {1:###}-{2:####} {3}", Model.AreaCode, Model.Prefix, Model.Suffix, Model.Extension); %>
</span>

Estoy un poco oxidado en la sintaxis de formato de cadena .NET, así que no hay garantías de que el fragmento de código. Aquí hay otro enlace:

http://blog.stevex.net/string-formatting-in- csharp /

Otros consejos

  

en HTML, el carácter de avance   (U + 000C) se trata como un espacio en blanco, en   XHTML

http://www.w3.org/TR/xhtml1/#C_15

http://www.w3.org/TR/xhtml1/#uaconf (punto 9):

  

El espacio en blanco se maneja de acuerdo con   las siguientes reglas. El seguimiento   personajes se definen en [XML] blanco   los caracteres de espacio:

     

SPACE () TABULACION HORIZONTAL   () Retorno de carro ( )   LINEA DE ALIMENTACIÓN ( ) El procesador XML   normaliza extremo de línea diferentes sistemas   códigos en una sola RENGLÓN   carácter, que se pasa a la   aplicación.

     

El agente de usuario debe utilizar la definición   de CSS para el procesamiento de los espacios en blanco   personajes [CSS2]. Tenga en cuenta que el CSS2   recomendación no lo hace de forma explícita   abordar la cuestión de los espacios en blanco   en el manejo de conjuntos de caracteres no latinos.   Este problema se solucionará en un futuro   versión de CSS, momento en el que este   referencia se actualizará.

No sólo en IE8. Lo he probado con el cromo y le da el mismo resultado. Lo primero que necesita para eliminar el espacio entre elemento en sí. y de hecho hay 2 espacios entre (111) 222 3333 y 44444. Por lo tanto, parece que cada retorno de carro está tomando un espacio en blanco.

Esto es perfectamente aceptable en cuenta este código HTML ...

<html>
  <head>
  </head>
  <body>
    This is some static text
    with carriage return
    <span>
      (111)&nbsp;222- 3333&nbsp;444444
    </span>
  </body>
</html>

la salida sería ...

Este es un texto estático con retorno de carro (111) 222- 3333 444444

Reloj para el espacio entre el texto y con en texto estático. Por lo tanto la traducción de retorno de carro al espacio se parece como una regla general para HTML.

A de nueva línea es un espacio.

Si realmente quiere esas cosas en líneas separadas, podría utilizar los comentarios HTML:

<span><!--
-->(111)&nbsp;<!--
-->222-<!--
-->3333&nbsp;<!--
-->444444<!--
--></span>

A pesar de que no es demasiado grande para facilitar la lectura tampoco. Personalmente no veo lo que es ilegible ponerlo todo en una línea. Se podría hacer:

<span style="white-space:nowrap">(111) 222-3333 444444</span>

si se siente los &nbsp;s están haciendo que sea ilegible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top