Mijn einddoel is om een vloeiende <img>
te hebben die niet verder reikt dan een expliciet ingestelde hoogte van een bovenliggend/grootouderelement met alleen css.
Momenteel doe ik dit met een normale (max-width:100; height:auto;
) vloeiende afbeelding en javascript door de hoogte/breedte-attributen van de img-tag te lezen en het aspect te berekenen ratio, het berekenen van de juiste breedte van de afbeelding bij de gewenste hoogtebeperking en het toepassen van die breedte als een max-width
op het containerelement van de afbeelding. Vrij eenvoudig, maar ik zou het graag zonder javascript kunnen doen.
height:100%; width:auto;
werkt niet hetzelfde als zijn transversale, en ik heb een aantal pogingen gedaan met de oude opgevulde doos van Unc Dave en de absolute positionering van die functie, maar ik moet de hoogte-breedteverhouding van de afbeelding vooraf kennen en kan daarom niet worden toegepast op afbeeldingen met verschillende verhoudingen. Dus de laatste vereiste is dat de css proportie-agnostisch moet zijn.
Ik weet het, ik weet het, het antwoord op deze vraag is waarschijnlijk naast de eenhoornboerderij zitten, maar ik dacht ik gooi het er toch maar uit.
Antwoord 1, autoriteit 100%
De truc is om zowel max-height: 100%;
als max-width: 100%;
toe te voegen aan .container img
. Voorbeeld CSS:
.container {
width: 300px;
border: dashed blue 1px;
}
.container img {
max-height: 100%;
max-width: 100%;
}
Op deze manier kunt u de opgegeven breedte van .container
op elke gewenste manier variëren (200px of 10% bijvoorbeeld), en de afbeelding zal niet groter zijn dan zijn natuurlijke afmetingen. (U kunt pixels specificeren in plaats van 100% als u niet wilt vertrouwen op de natuurlijke grootte van de afbeelding.)
Hier is de hele viool: http://jsfiddle.net/KatieK/Su28P/1/
Antwoord 2, autoriteit 3%
Ik heb de onderstaande 3 stijlen ingesteld op mijn img
-tag
max-height: 500px;
height: 70%;
width: auto;
Wat het doet voor desktopscherm img groeit niet verder dan 500px
maar voor kleine mobiele schermen krimpt het tot 70% van de buitenste container. Werkt perfect.
Het werkt ook width
eigenschap.
Antwoord 3
U kunt inline styling gebruiken om de hoogte te beperken:
<img src="" class="img-responsive" alt="" style="max-height: 400px;">