響應(yīng)式 Web 設(shè)計 – 圖片

2022-05-19 15:40 更新

響應(yīng)式 Web 設(shè)計 - 圖片


使用 width 屬性

如果 width 屬性設(shè)置為 100%,圖片會根據(jù)上下范圍實現(xiàn)響應(yīng)式功能:

實例

img {
width: 100%;
height: auto; }

嘗試一下 ?

注意在以上實例中,圖片會比它的原始圖片大。我們可以使用 max-width 屬性很好的解決這個問題。


使用 max-width 屬性

如果 max-width 屬性設(shè)置為 100%, 圖片永遠(yuǎn)不會大于其原始大小:

實例

img {
max-width: 100%;
height: auto; }

嘗試一下 ?

提示:關(guān)于max-width 屬性的更多內(nèi)容,請參考本站 CSS 參考手冊中的 CSS max-width屬性部分。


網(wǎng)頁中添加圖片

實例

img {
width: 100%;
height: auto; }

嘗試一下 ?

背景圖片

背景圖片可以響應(yīng)調(diào)整大小或縮放。

以下是三個不同的方法:

1. 如果 background-size 屬性設(shè)置為 contain, 背景圖片將按比例自適應(yīng)內(nèi)容區(qū)域。圖片保持其比例不變:

這是 CSS 代碼:

實例

div
background-repeat: no-repeat;
background-size: contain; }

嘗試一下 ?

2. 如果 background-size 屬性設(shè)置為 "100% 100%" ,背景圖片將延展覆蓋整個區(qū)域:

實例

這是 CSS 代碼:

div
background-size: 100% 100%; }

嘗試一下 ?

3. 如果 background-size 屬性設(shè)置為 cover,則會把背景圖像擴展至足夠大,以使背景圖像完全覆蓋背景區(qū)域。注意該屬性保持了圖片的比例因此 背景圖像的某些部分無法顯示在背景定位區(qū)域中。

這是 CSS 代碼:

實例

div {
background-size: cover;
border: 1px solid red;}

嘗試一下 ?

不同設(shè)備顯示不同圖片

大尺寸圖片可以顯示在大屏幕上,但在小屏幕上確不能很好顯示。我們沒有必要在小屏幕上去加載大圖片,這樣很影響加載速度。所以我們可以使用媒體查詢,根據(jù)不同的設(shè)備顯示不同的圖片。

以下大圖片和小圖片將顯示在不同設(shè)備上:

 

實例

/* For width smaller than 400px: */
body {
background-image: url('img_smallflower.jpg');
}
/* For width 400px and larger: */
@media only screen and (min-width: 400px) {
body {
background-image: url('img_flowers.jpg'); } }

  嘗試一下 ?

你可以使用媒體查詢的 min-device-width 替代 min-width 屬性,它將檢測的是設(shè)備寬度而不是瀏覽器寬度。瀏覽器大小重置時,圖片大小不會改變。

實例

/* 設(shè)備小于 400px: */
body {
background-image: url('img_smallflower.jpg'); }
/* 設(shè)備大于 400px (也等于): */
@media only screen and (min-device-width: 400px) {
body {
background-image: url('img_flowers.jpg'); } }

嘗試一下 ?

HTML5 <picture元素

HTML5 的 <picture>元素可以設(shè)置多張圖片。

瀏覽器支持

元素
<picture> 不支持 38.0 38.0 不支持 25.0
<picture> 元素類似于<video><audio> 元素??梢栽O(shè)備不同的資源,第一個設(shè)置的資源為首選使用的:

實例

<picture>
<source srcset="img_smallflower.jpg" media="(max-width: 400px)">
<source srcset="img_flowers.jpg">
<img src="img_flowers.jpg" alt="Flowers">
</picture>

嘗試一下 ?

srcset 屬性的必須的,定義了圖片資源。

media 屬性是可選的,可以在媒體查詢的 CSS @media 規(guī)則 查看詳情。

對于不支持<picture元素的瀏覽器你也可以定義<img>元素來替代。


擴展閱讀

《響應(yīng)式圖片101》:介紹為什么需要響應(yīng)式圖片以及如何選擇正確的響應(yīng)式圖片解決方案。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號