Tenemos un ckeditor en nuestro CMS. Nuestros usuarios finales ingresarán algunos artículos largos a través de ese ckeditor. Necesitamos una forma de evitar saltos de línea en los guiones en esos artículos.
¿Existe alguna forma de evitar saltos de línea en guiones en todos los navegadores?
¿O ckeditor tiene una opción para evitarlo?
Respuestas:
Me temo que no hay forma más sencilla de hacerlo de manera confiable que dividir el texto en "palabras" (secuencias de caracteres que no son espacios en blanco separados por espacios en blanco) y envolver cada "palabra" que contiene un guión dentro del
nobr
marcado. Entonces, los datos de entrada comobla bla foo-bar bla bla
se convertirían enbla bla <nobr>foo-bar</nobr> bla bla
.Incluso podría considerar insertar
nobr
marcas siempre que la "palabra" contenga cualquier cosa menos letras y dígitos. La razón es que algunos navegadores pueden incluso romper cadenas como “2/3” o “f (0)” (consulte mi página sobre las rarezas de los saltos de línea en los navegadores ).fuente
nobr
etiqueta no es estándar y el W3C la desaconseja enérgicamente. Ver w3.org/TR/html5/obsolete.html#non-conforming-featuresnobr
marcado funciona en todos los navegadores, funciona incluso cuando las hojas de estilo están deshabilitadas y funciona independientemente de la compatibilidad con caracteres especiales. ¿Tiene algún problema real ?Puede usar el
‑
que es un GUIÓN SIN ROMPIMIENTO Unicode (U + 2011).HTML:
‑
o‑
Ver también: http://en.wikipedia.org/wiki/Hyphen#In_computing
fuente
-
con‑
.nobr
etiquetas por todas partes, no funciona muy bien en la práctica. IE lo muestra como un guión, Safari agrega más espacio a su alrededor que un guión normal, y la mayoría de los editores de texto lo muestran como un signo de interrogación o un cuadro u otro carácter sin sentido.white-space: nowrap
lo sugerido por derekerdmann. Por cierto, en FF / Win7, el guión tímido parece convertirse en un guión normal cuando se copia y pega fuera de Firefox, incluso si la aplicación de destino es compatible con Unicode.Una solución podría ser utilizar una
span
etiqueta adicional y lawhite-space
propiedad CSS. Simplemente defina una clase como esta:Y luego agregue un intervalo con esa clase alrededor de su texto con guiones.
Este enfoque debería funcionar bien en todos los navegadores; las implementaciones con errores que se enumeran aquí son para otros valores de la
white-space
propiedad: http://reference.sitepoint.com/css/white-space#compatibilitysectionfuente
white-space: nowrap
a todo el contenedor. De lo contrario, déjelo ir; En primer lugar, no hay razón para evitar saltos de línea con guiones para el contenido general y, en segundo lugar, no hay forma de que pueda hacer que lo que está buscando suceda automáticamente a menos que esté dispuesto a piratear CKEditor.<nobr>
es mucho más claro.No puede hacerlo sin editar cada instancia de HTML. En consecuencia, escribí algunos JS para reemplazarlos:
jQuery:
Vanilla JS:
fuente
Utilice la palabra carácter de unión (
⁠
) alrededor del guión. También funciona en IE.https://en.wikipedia.org/wiki/Word_joiner
corregir guiones específicos ...
o todo ...
fuente
Prueba este CSS:
fuente