2015-11-15 22 views
15

Esiste un modo in HTML o CSS per limitare i caratteri visualizzati con uno span? Io uso un ripetitore che visualizza queste informazioni e voglio limitare i caratteri ai primi 20 caratteri e se l'input ha più, quindi concatenare semplicemente? La scatola è come immagine indicata:Limitare i caratteri visualizzati nell'intervallo

enter image description here

Il mio codice per questo è:

<span class="claimedRight" maxlength="20">{{ item.provider }}</span> 
+2

'maxlength' è un attributo elemento di ingresso. Puoi impostare una larghezza per l'oggetto e usare 'text overflow: ellissi 'in CSS. Limitare i caratteri non è possibile con i CSS poiché non può funzionare con i nodi di testo. –

risposta

42

Ecco un esempio di utilizzo di text-overflow:

.text { 
 
    display: block; 
 
    width: 100px; 
 
    overflow: hidden; 
 
    white-space: nowrap; 
 
    text-overflow: ellipsis; 
 
}
<span class="text">Hello world this is a long sentence</span>

+1

Aggiungo che quando si utilizza questa tecnica è una buona idea impostare la larghezza in unità 'em' in modo che la quantità di testo che si adatta ai contenitori si riduca con la dimensione del carattere. – TylerFowler

1

max-length viene utilizzato per gli elementi input. Usa la proprietà text-overflow di CSS.

.claimedRight { 
    display:block; width: 250px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 
2

È possibile utilizzare i CSS ellipsis; ma bisogna dare larghezza fissa e overflow:hidden: a quell'elemento.

<span style="display:block;text-overflow: ellipsis;width: 200px;overflow: hidden; white-space: nowrap;"> 
 
\t Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 
 
\t </span>

+0

come posso farlo senza display block? – Dejell

1

Sì, più o meno.

È esplicitamente possibile dimensionare un contenitore utilizzando unità rispetto a font-size:

  • 1em = 'la larghezza orizzontale della lettera m'
  • 1ex = 'l'altezza verticale della lettera x'
  • 1ch = 'la dimensione orizzontale del numero 0'

Inoltre è possibile utilizzare alcune proprietà CSS come overflow:hidden;white-space:nowrap;text-overflow:ellipsis; per aiutare limitare il numero pure.

+0

«em = 'la larghezza orizzontale della lettera m'» sei sicuro? Non sembra essere il caso. https://developer.mozilla.org/en-US/docs/Web/CSS/length#em https://developer.mozilla.org/en-US/docs/Web/CSS/font-size#Ems – tuxayo

+1

Grazie per aver capito questo, gli em erano l'unica cosa giusta su questo post. Lo modifico –

0

uso js:

$(document).ready(function() 
    { $(".class-span").each(function(i){ 
     var len=$(this).text().trim().length; 
     if(len>100) 
     { 
      $(this).text($(this).text().substr(0,100)+'...'); 
     } 
    }); 
}); 
+0

Se puoi usare css invece di js, vai per css. –

+0

hanno molte opzioni :) –

Problemi correlati