varias - Desbordamiento de texto CSS: puntos suspensivos; ¿no funciona?
truncar texto con puntos suspensivos (10)
Escribe esto en tu regla css.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<!-- Inline level -->
<span class="d-inline-block text-truncate" style="max-width: 250px;">
The quick brown fox jumps over the lazy dog.
</span>
No sé por qué este simple CSS no está funcionando ...
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
margin: 0 5px 0 5px;
font: bold 15px/18px Arial;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
color: #FFF;
}
<div class="app">
<img src=""></img>
<h1></h1>
<a href=""></a>
</div>
Añadir display: block; o display: inline-block; a su #User_Apps_Content .DLD_App a
En bootstrap 4 , puede agregar una clase .text-truncate para truncar el texto con puntos suspensivos.
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
Incluye las cuatro líneas escritas después de la información para que los puntos suspensivos funcionen
.app a {
height: 18px;
width: 140px;
padding: 0;
position: relative;
margin: 0 5px 0 5px;
font: bold 15px/18px Arial;
text-align: center;
text-decoration: none;
color: #FFF;
/*
**Note:**The Below 4 Lines are necessary
for ellipsis to work
*/
display: block; // change it as per your requirement
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
La respuesta aceptada es impresionante. Sin embargo, todavía puede utilizar % ancho y obtener text-overflow: ellipsis . La solución es simple:
display: inline-block; /* for em, a, span, etc (inline by default) */
text-overflow: ellipsis;
width: calc (80% - 0px); /* killer line hahaha */
Aparece cada vez que usas calc , el valor final se representa en píxeles absolutos, lo que en consecuencia convierte 80% - 0px a algo así como 800px para un 1000px 1000px 1000px ancho. Por lo tanto, en lugar de usar el width: [YOUR PERCENT]% , use width: calc([YOUR PERCENT]% - 0px) .
Simplemente agregue una línea css:
.app a {
display: inline-block;
}
También asegúrese de word-wrap ajuste de word-wrap esté configurado en normal para IE10 e inferior.
Los estándares a los que se hace referencia a continuación definen el comportamiento de esta propiedad como dependiente de la configuración de la propiedad "text-wrap". Sin embargo, la configuración de wordWrap siempre es efectiva en Windows Internet Explorer porque Internet Explorer no admite la propiedad "text-wrap".
Por lo tanto, en mi caso, el ajuste de word-wrap se configuró como una palabra clave (¿heredada o por defecto?), Lo que causó que text-overflow funcione en FF y Chrome, pero no en IE.
También puedes añadir float: left; dentro de esta clase #User_Apps_Content .DLD_App a
anchor etiquetas anchor , span ... son elementos en línea de forma predeterminada, en caso de que los elementos en línea, la propiedad de width no funcione. Así que tienes que convertir tu elemento a elementos de block level inline-block o block level
text-overflow:ellipsis; Solo funciona cuando lo siguiente es cierto:
- El ancho del elemento debe estar restringido en
px(píxeles). El ancho en%(porcentaje) no funcionará. - El elemento debe tener
overflow:hiddenywhite-space:nowrapconjunto dewhite-space:nowrap.
La razón por la que tiene problemas aquí es porque el width de su elemento no está restringido. Tiene una configuración de width , pero como el elemento está configurado para display:inline (es decir, el valor predeterminado) lo ignora, y nada más restringe su ancho tampoco.
Puede solucionar esto haciendo uno de los siguientes:
- Configure el elemento para
display:inline-blockodisplay:block(probablemente el primero, pero depende de sus necesidades de diseño). - Configure uno de sus elementos contenedores para
display:blocky dé a ese elemento unwidthfijo owidthmax-width. - Establezca el elemento para
float:leftofloat:right(probablemente el primero, pero de nuevo, cualquiera debería tener el mismo efecto en lo que respecta a los puntos suspensivos).
Yo sugeriría display:inline-block , ya que esto tendrá el impacto colateral mínimo en su diseño; funciona muy parecido a la display:inline que se está utilizando actualmente en lo que respecta al diseño, pero siéntase libre de experimentar con los otros puntos también; He intentado dar la mayor cantidad de información posible para ayudarlo a comprender cómo estas cosas interactúan entre sí; una gran parte de la comprensión de CSS se trata de entender cómo los diferentes estilos trabajan juntos.
Espero que ayude.
Aquí hay un jsfiddle con su código, con una display:inline-block agregó display:inline-block , para mostrar lo cerca que estaba.
Referencias útiles: