Estoy buscando evitar un salto de línea después de un guión -
caso por caso que sea compatible con todos los navegadores.
Ejemplo:
Tengo este texto: 3-3/8"
que en HTML es este: 3-3/8”
El problema es que cerca del final de una línea, debido al guión, se rompe y pasa a la siguiente línea en lugar de tratarla como una palabra completa ...
3-
3/8"
He intentado insertar el "carácter de cero ancho sin interrupción", 
sin suerte ...
3-3/8”
Estoy viendo esto en Safari y creo que será igual en todos los navegadores.
La siguiente es mi doctype
y codificación de caracteres ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
¿Hay alguna manera de evitar que estos salten después del guión? No necesito ninguna solución que se aplique a toda la página ... solo algo que pueda insertar según sea necesario, como un "carácter de cero ancho sin interrupción", excepto uno que funcione.
Aquí hay una demostración. Simplemente haga el marco más estrecho hasta que la línea se rompa en el guión.
fuente
‑
es un guión que no se rompe.3-3/8″
o3-3/8″
. Las citas no son primos. Si lo quieres en ASCII puro, solo usa comillas dobles rectas ("
). Preferiblemente, si se va a presentar como un texto bueno y legible, en su lugar usaría3<span style="font-variant: diagonal-fractions">3/8</style>″
, mostrando '3⅜ ″'Respuestas:
Intenta usar el guión que no se rompe
‑
. He reemplazado el guión con ese personaje en su jsfiddle, reduje el marco lo más pequeño posible y la línea ya no se divide allí.fuente

. Simplemente nunca se me ocurrió que había un carácter de guión independiente que no se rompería.También puede ajustar el texto relevante con
fuente
‑
) podría procesar un poco más que un guión normal en ciertos navegadores fue trivial para mí.IE8 / 9 procesa el guión sin interrupción mencionado en la respuesta de CanSpice más tiempo que un guión típico. Es la longitud de un guión en lugar de un guión típico. Esta diferencia visual fue un factor decisivo para mí.
Como no pude usar la respuesta CSS especificada por Deb, opté por no usar etiquetas de interrupción.
Además, encontré un escenario específico que causó que IE8 / 9 se rompiera en un guión.
IE lo hace así.
El siguiente código reproduce el problema que se muestra arriba. Tuve que usar una metaetiqueta para forzar el renderizado a IE9 ya que IE10 ha solucionado el problema. Sin violín porque no admite metaetiquetas.
fuente
nobr
es la forma más cruzada del navegador y funciona independientemente de las fuentes y CSS. Elnobr
elemento no está definido en las especificaciones HTML, pero esto debe considerarse solo como una formalidad. Pero si debe escribir por especificaciones HTML, entonces la respuesta de Deb, usando CSS, es la mejor opción.nobr
etiqueta no es estándar y puede romperse en cualquier momento. La documentación de MDN no recomienda usar esta etiqueta: developer.mozilla.org/en-US/docs/Web/HTML/Element/nobrTambién puede hacerlo "al modo de unión" insertando "
U+2060
Word Joiner ".Si lo
Accept-Charset
permite, el propio carácter Unicode se puede insertar directamente en la salida HTML.De lo contrario, se puede hacer usando codificación de entidad. Por ejemplo, para unir el texto
red-brown
, use:o (equivalente decimal):
. Otro carácter utilizable es "
U+FEFF
Espacio sin interrupción de ancho cero " [ 1] :y (equivalente decimal):
[1] : Tenga en cuenta que si bien este método todavía funciona en los principales navegadores como Chrome, ha quedado en desuso desde Unicode 3.2 .
Comparación de "la forma de unión" con "
U+2011
guión sin ruptura ":La palabra carpintero se puede usar para todos los demás caracteres, no solo guiones.
Cuando se usa la combinación de palabras, la mayoría de los renderizadores rasterizarán el texto de manera idéntica . En Chrome, Firefox, IE y Opera, la representación de guiones normales, por ejemplo:
es idéntico a la representación de guiones normales (con U + 2060 Word Joiner), por ejemplo:
mientras que las dos representaciones anteriores difieren de la representación de " Guión sin ruptura ", por ejemplo:
. (El alcance de la diferencia depende del navegador y de la fuente. Por ejemplo, cuando se utiliza una declaración de fuente de "
arial
", Firefox e IE11 muestran variaciones relativamente grandes, mientras que Chrome y Opera muestran variaciones más pequeñas).Comparación de "the joiner way" con
<span class=c1></span>
(CSS.c1 {white-space:nowrap;}
) y<nobr></nobr>
:La palabra ensambladora puede usarse para situaciones en las que el uso de etiquetas HTML está restringido, por ejemplo, formas de sitios web y foros.
En el espectro de presentación y contenido , la mayoría considerará que la palabra ensambladora está más cerca del contenido, en comparación con las etiquetas.
• Según lo probado en Windows 8.1 Core de 64 bits con:
• IE 11.0.9600.18205
• Firefox 43.0.4
• Chrome 48.0.2564.109 (versión oficial) m (32 bits)
• Opera 35.0.2066.92
fuente
bingo-⁠bongo

Tarde a la fiesta, pero creo que este es realmente el más elegante. Utilice el carácter Unicode WORD JOINER & # 8288 ; a cada lado de tu guión, o guión, o cualquier personaje.
Entonces, así:
Esto unirá el símbolo en ambos extremos a sus vecinos (sin agregar un espacio) y evitará el salto de línea.
fuente