編輯添加:喲,你從哪個教程得到該標記?我剛剛意識到,它看起來像是試圖使用舊的srcset語法,這是從來沒有人實現過的,這是一個壞主意。如果您可以指出您的位置,我們可以嘗試更新該教程,並防止更多人犯同樣的錯誤。
首先,混合w和x是無效的。這不應該是你的問題的直接原因,但它會導致完全不可預知的行爲。 (w描述符根據它的值和sizes
屬性的值被轉換爲等價的x描述符。)
其次,w描述符不會像你要求的那樣做任何事情。它與sizes
屬性一起用於指定圖像的密度間接,此時圖像的最終大小不是單個硬編碼的px值。它與屏幕的大小無關,也不隱藏任何東西。這是圖片的寬度,圖片像素的寬度。現在
,假設hero_desktop和hero_mobile實際上是不同的圖像(不同尺寸,不同作物,不同的內容,等等),而不僅僅是同一圖像的不同分辨率版本,你真正想要做的是使用<picture>
:
當屏幕是> = 768px,並且默認爲移動圖像否則
html <picture> <source media="(min-width: 768px)" srcset="../img/hero_desktop.jpg"> <img src="../img/hero_mobile.jpg"> </picture>
這將選擇在桌面圖像。
在另一方面,如果臺式機和移動圖像是相同的圖像,只是在不同的分辨率,那麼你就需要使用<img srcset>
,但無論是x
或w
對他們倆的堅持。如果圖像是靜態大小,或者允許其爲「原生」大小,則使用x
。如果您的佈局將圖像設置爲特定尺寸,請使用w
(和sizes
)。那麼不要擔心圖像切換的時間。如果你聲明瞭正確的東西,瀏覽器會爲你做出合理的選擇。
舊帖子我知道,但我剛剛遇到類似的文章從2014年,同時研究響應圖像,建議使用srcset ... https://css-tricks.com/responsive-images-youre-just-changing-分辨率 - 使用 - srcset / – user2074363