這篇文章主要介紹“CSS背景background和background-position的使用方法”,在日常操作中,相信很多人在CSS背景background和background-position的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”CSS背景background和background-position的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)主營白城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),白城h5小程序制作搭建,白城網(wǎng)站營銷推廣歡迎白城等地區(qū)企業(yè)咨詢
背景(background)是css中一個(gè)重要的的部分,也是需要知道的css的基礎(chǔ)知識之一。這篇文章將會涉及css背景(background)的基本用法,包括諸如 background-attachment 等的屬性,也會介紹一些有關(guān)背景(background)的常用技巧,以及 css3 中的 背景(background)(包含4個(gè)新的背景(background)屬性)。
css2 中的背景(background)
概述
CSS2 中有5個(gè)主要的背景(background)屬性,它們是:
* background-color: 指定填充背景的顏色。
* background-image: 引用圖片作為背景。
* background-position: 指定元素背景圖片的位置。
* background-repeat: 決定是否重復(fù)背景圖片。
* background-attachment: 決定背景圖是否隨頁面滾動(dòng)。
這些屬性可以全部合并為一個(gè)縮寫屬性: background。需要注意的一個(gè)要點(diǎn)是背景占據(jù)元素的所有內(nèi)容區(qū)域,包括 padding 和 border,但是不包括元素的 margin。它在 Firefox, Safari ,Opera 以及 IE8 中工作正常,但是 IE6 和 IE7 中,background 沒把 border 計(jì)算在內(nèi)。
基本屬性
背景色(background-color)
background-color 屬性用純色來填充背景。有許多方式指定這個(gè)顏色,以下方式都得到相同的結(jié)果。
CSS Code復(fù)制內(nèi)容到剪貼板
background-color: blue;
background-color: rgb(0, 0, 255);
background-color: #0000ff;
background-color 也可被設(shè)置為透明(transparent),這會使得其下的元素可見。
背景圖(background-image)
background-image 屬性允許指定一個(gè)圖片展示在背景中。可以和 background-color 連用,因此如果圖片不重復(fù)地話,圖片覆蓋不到地地方都會被背景色填充。代碼很簡單,只需要記住,路徑是相對于樣式表的,因此以下的代碼中,圖片和樣式表是在同一個(gè)目錄中的。
background-image: url(image.jpg);
但是如果圖片在一個(gè)名為 images 的子目錄中,就應(yīng)該是:
background-image: url(images/image.jpg);
糖伴西紅柿:使用 ../ 表示上一級目錄,比如 background-image: url(../images/image.jpg); 表示圖片位于樣式表的上級目錄中的 images 子目錄中。有點(diǎn)繞,不過這個(gè)大家應(yīng)該都知道了,我就不詳說了。
背景平鋪(background-repeat)
設(shè)置背景圖片時(shí),默認(rèn)把圖片在水平和垂直方向平鋪以鋪滿整個(gè)元素。這也許是你需要的,但是有時(shí)會希望圖片只出現(xiàn)一次,或者只在一個(gè)方向平鋪。以下為可能的設(shè)置值和結(jié)果:
CSS Code復(fù)制內(nèi)容到剪貼板
background-repeat: repeat; /* 默認(rèn)值,在水平和垂直方向平鋪 */
background-repeat: no-repeat; /* 不平鋪。圖片只展示一次。 */
background-repeat: repeat-x; /* 水平方向平鋪(沿 x 軸) */
background-repeat: repeat-y; /* 垂直方向平鋪(沿 y 軸) */
background-repeat: inherit; /* 繼承父元素的 background-repeat 屬性*/
【重點(diǎn)】背景定位(background-position)
background-position 屬性用來控制背景圖片在元素中的位置。技巧是,實(shí)際上指定的是圖片左上角相對于元素左上角的位置。
下面的例子中,設(shè)置了一個(gè)背景圖片并且用 background-position 屬性來控制它的位置,同時(shí)也設(shè)置了 background-repeat 為 no-repeat。計(jì)量單位是像素。第一個(gè)數(shù)字表示 x 軸(水平)位置,第二個(gè)是 y 軸(垂直) 位置。
CSS Code復(fù)制內(nèi)容到剪貼板
/* 例 1: 默認(rèn)值 */
background-position: 0 0; /* 元素的左上角 */
/* 例 2: 把圖片向右移動(dòng) */
background-position: 75px 0;
/* 例 3: 把圖片向左移動(dòng) */
background-position: -75px 0;
/* 例 4: 把圖片向下移動(dòng) */
background-position: 0 100px;
background-position 屬性可以用其它數(shù)值,關(guān)鍵詞和百分比來指定,這比較有用,尤其是在元素尺寸不是用像素設(shè)置時(shí)。
關(guān)鍵詞是不用解釋的。x 軸上:
* left* center* right
y 軸上:
* top* center* bottom
順序方面和使用像素值時(shí)的順序幾乎一樣,首先是 x 軸,其次是 y 軸,像這樣:
background-position: right top;
使用百分?jǐn)?shù)時(shí)也類似。需要主要的是,使用百分?jǐn)?shù)時(shí),瀏覽器是以元素的百分比數(shù)值來設(shè)置圖片的位置的??蠢泳秃美斫饬?。假設(shè)設(shè)定如下:
background-position: 100% 50%;
This goes 100% of the way across the image (i.e. the very right-hand edge) and 100% of the way across the element (remember, the starting point is always the top-left corner), and the two line up there. It then goes 50% of the way down the image and 50% of the way down the element to line up there. The result is that the image is aligned to the right of the element and exactly half-way down it.
糖伴西紅柿:這一段沒想到合適的翻譯,保留原文,意譯。
update: 感謝天涯的指教,這段搞明白了。使用百分?jǐn)?shù)定位時(shí),其實(shí)是將背景圖片的百分比指定的位置和元素的百分比位置對齊。也就是說,百分?jǐn)?shù)定位是改變了背景圖和元素的對齊基點(diǎn)。不再像使用像素和關(guān)鍵詞定位時(shí),使用背景圖和元素的左上角為對齊基點(diǎn)。例如上例的 background-position: 100% 50%; 就是將背景圖片的 100%(right) 50%(center) 這個(gè)點(diǎn),和元素的 100%(right) 50%(center) 這個(gè)點(diǎn)對齊。
這再一次說明了,我們一直認(rèn)為已經(jīng)掌握的簡單的東西,其實(shí)還有我們有限的認(rèn)知之外的知識。
注意原點(diǎn)總是左上角,最終的效果是笑臉圖片被定位在元素的最右邊,離元素頂部是元素的一半,效果和 background-position: right center; 一樣。
背景附著
background-attachment 屬性決定用戶滾動(dòng)頁面時(shí)圖片的狀態(tài)。三個(gè)可用屬性為 scroll(滾動(dòng)),fixed(固定) 和 inherit(繼承)。inherit 單純地指定元素繼承他的父元素的 background-attachment 屬性。
為了正確地理解 background-attachment,首先需要明白頁面(page)和視口(view port)是如何協(xié)作地。視口(view port)是瀏覽器顯示網(wǎng)頁的部分(就是去掉工具欄的瀏覽器)。視口(view port)的位置固定,不變動(dòng)。
當(dāng)向下滾動(dòng)網(wǎng)頁時(shí),視口(view port)是不動(dòng)的,而頁面的內(nèi)容向上滾動(dòng)??雌饋砻菜埔暱?view port)向頁面下方滾動(dòng)了。如果設(shè)置 background-attachment: scroll,就設(shè)置了當(dāng)元素滾動(dòng)時(shí),元素背景也必需隨著滾動(dòng)。簡而言之,背景是緊貼元素的。這是 background-attachment 默認(rèn)值。
用一個(gè)例子來更清楚地描述下:
CSS Code復(fù)制內(nèi)容到剪貼板
background-image: url(test-image.jpg);
background-position: 0 0;
background-repeat: no-repeat;
background-attachment: scroll;
當(dāng)向下滾動(dòng)頁面時(shí),背景向上滾動(dòng)直至消失。
但是當(dāng)設(shè)置 background-attachment 為 fixed 時(shí),當(dāng)頁面向下滾動(dòng)時(shí),背景要待在它原來的位置(相對于瀏覽器來說)。也就是不隨元素滾動(dòng)。
用另一個(gè)例子描述下:
CSS Code復(fù)制內(nèi)容到剪貼板
background-image: url(test-image.jpg);
background-position: 0 100%;
background-repeat: no-repeat;
background-attachment: fixed;
頁面已經(jīng)向下滾動(dòng)了,但是圖像仍然保持可見。
需要重視的一點(diǎn)是背景圖只能出現(xiàn)在它父元素能達(dá)到的區(qū)域。即使圖片是相對于視口(view port)定位地,如果它的父元素不可見,圖片就會消失。參見下面的例子。此例中,圖片位于視口(view port)的左下方,但是只有元素內(nèi)的圖片部分是可見的。
CSS Code復(fù)制內(nèi)容到剪貼板
background-image: url(test-image.jpg);
background-position: 0 100%;
background-repeat: no-repeat;
background-attachment: fixed;
因?yàn)閳D片開始在元素之外,一部分圖片被切除了。
到此,關(guān)于“CSS背景background和background-position的使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!