pre
Las etiquetas son súper útiles para bloques de código en HTML y para depurar la salida al escribir scripts, pero ¿cómo hago para que el texto se ajuste en lugar de imprimir una línea larga?
721
La respuesta, de esta página en CSS:
pre {
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
white-space:pre-line;
(y todos los sabores compatibles con el navegador) parece más adecuado en algunos casos (sin pestañas, por ejemplo), ya que quita el espacio al comienzo de la línea (si hay algunos)pre-line
contrae todos los espacios en blanco (no solo al comienzo de la línea). developer.mozilla.org/en-US/docs/Web/CSS/white-space tiene una tabla que resume el comportamiento de loswhite-space
valores.word-wrap: break-word
no hace lo que pide la pregunta, hace que se formen líneas entre las palabras. Puedes borrar esa línea. En los navegadores modernos, no necesita ninguno de los-moz
otros prefijos.Esto funciona muy bien para ajustar texto y mantener espacios en blanco dentro de la
pre
etiqueta:fuente
Descubrí que omitir la etiqueta previa y usar espacios en blanco: preenvolver en un div es una mejor solución.
fuente
style="white-space: pre-wrap; font-family:monospace;"
<pre>
de bloques de código.Más sucintamente, esto obliga al contenido a envolverse dentro de una etiqueta "pre" sin romper palabras. ¡Salud!
Ver ejemplo en vivo aquí .
fuente
Esto es lo que necesitaba. Evitó que las palabras se rompieran, pero permitió un ancho dinámico en el área previa.
fuente
Sugiero olvidar el pre y simplemente ponerlo en un área de texto.
Su sangría permanecerá y su código no se incluirá en el medio de una ruta o algo así.
También es más fácil seleccionar el rango de texto en un área de texto si desea copiar al portapapeles.
El siguiente es un extracto de php, por lo que si no está en php, la forma de empaquetar los caracteres especiales html variará.
Para obtener información sobre cómo copiar texto al portapapeles en js, consulte: ¿Cómo copio al portapapeles en JavaScript? .
Sin embargo...
Acabo de inspeccionar los bloques de código de stackoverflow y se envuelven en una etiqueta <code> envuelta en la etiqueta <pre> con css ...
Además, el contenido de los bloques de código stackoverflow se sintaxis resaltada usando (creo) http://code.google.com/p/google-code-prettify/ .
Es una buena configuración, pero solo voy con textareas por ahora.
fuente
<pre>
tenga ningún significado semántico (a diferencia de<code>
), simplemente significa que se deben preservar las nuevas líneas y los espacios múltiples.Combiné @richelectron y @ user1433454 respuestas.
Funciona muy bien y conserva el formato del texto.
fuente
Tu también puedes:
para mantener la fuente monoespacio pero agregar ajuste de texto, o:
lo que permitirá un tamaño fijo con desplazamiento horizontal para líneas largas.
fuente
Intenta usar
O mejor lanzar CSS.
fuente
Uso
white-space: pre-wrap
y algunos prefijos para saltos de línea automáticos dentro depre
s.No lo use
word-wrap: break-word
porque esto solo, por supuesto, divide una palabra por la mitad, lo que probablemente es algo que no desea.fuente
La mejor forma de navegador cruzado funcionó para mí para obtener saltos de línea y muestra el código o texto exacto: (Chrome, Internet Explorer, Firefox)
CSS:
HTML:
fuente
Lo siguiente me ayudó:
Gracias
fuente
white-space: pre-wrap;
porque respeta los espacios en blancoEl elemento
<pre>
significa "texto preformateado" y está destinado a mantener el formato del texto (o lo que sea) entre sus etiquetas. Por lo tanto, en realidad no se pretende tener un ajuste automático de palabras o saltos de línea dentro de la<pre>
etiquetafuente: w3schools.com , énfasis hecho por mí mismo.
fuente