Estoy haciendo un sitio web receptivo para la escuela y mi pregunta es:
¿Cómo configuro una longitud máxima de caracteres de las oraciones (con CSS) en mi sitio web (como 75 caracteres) para que cuando tenga una pantalla muy grande, las oraciones no superen los 75 caracteres?
He intentado un ancho máximo pero eso arruina mi diseño. Estoy usando flexbox y consultas de medios para que responda.
textarea
oinput
hay unamaxlength="50"
propiedad de longitud máxima ( esto está en el HTML) para ellos o tendría que usar Javascript. También creo que leí mal esto, establecer un ancho obligará a la oración a pasar a la siguiente línea cuando llegue al final. Este es el comportamiento predeterminado.Respuestas:
Siempre puede usar un método truncado estableciendo un
max-width
desbordamientoellipsis
como esteUn ejemplo: http://jsfiddle.net/3czeyznf/
Para un truncamiento de varias líneas, eche un vistazo a una
flex
solución. Un ejemplo con truncamiento en 3 filas.Un ejemplo: https://codepen.io/srekoble/pen/EgmyxV
fuente
Hay un 'valor de longitud' CSS de
ch
.De MDN
Esto puede aproximarse a lo que buscas.
fuente
ch
unidad) no parece funcionar (como se esperaba) para mí en Chrome 50, IE11 o FF45 ?!height
yoverflow:hidden
. Me gustaron los puntos suspensivos, pero solo pude hacer que funcionase si lo configurabawhite-space:no-wrap
. En mi caso, el texto puede ajustarse, simplemente no exceder un cierto límite de caracteres dentro de su contenedor.white-space: nowrap;
Intente esto para truncar caracteres después de configurarlo en max-width. He usado 75ch en este caso
Para truncamiento multilínea, siga el enlace.
Un ejemplo: https://codepen.io/srekoble/pen/EgmyxV
Usaremos webkit css para esto. En resumen, WebKit es un motor de representación de navegador web HTML / CSS para Safari / Chrome. Esto puede ser específico del navegador ya que cada navegador está respaldado por un motor de representación para dibujar la página web HTML / CSS.
fuente
max-width:100%;
para el contenedor wrap div. Entonces tienes un truncamiento receptivo.código de ejemplo:
fuente
Con Chrome puede establecer el número de líneas que se muestran con " -webkit-line-clamp ":
Entonces para mí es usar en una extensión para que sea perfecto, más información aquí: https://medium.com/mofed/css-line-clamp-the-good-the-bad-and-the-straight-up -broken-865413f16e5
fuente
Eso no es posible con CSS, tendrás que usar el Javascript para eso. Aunque puede establecer el ancho de la p en hasta 30 caracteres y las siguientes letras aparecerán automáticamente, pero nuevamente esto no será tan preciso y variará si los caracteres están en mayúscula.
fuente
HTML
jQuery
CSS
RESULTADO
Jsfiddle
fuente
Solución CSS pura para truncar caracteres de varias líneas
Tuve un problema similar y encontré esta excelente solución única de CSS de Hackingui.com . Puede leer el artículo para obtener información, pero a continuación se muestra el código principal.
Lo probé y funciona perfectamente. Esperemos que alguien lo encuentre útil antes de optar por JS o las opciones del lado del servidor
fuente
Modern CSS Grid Answer
Ver el código completamente funcional en CodePen . Dado el siguiente HTML:
Puede usar CSS Grid para crear tres columnas y decirle al contenedor que tome un ancho máximo de 70 caracteres para la columna central que contiene nuestro párrafo.
Esto es lo que parece (Checkout CodePen para un ejemplo completamente funcional):
Aquí hay otro ejemplo en el que puede usar minmax para establecer un rango de valores. En pantallas pequeñas, el ancho se establecerá en 50 caracteres de ancho y en pantallas grandes tendrá 70 caracteres de ancho.
fuente
ch
en columnas. Encantador.rrdOvr
. ;)Esta publicación es para una solución CSS, pero la publicación es bastante antigua, por lo que en caso de que otros tropiecen con esto y estén utilizando un marco JS moderno como Angular 4+, hay una manera simple de hacerlo a través de Angular Pipes sin tener que perder el tiempo con CSS.
Probablemente también haya formas de "Reaccionar" o "Vue" para hacerlo. Esto es solo para mostrar cómo se podría hacer dentro de un marco.
truncate-text.pipe.ts
app.component.html
fuente
Prueba mi solución con 2 formas diferentes.
fuente