午夜无码人妻aⅴ大片色欲张津瑜,国产69久久久欧美黑人A片,色妺妺视频网,久久久久国产综合AV天堂

CSS變量是什么

這篇文章主要講解了“CSS變量是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“CSS變量是什么”吧!

在英吉沙等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需求定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,英吉沙網(wǎng)站建設(shè)費(fèi)用合理。

CSS變量簡(jiǎn)介

如今的瀏覽器開發(fā)似乎正好取代了流行的庫(kù)和擴(kuò)展目前為我們提供的功能。ECMAScript 6幾乎完全沒(méi)有jQuery,而十字線中的下一個(gè)似乎是CSS預(yù)處理器,如SASS和LESS。現(xiàn)代版Firefox和Chrome 支持 CSS變量(也稱為CSS自定義屬性),允許您直接在CSS中定義變量,然后可以在樣式表中的任何位置引用變量,甚至可以使用JavaScript進(jìn)行操作。結(jié)果是一個(gè)類固醇的CSS預(yù)處理器,一個(gè)在瀏覽器中本機(jī)運(yùn)行以啟動(dòng)。隨著IE Edge希望盡快支持這一功能,這些令人興奮的時(shí)刻確實(shí)是一個(gè)前端開發(fā)人員。

基本語(yǔ)法

使用CSS變量是一個(gè)簡(jiǎn)單的兩步過(guò)程:

  1. 使用語(yǔ)法在選擇器內(nèi)定義CSS變量--myvariable。選擇器根據(jù)正常的CSS繼承和特異性規(guī)則確定變量的范圍及其適用的位置。:root例如,在選擇器內(nèi)定義的CSS變量可用于文檔中的所有較低級(jí)別選擇器(元素)。

  2. 使用語(yǔ)法引用CSS變量var(--myvariable) 作為靜態(tài)CSS屬性值的替代。

現(xiàn)在讓我們看一個(gè)基本的例子,把踏板放到金屬上!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

/* Define CSS variables and scope */

:root{

    --maincolor: black;

    --secondarycolor: crimson;

}

 

/* Use CSS Variables */

body{

    background: var(--maincolor);

    color: white;

}

 

body p{

    background: var(--secondarycolor);

}

這里我定義了兩個(gè)包含:root選擇器內(nèi)部顏色值的CSS變量 。內(nèi)部定義變量的選擇器設(shè)置其范圍,所有降序選擇器(元素)都能夠訪問(wèn)這些變量。在:root 選擇器中定義CSS變量基本上使它們?nèi)挚捎谩4藭r(shí),變量尚未應(yīng)用于任何地方,處于休眠狀態(tài)并準(zhǔn)備好使用。需要注意的是CSS變量情況不像其他的CSS屬性敏感,因此--maincolor--Maincolor被認(rèn)為是兩個(gè)不同的變量。

要使用CSS變量,我們使用var() 函數(shù)訪問(wèn)其值,方法是將變量名稱傳遞給它。然后,我們選擇所需的CSS屬性來(lái)利用此變量的值。

您甚至可以將一個(gè)CSS變量的值全部或部分設(shè)置為另一個(gè)CSS變量:

1

2

3

4

5

6

7

8

9

10

11

/* Define CSS variables and scope */

:root{

    --darkfont: brown;

    --darkborder: 5px dashed var(--darkfont);

}

 

/* Use CSS Variables */

div.container{

    color: var(--darkfont);

    border: var(--darkborder);

}

CSS變量的級(jí)聯(lián)和繼承

CSS變量的行為與其他CSS屬性非常相似,因?yàn)樗鼈兊闹导?jí)聯(lián)和繼承,與使用CSS預(yù)處理器定義的屬性不同。以下演示了使用CSS變量進(jìn)行級(jí)聯(lián)

1

2

3

4

5

6

7

8

9

10

11

root{

    --darkborder: 5px solid black;

}

 

body{

    --darkborder: 1px solid darkred;

}

 

img{

    border: var(--darkborder); /* img border will be 1px solid red */

}

在這里,我--darkborder在兩個(gè)不同的選擇器中兩次定義了相同的CSS變量。由于級(jí)聯(lián)規(guī)則,BODY選擇器內(nèi)部的規(guī)則具有更高的特異性,并且在IMG元素中使用時(shí)會(huì)勝出。

CSS變量也默認(rèn)繼承,因此在父元素上定義的CSS屬性的值在這些元素中使用時(shí)會(huì)向下滲透到子元素。我們?cè)谙旅娴氖纠锌吹搅诉@一點(diǎn),其中使用UL元素上的CSS變量定義的UL邊界也自動(dòng)應(yīng)用于子UL:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

:root{

    --myborder: 5px solid orange;

}

 

ul{

    list-style: none;

    padding: 10px;

    margin: 0;

    border-left: var(--myborder);

}

 

ul ul{

    margin-left: 30px;

}

輸出截圖:

CSS變量是什么
Click screenshot to see live example

禁用繼承

我們可以通過(guò)將CSS變量設(shè)置initial為所需選擇器內(nèi)的特殊值“ ” 來(lái)阻止CSS變量在某個(gè)級(jí)別繼承。這樣做會(huì)將該屬性重置為在該范圍級(jí)別默認(rèn)為“空”。例如,要通用地禁用CSS變量的繼承,我們可以執(zhí)行以下操作:

1

2

3

*{

    --somevar: initial; /* disable inheritance for --somevar variable everywhere */

}

考慮下一個(gè)示例,該示例禁用--myborder UL UL級(jí)別的變量繼承,因此在UL級(jí)別應(yīng)用的變量不會(huì)向下傳遞到其后代:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

:root{

    --myborder: 5px solid orange;

}

 

ul{

    list-style: none;

    padding: 10px;

    margin: 0;

    border-left: var(--myborder);

}

 

ul ul{

    --myborder: initial; /* reset --myborder variable */

    margin-left: 30px;

}

輸出截圖:

CSS變量是什么

點(diǎn)擊屏幕截圖查看實(shí)時(shí)示例

重置CSS變量的值使您可以使用干凈的平板,其中有多個(gè)CSS作者在頁(yè)面上工作,并且可能存在重復(fù)的變量名稱和非預(yù)期的繼承。

使用calc()函數(shù)構(gòu)建值

CSS變量也可以與函數(shù)一起使用, 因此數(shù)值可以是動(dòng)態(tài)的,使CSS變量更接近JavaScript變量: calc()

1

2

3

4

5

6

7

8

9

10

11

:root{

    --bottomgap: 30;

}

 

h2{

    margin-bottom: calc(var(--bottomgap) * 1px)

}

 

h3{

    margin-bottom: calc(var(--bottomgap) * .5px) /* half of H1 gap */

}

這里我將一個(gè)CSS變量設(shè)置為一個(gè)數(shù)字,然后使用該 calc()函數(shù)導(dǎo)出H1和H2元素的下邊距,這樣后者就是前一個(gè)元素的一半。在calc()函數(shù)內(nèi)部,為了導(dǎo)出實(shí)際單位(即:像素),我們對(duì)該單元執(zhí)行乘法運(yùn)算,例如乘以 --bottomgap1px。簡(jiǎn)單地將單元附加到變量的末尾將不起作用:

1

2

3

h2{

    margin-bottom: calc(var(--bottomgap)px); /* doesn't work */

}

您也可以簡(jiǎn)單地設(shè)置--bottomgap為開始時(shí)的實(shí)際長(zhǎng)度,例如30px,并通過(guò)將H2除以2來(lái)計(jì)算H2元素的一半(除法運(yùn)算的右側(cè)必須始終為數(shù)字)。有關(guān)可接受語(yǔ)法的更多詳細(xì)信息,請(qǐng)參閱該 函數(shù)。 calc()

CSS變量和JavaScript

甚至可以使用JavaScript訪問(wèn)和設(shè)置CSS變量,通過(guò)僅更改CSS變量值來(lái)簡(jiǎn)化CSS樣式的操作方式。以下是獲取和設(shè)置CSS變量值的兩種JavaScript方法,無(wú)論屬性是直接在元素上定義還是繼承:

1

2

getComputedStyle(element).getPropertyValue('--varname') // get CSS variable value of an element, including any leading or trailing spaces

element.style.setProperty('--varname', 'newvalue') // set CSS variable of an element to new value

:root在JavaScript中訪問(wèn)元素/選擇器,請(qǐng)使用 document.documentElement。當(dāng)CSS變量的值更改時(shí),瀏覽器會(huì)自動(dòng)重新繪制以反映更改。您甚至可以將一個(gè)CSS變量的值設(shè)置為另一個(gè)CSS變量,從而在CSS值之間創(chuàng)建相互依賴性,從而產(chǎn)生有趣的效果:

1

element.style.setProperty('--divheight', 'calc(var(--divwidth)/2)') // set one CSS property to the value of another

以下示例通過(guò)僅使用JavaScript更新CSS變量來(lái)創(chuàng)建一個(gè)CSS條形時(shí)鐘,該時(shí)鐘告訴當(dāng)前時(shí)間。每個(gè)CSS變量分別以當(dāng)前的24小時(shí),60分鐘或60秒的百分比形式輸入當(dāng)前的小時(shí),分鐘或秒。例如,下午6點(diǎn)將轉(zhuǎn)換為6/24,或小時(shí)字段的25%。我們使用這些值來(lái)確定每個(gè)條中要移動(dòng)(變換)的背景偽元素的數(shù)量。結(jié)果如下:

JavaScript與CSS之間的唯一交互是CSS變量本身 - CSS變量為JavaScript開辟了一種新的,可以說(shuō)是更清晰的方式來(lái)操縱CSS。

內(nèi)聯(lián)設(shè)置CSS變量

CSS變量也可以在元素上內(nèi)聯(lián)定義或設(shè)置,這樣您就可以調(diào)整單個(gè)元素的CSS變量值。假設(shè)您已在樣式表中設(shè)置了兩個(gè)CSS變量,以定義UL內(nèi)鏈接的靜止和懸停背景顏色。但是,對(duì)于特定鏈接,您希望兩種顏色與其他顏色不同。覆蓋鏈接中兩個(gè)CSS變量的默認(rèn)值將是一種方法:

1

<a href=" http://www.javascriptkit.com " style="--basecolor:#D8E6E7; --accentcolor:black">Home</a>

定義未定義CSS變量時(shí)的回退值

當(dāng)使用帶有該var(--cssvariable)函數(shù)的CSS變量時(shí),可以使用第二個(gè)參數(shù)填充該函數(shù),該參數(shù)在未定義進(jìn)程變量的情況下成為回退值。例如:

1

2

background: var(--primarybg, white); /* Normal value as fallback value */

font-size: var(--defaultsize, var(--fallbacksize, 36px)); /* var() as fallback value */

如您所見(jiàn),回退值本身可以是另一個(gè)CSS var() 函數(shù),在未定義變量的情況下,該函數(shù)又可以包含另一個(gè)回退值。

CSS變量回退顯然只能由支持CSS變量的瀏覽器獲取。要為不支持該功能的瀏覽器提供后備值,您可以執(zhí)行以下操作:

1

2

background: white; /* background value for browsers that don't support CSS variables */

background: var(--primarybg, white);

感謝各位的閱讀,以上就是“CSS變量是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)CSS變量是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

新聞標(biāo)題:CSS變量是什么
鏈接地址:http://www.ekvhdxd.cn/article14/jiioge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站設(shè)計(jì)、小程序開發(fā)、App設(shè)計(jì)域名注冊(cè)定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化