天天看點

響應式 Web 設計 - 圖檔

如果 width 屬性設定為 100%,圖檔會根據上下範圍實作響應式功能:

img {

    width: 100%;

    height: auto;

}

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

如果 max-width 屬性設定為 100%, 圖檔永遠不會大于其原始大小:

    max-width: 100%;

背景圖檔可以響應調整大小或縮放。

以下是三個不同的方法:

1. 如果 background-size 屬性設定為 "contain", 背景圖檔将按比例自适應内容區域。圖檔保持其比例不變:

這是 CSS 代碼:

div {

    height: 400px;

background-image: url('img_flowers.jpg');

background-repeat: no-repeat;

background-size: contain;

    border: 1px solid red;

2. 如果 background-size 屬性設定為 "100% 100%" ,背景圖檔将延展覆寫整個區域:

background-size: 100% 100%;

3. 如果 background-size 屬性設定為 "cover",則會把背景圖像擴充至足夠大,以使背景圖像完全覆寫背景區域。注意該屬性保持了圖檔的比例是以

背景圖像的某些部分無法顯示在背景定位區域中。

    background-size: cover;

border: 1px solid red;

大尺寸圖檔可以顯示在大螢幕上,但在小螢幕上卻不能很好顯示。我們沒有必要在小螢幕上去加載大圖檔,這樣很影響加載速度。是以我們可以使用媒體查詢,根據不同的裝置顯示不同的圖檔。

以下大圖檔和小圖檔将顯示在不同裝置上:

響應式 Web 設計 - 圖檔
響應式 Web 設計 - 圖檔

/* 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 {

    }

你可以使用媒體查詢的 min-device-width 替代 min-width 屬性,它将檢測的是裝置寬度而不是浏覽器寬度。浏覽器大小重置時,圖檔大小不會改變。

/* 裝置小于 400px: */

裝置大于 400px (也等于): */

@media only screen and (min-device-width: 400px)

HTML5 的 <code>&lt;picture&gt;</code> 元素可以設定多張圖檔。

元素

&lt;picture&gt;

不支援

38.0

25.0

<code>&lt;picture&gt;</code> 元素類似于 <code>&lt;video&gt;</code> 和

<code>&lt;audio&gt;</code> 元素。可以裝置不同的資源,第一個設定的資源為首選使用的:

  &lt;source srcset="img_smallflower.jpg" media="(max-width:

400px)"&gt;

  &lt;source srcset="img_flowers.jpg"&gt;

  &lt;img

src="img_flowers.jpg" alt="Flowers"&gt;

&lt;/picture&gt;

<code>srcset</code> 屬性的必須的,定義了圖檔資源。

<code>media</code> 屬性是可選的,可以在媒體查詢的

CSS @media 規則 檢視詳情。

對于不支援 <code>&lt;picture&gt;</code> 元素的浏覽器你也可以定義 <code>&lt;img&gt;</code> 元素來替代。