DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS3基礎 >> 8.2 背景大小background-size屬性
8.2 背景大小background-size屬性
編輯:CSS3基礎     

一、background-size屬性

在CSS3之前,背景圖片的大小是由圖片的實際大小決定的。

在CSS3中,我們可以使用background-size屬性來設置背景圖片的大小,這使得我們可以在不同的環境中重復使用背景圖片。

語法:

background-size:取值;

說明:

background-size取值共有2種,一種是使用長度值(如px、百分比);另外一種是使用關鍵字。

background-size關鍵字取值如下表:

background-size關鍵字取值 關鍵字 說明 cover 即“覆蓋”,將背景圖片以等比縮放來填充整個容器元素 contain 即“容納”,將背景圖片等比縮放至某一邊緊貼容器邊緣為止

以下實例都是使用如下圖片作為背景圖片(120px×80px):

舉例1:background-size取值為長度值

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS3 background-size屬性</title>
    <style type="text/css">
        div
        {
           width:160px;
           height:100px;
           border:1px solid red;
           margin-bottom:10px;
           background-image:url("../App_images/lesson/run_css3/css3.png");
           background-repeat:no-repeat;
        }
        #div2{background-size:160px 100px;}
    </style>
</head>
<body>
    <div id="div1"></div>
    <div id="div2"></div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

第1個div元素背景圖片大小使用默認值(即圖片的實際大小),而第2個div元素使用background-size屬性重新定義了背景圖片的大小。其中,“background-size:160px 100px”表示定義背景圖片寬度為160px,高度為100px。

舉例2:background-size取值為關鍵字

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS3 background-size屬性</title>
    <style type="text/css">
        div
        {
           width:160px;
           height:100px;
           border:1px solid red;
           margin-bottom:10px;
           background-image:url("../App_images/lesson/run_css3/css3.png");
           background-repeat:no-repeat;
        }
        #div2{background-size:cover;}
        #div3{background-size:contain;}
    </style>
</head>
<body>
    <div id="div1"></div>
    <div id="div2"></div>
    <div id="div3"></div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

第1個div沒有使用background-size屬性。我們從第2個div和第3個div,可以看出背景圖片都產生了縮放。當屬性background-size的值為cover時,背景圖像按比例縮放,直到覆蓋整個背景區域為止,但可能會裁剪掉部分圖像。當屬性background-size的值為contain時,背景圖像會完全顯示出來,但可能不會完全覆蓋背景區域。

舉例3:自適應元素大小的背景圖片

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS3 background-size屬性</title>
    <style type="text/css">
        #control
        {
            margin-bottom:10px;
        }
        #view
        {
            border:1px solid red;
            width:60px;
            height:40px;
            background-image:url("../App_images/lesson/run_css3/css3.png");
            background-size:cover;
        }
    </style>
    <script src="../App_js/jquery-1.11.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#range_width").change(function () {
                var num = $(this).val();
                $("#value_width").text(num+"px");
                $("#view").css("width", num + "px");
            });
            $("#range_height").change(function () {
                var num = $(this).val();
                $("#value_height").text(num+"px");
                $("#view").css("height", num + "px");
            });
        })
    </script>
</head>
<body>
    <div id="control">
        寬度:<input id="range_width" type="range" min="60" max="300" value="60"/><span id="value_width">60px</span><br />
        高度:<input id="range_height" type="range" min="40" max="200" value="40"/><span id="value_height">40px</span>
    </div>
    <div id="view"></div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

這裡使用的背景圖片實際大小為120px×80px。不過由於使用“background-size:cover;”使得不管元素實際寬度和高度如何變化,背景圖片都會自適應元素的大小。

注意:此例子請在火狐浏覽器下測試,否則無法查看動態效果。

疑問

1、對於背景圖片,不是可以使用width和height屬性來設置嗎?為什麼還要增加一個background-size屬性呢?

記住,背景圖片不同於img標簽引用的圖片,對於img標簽引用的圖片,我們可以使用width和height屬性來設置,但是這兩個屬性不能用於設置背景圖片的大小。因此,在CSS3中,引入了background-size屬性來設置背景圖片的大小。這裡大家要清楚一點,背景圖片的大小跟一般圖片的大小設置有本質的區別。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved