【CSS】背景基礎(chǔ)知識(shí)

92038-106.jpg

添加背景圖

用 background-image 屬性,在元素的背景中添加圖形踊兜。
background-image屬性有一個(gè)值:url旦事,后面跟著放在括號(hào)里的圖形文件路徑青灼。
路勁可以是絕對(duì)url,也可以是相對(duì)url辽旋。

在使用相對(duì)url時(shí)浩嫌,如:
url(../images/bg.png)
../ 的作用是進(jìn)入當(dāng)前html文件的上一層目錄檐迟。
images/ 的作用是進(jìn)入“images文件夾”。
bg.png 指定要使用的圖像文件码耐。


image.png

HTML代碼:
<div class="div1"></div>

CSS代碼:

.div1 {
  width: 900px;
  height: 500px;
  background-image: url(images/bg0002.jpg);
}




三種書寫方式

background-image: url(images/bg0002.jpg);
/* 路勁不加引號(hào) */

background-image: url("images/bg0002.jpg");
/* 路勁放在雙引號(hào)內(nèi) */

background-image: url('images/bg0002.jpg');
/* 路勁放在單引號(hào)內(nèi) */

以上三種書寫方式都是有效的(我懶所以都不加引號(hào))追迟。

Web瀏覽器主要支持三種圖片格式:GIF,JPEG骚腥,PNG敦间。
這三種格式都有很好的壓縮效果,因此在互聯(lián)網(wǎng)中傳輸?shù)乃俣雀臁?br> 現(xiàn)在還有一種比較流行的格式:SVG束铭。





背景圖的平鋪方式

使用 background-repeat 來(lái)控制背景圖的平鋪方式廓块。

分別有6個(gè)值可選:repeat,no-repeat契沫,repeat-x带猴,repeat-y,round懈万,space拴清。

repeat
默認(rèn)值,會(huì)把圖片從左到右会通,從上到下鋪滿整個(gè)背景口予。


image.png
background-image: url(images/quan.png);
background-repeat: repeat;

所用到的圖片:

image



no-repeat

圖像只顯示一次,不進(jìn)行平鋪渴语。是一個(gè)非常常用的值苹威。


image.png
background-image: url(images/quan.png);
background-repeat: no-repeat;



repeat-x

沿著X軸橫向平鋪圖像


image.png
background-image: url(images/quan.png);
background-repeat: repeat-x;



repeat-y

沿著Y軸豎向平鋪圖像


image.png
background-image: url(images/quan.png);
background-repeat: repeat-y;



round

round平鋪圖像的方式和repeat一樣,不過(guò)不會(huì)裁剪圖像驾凶。背景圖不會(huì)被裁剪牙甫,而是被縮放,并排著一列列顯示调违。為了做到這一點(diǎn)窟哺,瀏覽器會(huì)扭曲各個(gè)圖像副本,因此會(huì)破壞圖像的縱橫比技肩。


image.png
background-image: url(images/quan.png);
background-repeat: round;

由于我所用的背景圖比較小且轨,所以變形的效果不明顯。
這次用的是Firefox瀏覽器虚婿。



space

space平鋪圖像的方式與repeat一樣旋奢,但是不會(huì)裁剪圖像的上部或下部。也就是說(shuō)然痊,space選項(xiàng)始終顯示完整的圖像至朗。因此,瀏覽器會(huì)在平鋪的各個(gè)圖像副本之間添加間隙剧浸。


image.png
background-image: url(images/quan.png);
background-repeat: space;

放大圖片和repeat的圖對(duì)比锹引,可以看出使用space的圖矗钟,圈圈之間是有一定空隙的。
這次用的是Firefox瀏覽器嫌变。

注意:在做這個(gè)筆記的時(shí)候(2017.11)round和space的兼容性都很差吨艇。并不是所有瀏覽器都兼容。





定位背景圖

background-position

用 background-position 屬性控制圖像位置腾啥《校可以通過(guò) 關(guān)鍵字、具體的值碑宴、百分比 來(lái)控制背景的橫向和縱向的起點(diǎn)软啼。

關(guān)鍵字
橫向:left,center延柠,right祸挪。
縱向:top,center贞间,bottom贿条。


image.png

HTML代碼:
<div class="div1"></div>

CSS代碼:

.div1 {
    width: 900px;
    height: 500px;
    border: 1px solid #000;
    background-image: url(images/quan.png);
    background-repeat: no-repeat;
    background-position: center;
}

那個(gè)圈圈的背景圖就會(huì)出現(xiàn)在div中央。因?yàn)?background-position 設(shè)置了 center增热。
如果只寫一個(gè) center整以,瀏覽器會(huì)解析為 x軸 和 y軸 都用了center屬性,所以縱橫都是居中峻仇。

在使用關(guān)鍵字時(shí)公黑,定義橫向和縱向的順序不重要。如 background-position:top right; 和 background-position: right top; 都是一樣的摄咆,瀏覽器會(huì)自動(dòng)識(shí)別關(guān)鍵字凡蚜。

我習(xí)慣先寫橫向,再寫縱向吭从。

image.png
image.png
image.png
image.png
image.png





精確的值

可以使用 像素 或 em 來(lái)設(shè)定背景圖的位置朝蜘。
需要指定2個(gè)值,第一個(gè)值控制橫向位置涩金,第二個(gè)值控制縱向位置谱醇。
(第一個(gè)值指明圖像的左邊與容器的左邊之間的距離,第二個(gè)值指明圖像的上邊與容器的上邊之間的距離步做。)




image.png

background-position: 5px 20px;

值:坐負(fù)右正副渴,上負(fù)下正。
可以使用負(fù)值全度,把背景圖移出左邊或上邊煮剧,隱藏部分圖像。

注意:使用像素或em尺寸時(shí)無(wú)法指定距離底邊或右邊的距離讼载,如果要把背景圖放在頁(yè)面或目標(biāo)元素的右下角轿秧,應(yīng)該使用關(guān)鍵字(right bottom),或者使用百分比咨堤。





百分比值

使用百分比值菇篡,可以把背景圖定位在與元素寬度成一定比例的某個(gè)點(diǎn)上。

但我從開發(fā)中得到的一個(gè)經(jīng)驗(yàn)是:如果能使用精確的值(像素或em)或者關(guān)鍵字來(lái)實(shí)現(xiàn)所需的效果一喘,就盡量不要使用百分比驱还。因?yàn)榘俜直戎翟诙ㄎ槐尘皥D很難處理。


background-position: 0% 0%;

image.png


background-position: 50% 50%;

image.png


background-position: 100% 100%;

image.png



看看下面我畫的示意圖就懂了


image.png

在(80% 20%)那里凸克,背景圖(80% 20%)的點(diǎn)和目標(biāo)元素(80% 20%)的點(diǎn)是重合的议蟆,(50% 50%)和(100% 100%)也是這樣。

所以說(shuō)萎战,如果能使用精確的值(像素或em)或者關(guān)鍵字來(lái)實(shí)現(xiàn)所需的效果咐容,就盡量不要使用百分比。因?yàn)榘俜直戎翟诙ㄎ槐尘皥D很難處理蚂维。





固定

可以使用 background-attachment 把背景圖固定在某個(gè)位置戳粒,意思就是 背景圖不隨屏幕滾動(dòng)而滾動(dòng)。

background-attachment有2個(gè)屬性:scroll 和 fixed 虫啥。

scroll是默認(rèn)值蔚约,即背景圖與文本和頁(yè)面中的其他內(nèi)容一起滾動(dòng)。

fixed的作用是把被背景圖固定在某個(gè)位置涂籽。比如想把頁(yè)頭部分固定在頁(yè)面最頂端苹祟,不隨頁(yè)面滾動(dòng)和滾動(dòng)。


image.png

可以看到右側(cè)滾動(dòng)條不管怎么滾動(dòng)评雌,背景圖依然是在左上角树枫。

CSS代碼:

background-image: url(images/logo0001.png);
background-repeat: no-repeat;
background-attachment: fixed;

動(dòng)圖好像簡(jiǎn)書無(wú)法顯示~~ 可以在我的訂閱號(hào)查看這個(gè)筆記:Rabbit_svip





定義背景圖的起點(diǎn)與區(qū)域

可以使用 background-origin 屬性重新定義圖像的起點(diǎn)。
這個(gè)屬性能告訴瀏覽器從元素的邊框柳骄、內(nèi)邊距還是內(nèi)容區(qū)域開始顯示背景圖团赏。

background-origin 有三個(gè)屬性:border-box、padding
-box耐薯、center-box舔清。

border-box:從邊框的左上角開始放置背景圖。


image.png

可以看出曲初,背景圖是在邊框開始的体谒。

HTML代碼:
<div class="div1"></div>

CSS代碼:

.div1 {
    width: 300px;
    height: 300px;
    border: 10px dashed #000;
    background-image: url(images/quan.png);
    background-origin: border-box;
}





padding-box:從內(nèi)邊距的左上角開始放置背景圖。瀏覽器一般使用這種方式放置背景圖臼婆。

image.png

第一個(gè)定義的背景圖是在邊框內(nèi)部的左上角抒痒。

HTML代碼:
<div class="div1"></div>

CSS代碼:

.div1 {
    width: 300px;
    height: 300px;
    border: 10px dashed #000;
    background-image: url(images/quan.png);
    background-origin: padding-box;
}




content-box:從內(nèi)容區(qū)域的左上角開始放置背景圖。

image.png

HTML代碼:
<div class="div1">content</div>

CSS代碼:

.div1 {
    width: 300px;
    height: 300px;
    border: 10px dashed #000;
    background-image: url(images/quan.png);
    background-origin: content-box;
}




background-clip 屬性是 background-origin 的一個(gè)好搭檔颁褂。

background-clip 也是有3個(gè)值:border-box故响、padding-box傀广、content-box。

border-box:讓背景圖只顯示在內(nèi)容和邊框的里面彩届。只有邊框有間隙時(shí)才可以注意到(如虛線)伪冰。瀏覽器一般以這種方式來(lái)顯示。
這里就不再舉例了樟蠕。




padding-box:讓背景圖只在內(nèi)邊距區(qū)域和元素的內(nèi)容里面顯示贮聂。


image.png

這時(shí)邊框上是沒有任何背景圖的。

HTML代碼:
<div class="div1">content</div>

CSS代碼:

.div1 {
    width: 300px;
    height: 300px;
    border: 10px dashed #000;
    background-image: url(images/quan.png);
    background-origin: padding-box;
    background-clip: padding-box;
}

content-box:讓背景圖只顯示在內(nèi)容區(qū)里面寨辩。


image.png

注意我的代碼是有 10px 的 padding吓懈。

HTML代碼:
<div class="div1">content</div>

CSS代碼:

.div1 {
    width: 300px;
    height: 300px;
    border: 10px dashed #000;
    background-image: url(images/quan.png);
    background-origin: padding-box;
    background-clip: content-box;
}

我經(jīng)常用的搭配方式:

background-origin: content-box;
background-clip: content-box;
image.png

讓背景圖完整的顯示在內(nèi)容區(qū)里面。

注意:IE8及之前的版本都不支持 background-origin 和 background-clip 屬性靡狞。





縮放背景圖

通過(guò) background-size 屬性可以控制背景圖的尺寸耻警。

background-size可以通過(guò) 精確的值、百分比耍攘、關(guān)鍵字 來(lái)控制榕栏。

精確的值

background-size: 100px 200px;
第一個(gè)值控制 寬 , 第二個(gè)值控制 高蕾各。

通過(guò)精確值控制扒磁,有可能會(huì)改變圖片原有的長(zhǎng)寬比例。

精確值還可以結(jié)合另一種方法控制背景圖式曲。
background-size: 100px auto;
把背景圖的寬度變成100px妨托,高度隨寬度自適應(yīng)。

即:只設(shè)置寬度或高度吝羞,另一個(gè)值設(shè)為 auto兰伤。
根據(jù)高度或者寬度,瀏覽器會(huì)根據(jù)圖像的縱橫比自動(dòng)設(shè)置另一個(gè)值钧排,因此圖像不會(huì)扭曲敦腔。




百分比

通過(guò)百分比控制寬度和高度,用法和精確的值是一樣的恨溜。
background-size: 100% 100%;
會(huì)使背景圖鋪滿整個(gè)載體容器符衔。使用百分比來(lái)控制背景圖大小,也很容易把圖像扭曲糟袁。




關(guān)鍵字

contain判族、cover。

contain:會(huì)根據(jù)元素的背景尺寸強(qiáng)制調(diào)整圖像的尺寸项戴,而且會(huì)保留圖像的縱橫比形帮。

使用contain時(shí),瀏覽器會(huì)找到載體容器比較小的一條邊。
比如

width: 100px;
height: 200px;

這時(shí)辩撑,瀏覽器就會(huì)找到100px界斜,然后把圖像的寬變成100px,高度自適應(yīng)合冀。


image.png



再如

width:300px;
height:150px;

這時(shí)锄蹂,瀏覽器會(huì)找到150px,然后把圖像的高度變成150px水慨,寬度自適應(yīng)。


image.png

cover:強(qiáng)制讓圖像的寬度適應(yīng)元素的寬度敬扛,讓圖像的高度適應(yīng)元素的高度晰洒。
cover和contain相反,cover會(huì)選擇較大的那邊做參考邊啥箭。

width: 100px;
height: 200px;
image.png

因?yàn)閔eight比width要大谍珊,所以背景圖的高度和height設(shè)置的高度一樣,背景圖的寬度根據(jù)原圖的比例進(jìn)行放大急侥。

再如

width:300px;
height:150px;
image.png

此時(shí)width比height大砌滞,所以背景圖的寬度等于width,背景圖的高度隨原圖的比例進(jìn)行放大坏怪。

注意贝润,contain 和 cover 都不會(huì)改變?cè)瓐D的比例。





簡(jiǎn)寫方式

background: url(quan.png) center center / 50% no-repeat fixed #FFF;

翻譯一下:
background: 文件路勁(url) 定位(position:center) / 大新料(size:50%) 平鋪方式(repeat) 固定方式(fixed) 背景色(#FFF)打掘;

如果指定位置(background-position: center) 和 background-size 屬性,二者中間要加上 / 符號(hào)鹏秋。

注意:IE8不支持 background-size尊蚁、background-origin 和 background-clip 屬性。如果在簡(jiǎn)寫的 background 屬性中設(shè)置這幾個(gè)屬性侣夷,IE8會(huì)忽略整個(gè)生命横朋,不應(yīng)用在任何背景屬性。

在簡(jiǎn)寫的時(shí)候不是所有屬性都要全部指定百拓,而且通常不會(huì)全部指定琴锭。可以只指定一個(gè)屬性耐版,或者任意組合各個(gè)屬性祠够。

簡(jiǎn)寫時(shí)的其他注意事項(xiàng):

background-color: yellow;
background: url(quan.png) no-repeat;

這時(shí),黃色背景是完全看不到的粪牲。因?yàn)樵诘诙写a中用了簡(jiǎn)寫方式古瓤,瀏覽器遇到?jīng)]有指定顏色的background屬性(簡(jiǎn)寫)時(shí),會(huì)把 background-color 設(shè)為 transparent(透明),從而把上一行 background-color 屬性覆蓋掉落君。

解決方法:

background: url(quan.png) no-repeat;
background-color: yellow;

把“詳細(xì)屬性”放在“簡(jiǎn)寫屬性”后面穿香,只會(huì)覆蓋“簡(jiǎn)寫屬性”的部分值。所以在使用簡(jiǎn)寫屬性的時(shí)候绎速,一定要注意書寫順序皮获!




HTML與CSS 目錄:HTML與CSS

上一篇:【CSS】著色與透明

下一篇:【CSS】同時(shí)使用多個(gè)背景圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纹冤,隨后出現(xiàn)的幾起案子洒宝,更是在濱河造成了極大的恐慌,老刑警劉巖萌京,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雁歌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡知残,警方通過(guò)查閱死者的電腦和手機(jī)靠瞎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)求妹,“玉大人乏盐,你說(shuō)我怎么就攤上這事≈苹校” “怎么了父能?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)净神。 經(jīng)常有香客問(wèn)我法竞,道長(zhǎng),這世上最難降的妖魔是什么强挫? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任岔霸,我火速辦了婚禮,結(jié)果婚禮上俯渤,老公的妹妹穿的比我還像新娘呆细。我一直安慰自己,他們只是感情好八匠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布絮爷。 她就那樣靜靜地躺著,像睡著了一般梨树。 火紅的嫁衣襯著肌膚如雪坑夯。 梳的紋絲不亂的頭發(fā)上桃犬,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天氧映,我揣著相機(jī)與錄音,去河邊找鬼懊直。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淑履,可吹牛的內(nèi)容都是我干的隶垮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼秘噪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狸吞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起指煎,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蹋偏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后至壤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暖侨,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年崇渗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片京郑。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宅广,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出些举,到底是詐尸還是另有隱情跟狱,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布户魏,位于F島的核電站驶臊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叼丑。R本人自食惡果不足惜关翎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸠信。 院中可真熱鬧纵寝,春花似錦、人聲如沸星立。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绰垂。三九已至室奏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間劲装,已是汗流浹背昌简。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留江场,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓窖逗,卻偏偏與公主長(zhǎng)得像址否,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碎紊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color佑附,font,text-align仗考,li...
    wzhiq896閱讀 1,755評(píng)論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color音同,font,text-align秃嗜,li...
    love2013閱讀 2,315評(píng)論 0 11
  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案权均? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 一、HTML5 1.1 認(rèn)識(shí)HTML5 HTML5并不僅僅只是作為HTML標(biāo)記語(yǔ)言的一個(gè)最新版本锅锨,更重要的是它制定...
    福爾摩雞閱讀 15,899評(píng)論 14 51
  • MPTCP叽赊,多連接的TCP連接。不知道看官們是否有過(guò)疑問(wèn)必搞,WIFI和4G能否同時(shí)使用呢必指?基于WIFI建立的連接,能...
    采風(fēng)JS閱讀 8,300評(píng)論 1 43