使用CSS我想限制1維度,以決不超過其他因素。限制寬度與高度的關係,反之亦然
例如此僞代碼:
max-height: (width * 0.75)px;
將確保元件的高度也不會超過75%的它的寬度,但也可以是更小的。
是這樣的可能,還是我運氣不好?
編輯:請注意,我不看使高度寬度正是 75%,而我期待,以確保它不會超過 75%
使用CSS我想限制1維度,以決不超過其他因素。限制寬度與高度的關係,反之亦然
例如此僞代碼:
max-height: (width * 0.75)px;
將確保元件的高度也不會超過75%的它的寬度,但也可以是更小的。
是這樣的可能,還是我運氣不好?
編輯:請注意,我不看使高度寬度正是 75%,而我期待,以確保它不會超過 75%
CSS不允許基於其他值設置屬性,因此您需要使用其他方法,例如javascript。
這裏是一個jQuery例如:
var $elem = $('#elem');
$elem.css('max-height', $elem.width() * 0.75);
這是一個有效的解決方案,但這樣做會更糟糕。這意味着我必須傾聽調整大小事件以確保它保持準確,並且每當DOM迴流(這是一個相當動態的應用程序)。對於不關心的情況,仍然是一個很好的答案。 – Evert
您不能設置比例,但總有padding-bottom
!重讀
後9比使用padding-bottom: 56.25%
一個編輯如果我建議使用一個:
div {
width: 100%;
padding-bottom: 75%;
}
該代碼將設置div
爲4:3的比例
對於16 div裏面的div?
<div class="a">
<div class="b">
</div>
</div>
<style>
.a{
width:100%;
padding-bottom: 75%;
background-color: red;
position: relative;
}
.b{
width: 100%;
max-height: 100%;
background-color: white;
position: absolute;
overflow: hidden;
}
</style>
把裏面div.b
的內容和它永遠不會超過75%
退房這個問題:Height equal to dynamic width (CSS fluid layout)
具體@ Kristijan的答案。您將需要調整底部填充。
.some_element {
position: relative;
width: 20%;
height: 0;
padding-bottom: 20%;
}
這不回答這個問題。我正在使用它作爲「最大高度」而不是「高度」。如果它是「高度」,你會是對的。 – Evert
的[保持與CSS一個div的縱橫比(可能的複製http://stackoverflow.com/questions/1495407/maintain-the-aspect-ratio-of-a -div-with-css) – NovaLogic
這被稱爲縱橫比fyi – zgood
這個問題似乎不是保留寬高比的問題,但不超過一些縱橫比,這是不同的。 –