Sto usando CSS e voglio creare una casella con un certo rapporto che viene tenuto non importa la dimensione della casella. Ma voglio anche che la casella per cresca se c'è più contenuto in esso.CSS: mantenere le proporzioni senza traboccare contenuti
Per summerize in altri termini:
- CSS solo (se possibile)
- preservare determinate proporzioni
- permettono casella a crescere se v'è più contenuto (con rapporto)
In quelle tecniche che ho provato finora il contenuto della scatola non sono in grado di far crescere la scatola. Invece le mie uniche opzioni sono la sovrapposizione o il ritaglio del contenuto.
Il primo e il terzo metodo sono preoccupante lo spazio interno di un involucro e il contenuto è posto in cima che utilizzando una posizione assoluta. Poiché il contenuto è assolutamente posizionato, viene rimosso dal flusso del documento. Pertanto non è in grado di espandere l'elemento di avvolgimento.
La seconda opzione utilizza un'altezza fissa, che non consente al contenuto di crescere oltre.
Here is a demo using the second option. (based on viewport units)
* {margin: 0; padding: 0;}
div{
width: 50vmin; height: 50vmin;
font-size: 30px;
background: #ccc;
margin: auto;
padding: 3%;
}
<div>
<p>If you scale your window, you will see that the text does not fit into the box at some point, and therefore the text will be overlapping the box.<p>
</div>
Maggiori Metodi I parzialmente testati:
- oggetto-fit posizionamento
- FlexBox
L'adattamento dell'oggetto influisce solo sugli elementi sostituiti, per quanto ne so. Non riesco a ottenere alcun effetto sui miei div/p-elementi con queste proprietà.
Flexbox non è pratico neanche per il mio scenario. Secondo il mio attuale livello di conoscenza, flexbox non aiuta molto bene qui. Poiché si tratta principalmente di stabilire relazioni tra più oggetti. Ma non ne sono sicuro. Forse c'è qualcosa in flexbox di cui non sono ancora a conoscenza.
quindi se il contenuto è troppo grande per la scatola, la scatola trabocca il suo contenitore? – zzzzBov
@zzzzBov sì, il contenuto sta traboccando dalla scatola. –
prova 'div {font-size: 4.5vmin; } ' –