desbordamiento de CSS - solo 1 línea de texto


134

Tengo divcon el siguiente estilo CSS:

width:335px; float:left; overflow:hidden; padding-left:5px;

Cuando inserto, en eso div, una larga línea de texto, se está rompiendo en una nueva línea y muestra todo el texto. Lo que quiero es tener solo una línea de texto que no se rompa. Cuando el texto es largo, quiero que este texto desbordado desaparezca.

Estaba pensando en establecer la altura, pero parece estar mal.

¿Tal vez si agrego altura que es la misma que la fuente, debería funcionar y no causar ningún problema en diferentes navegadores?

¿Cómo puedo hacer eso?


¿Puedes demostrar tu problema en jsFiddle ?
Harry Joy

Respuestas:


352

Si desea restringirlo a una línea, utilícelo white-space: nowrap;en el div.


Pero luego no muestra los puntos suspensivos si el texto va más allá de la dimensión especificada. stackoverflow.com/questions/26342411/…
SearchForKnowledge

Funciona genial. Pero necesito ...si hay más caracteres para mostrar porque cuando la longitud de la línea es larga y se sale del div escrito.
Moshii

Esto actúa de forma extraña si el texto oculto contiene hipervínculos. Si tuviera que pasar por la página, el enlace en el texto oculto se desplazaría a la pantalla, cuando debería estar oculto.
Eric

76

Si desea indicar que todavía hay más contenido disponible en ese div, probablemente quiera mostrar los "puntos suspensivos":

text-overflow: ellipsis;

Esto debería ser adicional a lo white-space: nowrap;sugerido por Septnuits.

Además, asegúrese de revisar este hilo para manejar esto en Firefox.


47
Creo que se debe utilizar text-overflow: ellipsis;con overflow: hidden;y white-space: nowrap;para hacer que funcione
Francisco Costa

caniuse.com/#feat=text-overflow aka. sí tu puedes. Considere poner todo el contenido en el atributo de título, para que el usuario aún tenga acceso a él.
DanMan

el mío solo se muestra en una línea y no llena el DIV antes de mostrar los puntos suspensivos ... stackoverflow.com/questions/26342411/… ( jsfiddle.net/ofrj55j4/20 )
SearchForKnowledge

43

Puedes usar este código CSS:

text-overflow: ellipsis; 
overflow: hidden; 
white-space: nowrap;

La propiedad de desbordamiento de texto en CSS trata situaciones en las que el texto se recorta cuando desborda el cuadro del elemento. Se puede recortar (es decir, cortar, ocultar), mostrar puntos suspensivos ('...', Valor de rango Unicode U + 2026).

Tenga en cuenta que el desbordamiento de texto solo ocurre cuando la propiedad de desbordamiento del contenedor tiene el valor oculto , desplazamiento o automático y espacio en blanco: nowrap; .

El desbordamiento de texto solo puede ocurrir en elementos de nivel de bloque o de bloque en línea , porque el elemento debe tener un ancho para desbordarse. El desbordamiento ocurre en la dirección determinada por la propiedad de dirección o los atributos relacionados.


6

El mejor código para UX y UI es

white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inherit;

0

si además, por favor, si tiene un texto largo, puede utilizar este código CSS a continuación;

text-overflow: ellipsis;
overflow: visible;
white-space: nowrap;

Hacer visible todo el texto de la línea.


0
width:200px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;

Defina el ancho también para establecer el desbordamiento en una línea


-2

Tuve el mismo problema y lo resolví usando:

display: inline-block;

en el diven cuestión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.