¿Cuál es la diferencia exacta entre overflow-wrap
/ word-wrap
y word-break
? ¿Y alguien puede decirme cuál es mejor para romper enlaces muy largos? La mayoría de la gente dice que debería usar el salto de palabras en combinación con, overflow-wrap
pero no parece muy lógico. Creo que usarlo overflow-wrap
en combinación con word-wrap
para una mejor compatibilidad con varios navegadores es el mejor método. ¿Qué piensas?
html
css
word-wrap
word-break
Anselmo
fuente
fuente
overflow-wrap
yword-wrap
debe ser 100% idéntico en funcionalidad. Personalmente, tengo la impresión de queword-wrap
solo debería usarse para la compatibilidad con navegadores heredados y que podría estar obsoleto o eliminado en una versión futura de CSS.word-wrap
conword-break
word-wrap
. De esto se trataword-break
. Cerrar esto como pregunta duplicada no tiene sentido.Respuestas:
Citando de la fuente
word-wrap: La propiedad de CSS word-wrap se utiliza para especificar si el navegador puede o no dividir líneas dentro de las palabras para evitar el desbordamiento cuando una cadena que de otro modo sería irrompible es demasiado larga para caber en su cuadro contenedor.
overflow-wrap :
word-wrap
se ha cambiadooverflow-wrap
el nombre de la propiedad en el borrador actual de la especificación de texto CSS3word-break: la propiedad de CSS word-break se utiliza para especificar cómo (o si) dividir líneas dentro de las palabras
Por lo tanto, necesita un salto de palabras en combinación con un ajuste de palabras, que es la combinación correcta.
fuente
word-wrap
es suficiente, pero si el ancho del contenedor es limitado, el diseño podría estropearse.Ayuda entender que en este punto,
word-break: break-word
es realmente un alias paraoverflow-wrap: anywhere
.word-break: break-word
está oficialmente en desuso; consulte el Borrador de trabajo de nivel 3 del módulo de texto CSS :Lo que hay que tener en cuenta aquí es que
word-break: break-word
es un alias paraoverflow-wrap: anywhere
, NO un alias paraoverflow-wrap: break-word
.(
word-break: normal
es solo el valor predeterminado paraword-break
, por lo que puede ignorarlo a menos que esté configurando un valor diferente paraword-break
).Cómo hacer
overflow-wrap: anywhere
yoverflow-wrap: break-word
ser diferente?La única diferencia en la documentación entre los dos es que
overflow-wrap: anywhere
"considera las oportunidades de ajuste suave introducidas por el salto de palabras" cuando está "calculando tamaños intrínsecos de contenido mínimo", mientrasoverflow-wrap: break-word
que NO lo hace.Supongo que los anchos podrían ser más precisos en algunos casos si los está considerando.
fuente
Aquí están las diferencias exactas: (según las pruebas en Chrome v81 y confirmando mis observaciones haciendo referencia a la especificación)
espacio en blanco
normal
(predeterminado): colapsa cadenas de espacios en blanco y saltos de línea; agrega saltos de línea donde sea necesarionowrap
: colapsa cadenas de espacios en blanco y saltos de línea; no agrega saltos de líneapre-line
: colapsa cadenas de espacios en blanco; agrega saltos de línea donde sea necesariopre-wrap
: sin colapsar; agrega saltos de línea donde sea necesariobreak-spaces
: igual que el pre-ajuste, excepto con espacios capaces de activar la adición de saltos de líneapre
: sin colapsar; no agrega saltos de líneaNota: Si las
white-space
listas de valores seleccionadas "no agregan saltos de línea", el comportamiento de salto de línea de las siguientes propiedades no se puede aplicar (es decir, ignorar).descanso de palabras
normal
(predeterminado): rompe la línea al final de la última palabra que encaja dentro del contenedor [si existe], de lo contrario, la línea se deja sin romperbreak-word
: rompe la línea al final de la última palabra que encaja dentro del contenedor [si existe], de lo contrario al final del contenedorbreak-all
: rompe la línea en final del contenedor [puede dividir una palabra, incluso con espacios en blanco cercanos]overflow-wrap (nombre heredado: word-wrap)
normal
(predeterminado): rompe la línea al final de la última palabra que encaja dentro del contenedor [si existe], de lo contrario, la línea se deja sin romperbreak-word
: rompe la línea al final de la última palabra que encaja dentro del contenedor [si existe], de lo contrario al final del contenedor [si no -flex contenedor], de lo contrario la línea se deja intactaanywhere
: rompe la línea al final de la última palabra que encaja dentro del contenedor [si existe], de lo contrario al final del contenedor [igual queword-break: break-word
]Tenga en cuenta que para
overflow-wrap: break-word
(como para cualquier combinación que deja líneas demasiado largas para el contenedor), la línea ininterrumpida puede hacer que un contenedor flexible se expanda más allá de la relación flexible especificada (lo que obliga a otros contenedores flexibles a encogerse para tener en cuenta el contenido demasiado largo).fuente