前提是定義了background-image屬性,然后用background-attachment來(lái)指明背景圖的位置是固定于視口的,還是隨著包含塊移動(dòng)的。可簡(jiǎn)單理解為定義背景圖片隨滾動(dòng)軸的移動(dòng)方式。
取值:
scroll:默認(rèn)值,背景圖相對(duì)于元素固定,背景隨頁(yè)面滾動(dòng)而移動(dòng),即背景和內(nèi)容綁定。
fixed:背景圖相對(duì)于視口固定,所以隨頁(yè)面滾動(dòng)背景不動(dòng),相當(dāng)于背景被設(shè)置在了body上。
local:背景圖相對(duì)于元素內(nèi)容固定,
inhert:繼承,沒(méi)什么說(shuō)的。
該屬性可以應(yīng)用于任何元素。
一、scroll【背景圖滾動(dòng)】
設(shè)置background-attachment:scroll,背景圖是相對(duì)于元素自身固定,內(nèi)容動(dòng)時(shí)背景圖也動(dòng)。附加到元素的border。

local
Note:
對(duì)于scroll,一般情況背景隨內(nèi)容滾動(dòng),但是有一種情況例外。
對(duì)于可以滾動(dòng)的元素(設(shè)置為overflow:scroll的元素)。當(dāng)background-attachment設(shè)置為scroll時(shí),背景圖不會(huì)隨元素內(nèi)容的滾動(dòng)而滾動(dòng)。

二、local【滾動(dòng)元素背景圖滾動(dòng)】
對(duì)于可以滾動(dòng)的元素(設(shè)置為overflow:scroll的元素),設(shè)置background-attachment:local,則背景會(huì)隨內(nèi)容的滾動(dòng)而滾動(dòng)。
因?yàn)楸尘皥D是相對(duì)于元素自身內(nèi)容定位,開始固定,元素出現(xiàn)滾動(dòng)條后背景圖隨內(nèi)容而滾動(dòng)。
<style> div{ width: 200px; height: 350px; border: 1px solid red; background-image: url(img/img_tree.png); background-repeat: no-repeat; background-attachment: local; overflow: scroll; line-height: 1.5; } </style> <body> <div> 1內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 2內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 3內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 4內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 5內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 6內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 7內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 8內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 9內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 10內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 11內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 12內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 13內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 14內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 15內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 16內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 17內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 18內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 19內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 20內(nèi)容超出會(huì)出現(xiàn)滾動(dòng)條 </div> </body>
三、fixed:【背景圖靜止】
背景圖片相對(duì)于視口固定,就算元素有了滾動(dòng)條,背景圖也不隨內(nèi)容移動(dòng)。
fixed用法如下:
<style> body{ background-image: url(img/cartooncat.png); background-position: bottom left; background-attachment: fixed; background-repeat: no-repeat; height: 1000px; } </style> </head> <body> <h1>下拉看效果:</h1> </body>
或者看mozilla的demo。
這里我要強(qiáng)調(diào)一點(diǎn)我的看法:
給任何元素的背景圖設(shè)置background-attachment: fixed;效果都是一樣的,都是相對(duì)于視口,因?yàn)橐粋€(gè)網(wǎng)頁(yè)只有一個(gè)視口,該背景和元素已經(jīng)沒(méi)關(guān)系了,要說(shuō)有關(guān)大概也只是元素不可見則背景圖不可見。
而這個(gè)視口是什么呢?這里推薦一篇文章《像素與瀏覽器視口的細(xì)節(jié)》
四、多背景圖background-attachment
也可以為多個(gè)背景圖設(shè)置background-attachment
body { background-image: url("img1.png"), url("img2.png"); background-attachment: scroll, fixed; }
五、資源鏈接
w3c background-attachment
像素與瀏覽器視口的細(xì)節(jié)
a table of two viewports