我試圖在html中創建一個流體佈局,包含圖像。 現在,我支持2種尺寸的佈局。默認佈局用於顯示1000px寬的網站。如果屏幕足夠寬(寬度超過1200像素),我會用css媒體查詢來增強許多方面。重置圖像的寬度和高度設置通過css
我有一個DIV容器,默認佈局是600px寬,增強佈局是700px。 裏面有一個隨機圖像,我知道一些元數據(寬度和高度)。如果容器太大,我可能需要縮小圖像尺寸。
所以我用這個代碼有一個流體佈局
<div class="container">
<!-- for a 650px/400px image, the downsized version is 600px/369px -->
<img src="/image?id=1234" width="650" height="400" style="width:600px;height:369px" />
</div>
和風格
@media screen and (min-width:1200px){
.container IMG {
width:auto !important;
height:auto !important;
}
}
- 這裏是它如何工作的:
在的情況下,默認佈局,內聯樣式適用。所以圖像縮小到600px/369px以適應容器。 否則,媒體查詢風格適用,並且圖像處於其默認寬度/高度(我知道圖像不會超過700像素,因此一切正常)。
- 我的問題來自圖像的加載狀態和瀏覽器保留的空間。 Chrome/Firefox的行爲是一樣的,但對我來說很奇怪。沒有用IE測試(實際上並不是我的優先級)
對於默認佈局,沒有問題,內聯樣式仍然適用。瀏覽器顯示與圖像對應的空白區域。
對於增強版式,適用「自動」尺寸。但是,瀏覽器在沒有完全加載的時候並不知道圖像的自然尺寸,並且它看起來像「auto」相當於0px。如果爲圖像設置了寬度和高度屬性,那將是完美的。但事實並非如此。結果是沒有爲圖像保留空間,這不是我想要的行爲。
- 我發現的第一個解決方案是爲圖像添加另一個內聯css規則。如果我添加「最小寬度:600px;最小高度:369px」,圖像的保留空間始終爲600x369像素,而不是增強版式的0像素。這更好,但還不完美。
- 你怎麼看?
- 是否有可能「重置」的CSS,而不是與覆蓋它的「汽車!重要」的規則?
- 我應該使用其他方法嗎?
- 我可能會使用一些javascript,但我認爲依靠它是一個壞主意。實際上,我可能有很多類似於上述的容器。我更喜歡自動解決方案(css對此很好)。
你知道它是否可以添加一個內嵌媒體查詢一個元素?我不認爲這是可能的。但是,如果是這樣,我可以這樣寫: – Mat 2012-03-30 14:56:41