In questo esempio semplificato, ho una libreria con libri seduti sugli scaffali. La libreria è l'elemento più esterno con una larghezza definita. I libri su una libreria dovrebbero apparire da sinistra a destra senza avvolgere. La libreria dovrebbe allungare la sua larghezza per mostrare tutti i libri sullo scaffale. Tutti gli scaffali devono avere la stessa larghezza, la larghezza della libreria più ampia.Aumenta la larghezza dell'elemento per adattarla ai suoi figli quando l'elemento principale dell'elemento ha overflow: auto;
mio HTML:
<div class="bookcase">
<div class="bookshelf">
<div class="book">
<div class="book">
<div class="book">
</div>
<div class="bookshelf">
<div class="book">
<div class="book">
<div class="book">
<div class="book">
</div>
<div class="bookshelf">
<div class="book">
</div>
</div>
mio CSS:
.bookcase {
width: 40%;
height: 300px;
margin: 0 auto;
background: lightgrey;
overflow-x: auto;
}
.bookshelf {
background: lightgreen;
white-space: nowrap;
}
.book {
display: inline-block;
height: 60px;
width: 60px;
background: pink;
}
Il problema con il codice attuale è che quando la larghezza libreria è più piccola la libreria più lunga e la libreria fa scorrere l'overflow, gli elementi della libreria non si allungano per adattarsi a tutti i libri. Attualmente gli scaffali sembrano definire la loro larghezza uguale al genitore, la libreria.
Queste immagini illustrano il problema. Questo è come la libreria appare normalmente, che va bene:
o
Ma quando si scorre a destra quando la libreria è stretta, sfondo verde gli scaffali è tagliato fuori, invece di raggiungere al lato destro dell'ultimo libro rosso:
Come posso fare gli scaffali prendono l'intera larghezza dell'elemento in overflow, piuttosto che la larghezza del contenitore principale libreria?
So che tutti odiamo i tavoli, ma questo sembra un lavoro per un tavolo. – Smeegs
L'unica cosa che posso suggerire è la visualizzazione di ogni '.bookshelf' come' table-row': http://jsfiddle.net/qolami/gr9rg/4/ –
@HashemQolami 'table-row' funziona quando c'è overflow, ma sembra interrompersi quando '.bookcase' è più largo del più largo' .bookshelf'. – BigMacAttack