自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

提升布局能力!理解 CSS 的多種背景及使用場(chǎng)景和技巧

開發(fā) 前端
CSS background是最常用的CSS屬性之一。然而,并不是所有開發(fā)人員都知道使用多種背景。這段時(shí)間都在關(guān)注使用多種背景場(chǎng)景。在本文中,會(huì)詳細(xì)介紹background-image`屬性,并結(jié)合圖形來解釋多個(gè)背景使用方式以及其實(shí)際好處。

CSS background是最常用的CSS屬性之一。然而,并不是所有開發(fā)人員都知道使用多種背景。這段時(shí)間都在關(guān)注使用多種背景場(chǎng)景。在本文中,會(huì)詳細(xì)介紹background-image`屬性,并結(jié)合圖形來解釋多個(gè)背景使用方式以及其實(shí)際好處。

[[338005]]

如果你還了解 CSS background 屬性,可以去先 MDN 查看相關(guān)的知識(shí)。

介紹

CSS background屬性是以下屬性的簡(jiǎn)寫:

background-clip, background-color, background-image, background-origin, background-position, background-repeat, background-size 和 background-attachment.

對(duì)于本文,將重點(diǎn)介紹background-image,background-position和background-size。你準(zhǔn)備好了嗎?讓我們開始吧!

考慮下面的例子:

  1. .element { 
  2.   background: url(cool.jpg) top left/50px 50px no-repeat; 

背景圖片位于元素的左上角,大小為50px * 50px。了解并記住位置和大小的順序很重要。

 

在上圖中,background-position后面是background-size。它們的順序是不能調(diào)換的,否則無效,如下所示:

  1. .element { 
  2.  /* 警告:無效的CSS */ 
  3.  background: url(cool.jpg) 50px 50px/top left no-repeat; 

Background Position元素的定位相對(duì)于background-origin屬性設(shè)置的定位層。我喜歡background-position的靈活性,它有多種定位元素的方式:

  • 關(guān)鍵字值(top,right,bottom,left,center)
  • 百分比值,如: 50%
  • 長(zhǎng)度值,如:20px, 2.5rem
  • 邊緣偏移值,如:top 20px left 10px

 

坐標(biāo)系統(tǒng)從左上角開始,默認(rèn)值為0% 0%。

值得一提的是,top left的值與left top的值相同。瀏覽器足夠聰明,可以確定其中哪個(gè)個(gè)用于x軸,哪個(gè)用于y軸。

  1. .element { 
  2.  background: url(cool.jpg) top left/50px 50px no-repeat; 
  3.  /* 上面與下面相同 */ 
  4.  background: url(cool.jpg) left top/50px 50px no-repeat; 

Background Size

對(duì)于background-size屬性,第一個(gè)是width,第二個(gè)是height。

 

不必使用兩個(gè)值,你可以使用一個(gè)值,它表示寬度和高度都一樣。

 

現(xiàn)在,我已經(jīng)了解了CSS background的工作原理,下面來探討下如何使用多個(gè)背景。

多個(gè)背景

background屬性可以具有一層或多層,以逗號(hào)分隔。如果多個(gè)背景的大小相同,則其中一個(gè)將覆蓋另一個(gè)背景。

  1. .element { 
  2.  background: url(cool.jpg) top left/50px 50px no-repeat, 
  3.  url(cool.jpg) center/50px 50px no-repeat; 

 

在上圖中,我們有兩個(gè)背景層。每個(gè)位置都不同。這是多背景的基本用法,讓我們研究一個(gè)更高級(jí)的示例。

放置順序

當(dāng)放置多個(gè)背景時(shí),其中一個(gè)背景占據(jù)其父級(jí)的全部寬度和高度時(shí),放置順序可能會(huì)有點(diǎn)亂,考慮下面例子:

  1. .hero { 
  2.   min-height: 350px; 
  3.   background: url('table.jpg') center/cover no-repeat, 
  4.     url('konafa.svg') center/50px no-repeat;  

 

我們有一個(gè)盤子和一張桌子的圖片,你認(rèn)為哪個(gè)會(huì)在上面?

答案就是桌子。在CSS中,第一個(gè)背景可以放置在第二個(gè)背景上,第二個(gè)背景可以放置在第三個(gè)背景上,依此類推。通過替換背景的順序,可以得到預(yù)期的結(jié)果。

 

用例和范例

遮罩層

通常,我們可能需要某部分的頂部放置一個(gè)遮罩層,以便使文本易于閱讀。通過堆疊兩個(gè)背景可以輕松完成此操作。

  1. .hero { 
  2.  background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)), 
  3.     url("landscape.jpg") center/cover; 

 

好的是,我們可以使用與上述相同的方法對(duì)元素應(yīng)用色彩??紤]以下:

  1. .hero { 
  2.  background: linear-gradient(135deg, rgba(177, 234, 77, 0.25), rgba(69, 149, 34, 0.25), 
  3.     url("landscape.jpg") center/cover; 

 

用 CSS 繪圖

使用 CSS 漸變繪制的可能性是無限的。你可以使用linear-gradient或radial-gradient等。接著,我們來看看如何使用它兩兄弟繪制筆記本電腦。

 

拆解筆記本電腦,看看我們需要使用什么漸變。

 

拆解筆記本電腦的時(shí),更容易考慮如何使用多個(gè) CSS 背景來實(shí)現(xiàn)它。

接下來是圖紙。首先是將每個(gè)漸變定義為CSS變量及其大小。我喜歡使用CSS變量,因?yàn)樗梢詼p少代碼的復(fù)雜性,使代碼更簡(jiǎn)潔,更易于閱讀。

  1. :root { 
  2.   --case: linear-gradient(#222, #222); 
  3.   --case-size: 152px 103px; 
  4.  
  5.   --display: linear-gradient(#fff, #fff); 
  6.   --display-size: 137px 87px; 
  7.  
  8.   --reflection: linear-gradient(205deg, #fff, rgba(255, 255, 255, 0)); 
  9.   --reflection-size: 78px 78px; 
  10.  
  11.   --body: linear-gradient(#888, #888); 
  12.   --body-size: 182px 9px; 
  13.  
  14.   --circle: radial-gradient(9px 9px at 5px 5.5px, #888 50%, transparent 50%); 
  15.   --circle-size: 10px 10px; 

現(xiàn)在我們定義了漸變及其大小,下一步是放置它們。考慮下圖,以獲得更好的視覺解釋。

 

顯示影像

如前所述,應(yīng)該首先定義需要在頂部的元素。在我們的情況下,顯示影像應(yīng)該是第一個(gè)漸變。

 

顯示 LCD

顯示屏位于x軸中心,距y軸6px。

 

顯示 外殼

外殼位于顯示器下方,位于x軸的中心,距y軸的位置為0px。

 

主體

這是圖形中最有趣的組件。首先,主體是一個(gè)矩形,每個(gè)側(cè)面(左側(cè)和右側(cè))有兩個(gè)圓圈。

 

最終結(jié)果

  1. :root { 
  2.   --case: linear-gradient(#222, #222); 
  3.   --case-size: 152px 103px; 
  4.   --case-pos: center 0; 
  5.  
  6.   --display: linear-gradient(#fff, #fff); 
  7.   --display-size: 137px 87px; 
  8.   --display-pos: center 6px; 
  9.  
  10.   --reflection: linear-gradient(205deg, #fff, rgba(255, 255, 255, 0)); 
  11.   --reflection-size: 78px 78px; 
  12.   --reflection-pos: top right; 
  13.  
  14.   --body: linear-gradient(#888, #888); 
  15.   --body-size: 182px 9px; 
  16.   --body-pos: center bottom; 
  17.  
  18.   --circle: radial-gradient(9px 9px at 5px 5.5px, #888 50%, transparent 50%); 
  19.   --circle-size: 10px 10px; 
  20.   --circle-left-pos: left bottom; 
  21.   --circle-right-pos: right bottom; 
  22.  
  23. .cool { 
  24.   width: 190px; 
  25.   height: 112px; 
  26.  
  27.   background-image: var(--reflection), var(--display), var(--case), var(--circle), var(--circle), var(--body); 
  28.  
  29.   background-size: var(--reflection-size), var(--display-size), var(--case-size), var(--circle-size), var(--circle-size), var(--body-size); 
  30.  
  31.   background-position: var(--reflection-pos), var(--display-pos), var(--case-pos), var(--circle-left-pos), var(--circle-right-pos), var(--body-pos); 
  32.  
  33.   background-repeat: no-repeat; 
  34.  
  35.   /*outline: solid 1px;*/ 

混合多種背景

混合使用多個(gè)背景時(shí)會(huì)令人興奮??紤]一下您在CSS中有一個(gè)背景圖像,并且想要將其變成黑白圖像。

  1. .hero { 
  2.   background: linear-gradient(#000, #000), 
  3.   url("landscape.jpg") center/cover; 
  4.   background-blend-mode: color; 

 

人才們的 【三連】 就是小智不斷分享的最大動(dòng)力,如果本篇博客有任何錯(cuò)誤和建議,歡迎人才們留言,最后,謝謝大家的觀看。

作者:Ahmad shaded 譯者:前端小智 來源:sitepoint

 

原文:https://css-tricks.com/css-basics-using-multiple-backgrounds/

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。 

 

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2019-04-03 13:00:27

CSSBFC前端

2022-02-13 23:10:46

Golang語言變量

2010-09-02 11:18:46

CSSfloatposition

2010-09-01 11:34:33

CSS布局

2018-05-22 09:47:07

2025-04-24 10:40:46

CatalogFlink SQL元數(shù)據(jù)

2020-07-13 13:00:24

CSS變量技巧

2024-04-11 13:41:47

2010-09-01 10:27:12

CSS

2022-07-29 07:48:15

HTTP常用狀態(tài)碼

2021-06-06 23:40:53

線程池使用場(chǎng)景

2023-05-16 07:47:18

RabbitMQ消息隊(duì)列系統(tǒng)

2024-01-12 13:38:54

業(yè)務(wù)購(gòu)物ToC

2010-09-07 15:31:21

DIV CSS表單

2020-02-14 13:50:32

JavaScript前端技術(shù)

2024-11-27 08:15:50

2021-12-28 14:10:41

開發(fā)技能代碼

2010-09-13 16:13:47

DIV CSS表單

2010-08-26 10:26:44

CSS

2012-03-29 09:35:32

WEBCSS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)