2013-08-05 17 views
6

Come si imposta un campo di input per mostrare i puntini di sospensione se il testo è troppo lungo? Il campo di input è di sola lettura e la sua larghezza è impostata su 100%.Come mostrare i puntini di sospensione su un campo di input di sola lettura nel browser di serie Android?

È possibile? In caso contrario, come si fa in JavaScript?

Nota: anche se questo sembra funzionare su Chrome, non funziona sul browser azionario Android.

Il mio attuale CSS per il campo di inserimento:

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

Grazie!

+3

possibile duplicato di [Inserisci ellissi (...) nel tag HTML se il contenuto è troppo largo] (http://stackoverflow.com/questions/536814/insert-ellipsis-into-html-tag-if-content-too -wide) –

+1

@ JukkaK.Korpela: il link sopra riguarda un tag html generico. La mia domanda è specifica per il campo di input. Sono stato in grado di visualizzare i puntini di sospensione sui tag html ma non su un campo di input. Grazie! – Arci

+1

Se hai una domanda specifica su un caso speciale, deve essere presentata in questo modo (preferibilmente con un riferimento al caso generale). Dai commenti, sembra che tu stia avendo problemi con un particolare browser. Dovrebbero essere fatti i dovuti chiarimenti nel testo e possibilmente il titolo della * domanda *, non solo nei commenti. –

risposta

1

penso che questo vi aiuterà a answer

È possibile creare una classe e applicarlo sul tuo textbox
HTML

<input type="text" readonly value="Lorem ispum dolor sit amit Lorem ispum dolor sit amit Lorem ispum dolor sit amit Lorem ispum dolor sit amit " class="ellipsis"> 

CSS

.ellipsis { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
} 

per risolvere i problemi Android CSS text-overflow in base alle Ben

*{ 
    text-rendering: optimizeLegibility; 
} 

Controllare che vivono qui http://jsfiddle.net/b4YjX/

+0

Grazie per la tua risposta, ma questo non funziona sul browser Android. Il mio codice attuale è lo stesso con il tuo meno il '-o-text-overflow'. Mentre funziona su Chrome, non funziona sul browser azionario Android. – Arci

+0

@Arci: puoi dare un'occhiata a questo? http://www.chilisapps.com/blog/2013/04/18/css-text-overflow-issues-on-android/ – zzlalani

+0

Grazie per il link! Tuttavia, non risolve il mio problema. Ho anche provato la proprietà 'optimizeLegibility' ma il campo di input continua a non mostrare ellissi. – Arci

5

A seconda delle esigenze, è possibile utilizzare i CSS di text-overflow per raggiungere questo obiettivo:

HTML:

<input disabled="disabled" value="really really long text that will be trunked" /> 

CSS

input{ 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
    width: 100px; 
} 

demo: http://jsfiddle.net/yrPc8/

+0

Ciao! Grazie per il tuo commento! Ho anche un overflow di testo con larghezza ma non mostra ancora i puntini di sospensione sul browser azionario Android. – Arci

0

Il seguente codice è stato testato e funziona, spero che vi aiuterà!

.input{ 
overflow:hidden; 
text-overflow:ellipsis; 
width:100%; 
} 
+0

Grazie, Daniel! Ma la tua risposta è la stessa degli altri commentatori. Tuttavia, questo non funziona sul browser azionario Android. – Arci

0

Questo sembra essere una limitazione/bug nel browser Android: sembra non riuscire a implementare text-overflow: ellipsis su qualsiasi elemento input.

Ad esempio, invece di <input name=foo value="some long string here" width=100%>, è possibile utilizzare

<style> 
.hidden { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    width: 100%; 
} 
</style> 
<div class=hidden>some long string here</div> 
<input type=hidden name=foo value="some long string here"> 

Per un campo di sola lettura, c'è una soluzione semplice: duplicare i dati, prima in (diciamo) div elemento, sul quale si imposta text-overflow: ellipsis, e poi in un campo nascosto. Si potrebbe desiderare di modellare il primo elemento in modo che assomigli ad un campo di sola lettura, ma mantenerlo come testo normale renderebbe ancora più chiaro all'utente che questi dati non possono essere modificati usando mezzi normali.

Come al solito con dispositivi di piccole dimensioni, normalmente è necessario qualcosa come <meta name="viewport" content="width=device-width,initial-scale=1"> per rendere 100% corrispondente alla larghezza effettiva del dispositivo.

Problemi correlati