這實際上是可能沒有JS!
關鍵是要使用<img>
這是一個replaced element,因此如果你只設置高度,它的寬度將自動設置,以保持圖像的固有高寬比。
因此可以執行以下操作:
<style>
.container {
position: relative;
display: inline-block; /* shrink wrap */
height: 50%; /* arbitrary input height; adjust this */
}
.container > img {
height: 100%; /* make the img's width 100% of the height of .container */
}
.contents {
/* match size of .container, without influencing it */
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
</style>
<div class="container">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
<div class="contents">
Put contents here.
</div>
</div>
如果你想.contents
爲具有4:3的縱橫比,那麼你將代替設置在img至133%的高度,所以的寬度img,因此.contents
將是.container
高度的133%。寬高比爲4:
的1現場演示http://jsbin.com/afecej/1/edit(帶有附加代碼的註釋)
如果你想知道,在img數據URI爲1x1 px transparent gif)。如果圖像沒有1:1的寬高比,則必須調整相應設置的高度值。
見的答案。有可能的。 – 2013-08-28 01:50:35