Quindi diciamo che ho questo markup;Larghezza massima dinamica per il testo
<div>
<span>Text one</span>
<span class="sticky">ABC</span>
</div>
<div>
<span>Some other text</span>
<span class="sticky">DEF</span>
</div>
<div>
<span>Lorem dolor sit amet lorem ipsum dolor</span>
<span class="sticky">GHI</span>
</div>
Quale sarebbe - con il CSS di accompagnamento - fornire un risultato come nella foto qui sotto.
Tuttavia, il problema si verifica quando il testo nel primo span
è più lungo della larghezza assegnata del div
. Normalmente ciò che accade è solo normale avvolgimento del testo; il secondo span
è urtato alla fine della seconda riga.
Tuttavia, voglio che questo elemento sia solo una riga. Ora, ovviamente per raggiungere questo, lo fai;
white-space: nowrap;
overflow: hidden;
Ma ciò che accade è il secondo span
scompare nell'oblio, come è aspirato dal lunghezza del testo nel primo span
.
Quello che vorrei ottenere è ciò che è illustrato nel terzo esempio di seguito. Quando il contenuto del primo span
è troppo lungo per essere visualizzato, text-overflow: ellipsis;
taglierebbe la stringa con un punto-punto-punto e il secondo span
verrebbe inviato all'estrema destra (padding
del div
consentito).
Essenzialmente, la pseudo max-width
del primo span
sarebbe uguale alla larghezza del div
, escludendo la sua padding
e sottraendo la larghezza di span.sticky
, qualunque essa sia (come il contenuto di esso può variare, quindi l'ampiezza non è impostato).
Non so se max-width
è in realtà la strada da percorrere quando mi avvicino a qualcosa di simile, ma è quello che posso usare per descrivere al meglio il comportamento che voglio.
Esiste un metodo non JS per raggiungere questo obiettivo?
Credo che per renderlo pienamente dinamica, potrebbe essere migliorato con un piccolo JS dohickey che calcolate l'attuale 'max-width' per la prima 'span' in base alla larghezza di' div' e alla larghezza effettiva del contenuto di 'sticky', per la mancanza di funzionalità simili nei CSS. Ma è un ottimo inizio. –
Giocherellando per creare questo; http://jsfiddle.net/GEzXU/ - i pareri su come questo approccio sia intelligente sono accolti favorevolmente. –
C'è un modo per farlo funzionare usando una larghezza dinamica per il div esterno? – crobicha