Ok, ho capito.
Non so se è troppo tardi o cosa, ma ho trovato un modo puro al 100% CSS per creare miniature quadrate. È qualcosa che ho cercato di trovare una soluzione per un bel po 'e non ho avuto fortuna. Con qualche sperimentazione, ho funzionato. I due attributi principali da utilizzare sono OVERFLOW: HIDDEN e WIDTH/HEIGHT: AUTO.
Ok, ecco cosa fare:
Diciamo avete una serie di immagini di varie forme e dimensioni, un po 'di paesaggio, un po' di ritratto, ma tutti, ovviamente, di forma rettangolare. La prima cosa da fare è categorizzare i link delle immagini (miniature) da verticale o orizzontale, usando un selettore di classe. Ok, quindi diciamo che vuoi solo creare due miniature, per semplificare questo. si dispone di:
img1.jpg (ritratto) e img2.jpg (paesaggio)
Per HTML sarebbe simile a questa:
<a class="portrait" href="yoursite/yourimages/img1.jpg"><img src="yoursite/yourimages/img1.jpg /></a>
<a class="landscape" href="yoursite/yourimages/img2.jpg"><img src="yoursite/yourimages/img2.jpg /></a>
Quindi, a questo punto, dal momento che non v'è alcun css ancora, il codice sopra vi darà la vostra immagine a grandezza naturale come una miniatura che si collegherebbe alla stessa immagine a grandezza naturale.Bene, quindi ecco il css sia per il ritratto che per il paesaggio. Ci sono due dichiarazioni per ogni (il link e l'immagine del link):
.landscape {
float:left;
width:175px;
height:175px;
overflow:hidden;
}
.landscape img{
width:auto;
height: 175px;
}
.portrait {
float:left;
width:175px;
height:175px;
overflow:hidden;
}
.portrait img {
width:175px; <-- notice these
height: auto; <-- have switched
}
Le cose più importanti sono la larghezza e l'altezza e l'overflow: hidden. Il float a sinistra non è necessario perché funzioni.
Nella dichiarazione di anteprima del paesaggio (.landscape) il riquadro di delimitazione è impostato su 175 x 175 e l'overflow è impostato su nascosto. Ciò significa che qualsiasi informazione visiva maggiore di quella contenente 175 px quadrati sarà nascosta alla vista.
Per la dichiarazione dell'immagine del paesaggio (.landscape img), l'altezza è fissata a 175 px, che ridimensiona l'altezza originale e la larghezza è impostata su auto, che ridimensiona la larghezza originale, ma solo fino al punto di rapportarsi al quadrato limite, che in questo caso è 175 px. Quindi, piuttosto che spingere la larghezza in basso nel quadrato, riempie semplicemente il quadrato e quindi qualsiasi informazione visiva aggiuntiva nella larghezza (ad esempio l'overflow) è nascosta con l'overflow: nascosto.
Funziona allo stesso modo per il ritratto, solo che la larghezza e l'altezza sono commutate, dove l'altezza è automatica e la larghezza è 175px. Fondamentalmente in ogni caso, qualunque dimensione eccede l'altra è impostata su auto, perché naturalmente la dimensione più grande sarebbe quella che traboccherebbe al di fuori delle dimensioni dell'anteprima impostata (175 px x 175x).
E se si desidera aggiungere margini tra i pollici, ad esempio un margine bianco di 5px, è possibile utilizzare la proprietà border, altrimenti non vi sarà margine in cui le informazioni stanno straripando.
Spero che questo abbia senso.
Ti interessa il rapporto aspetto? – Matthew
Non voglio solo fare width = 175 height = 175 visto che sembrerà davvero distorto. Ma se leggermente distorto, va bene. – user749798