日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > CSS >内容正文

CSS

CSS Variables

發(fā)布時(shí)間:2023/12/2 CSS 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSS Variables 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CSS原生變量(CSS自定義屬性)

示例地址:https://github.com/ccyinghua/Css-Variables

一、css原生變量的基礎(chǔ)用法

變量聲明使用兩根連詞線"--"表示變量,"$color"是屬于Sass的語(yǔ)法,"@color"是屬于Less的語(yǔ)法,為避免沖突css原生變量使用

"--"

// 聲明變量 --color:#000;// 讀取變量 var(--color)

注:
1、變量聲明不能包含$,[,^,(,%等字符,普通字符局限在只要是“數(shù)字[0-9]”“字母[a-zA-Z]”“下劃線_”和“短橫線-”這些組合,但是可以是中文,日文或者韓文?
2、變量的值可以是顏色、字符串、多個(gè)值的組合等

示例:

<h3>css variables基礎(chǔ)使用</h3> <div class="btn_box"><button type="button" class="login_btn">登錄</button> </div> /* css variables基礎(chǔ)使用 */ :root{--content1:"abc";--content2:"efg";--width:calc(100px 200px);--btn-bg:#279cff;--字體:18px; } .btn_box:before{content:var(--content1)' with add';display:block;line-height: 50px; } .btn_box:after{content:var(--content1)','var(--content2);display:block;line-height: 50px; } .login_btn{width:var(--width);height:50px;border-radius:30px;border:0;background: var(--btn-bg);box-shadow: 0 5px 5px rgba(39,156,255,.42);text-align: center;font-size:var(--字體);line-height: 50px;color:#fff;cursor:pointer;outline:none; }

?

二、作用域

1、變量是遵循CSS語(yǔ)法的優(yōu)先級(jí)高低的?

Id > class > 標(biāo)簽 > *
2、注意并無(wú)!important這種用法;
3、如果變量所在的選擇器和使用變量的元素沒有交集,是沒有效果的。

<div>藍(lán)色</div> <div class="divbox">綠色</div> <div class="divbox" id="alert">紅色</div> :root { --color: blue; } .divbox { --color: green; } #alert { --color: red; } div{color: var(--color);width:300px;line-height: 50px;text-align: center; }

三、響應(yīng)式

div {--color: #7F583F;--bg: #F7EFD2; }.mediabox {color: var(--color);background: var(--bg); }@media screen and (min-width: 768px) {body {--color: #F7EFD2;--bg: #7F583F;} }

四、注意事項(xiàng)

1、屬性名(例:width/height/margin....等)不可以走變量

.divbox {--side: margin-top;/* 無(wú)效 */var(--side): 20px; }

2、var()的完整的寫法是"var(<自定義屬性名> [, <默認(rèn)值 ]?)",在變量的名字后面可以有一個(gè)默認(rèn)值,如果引用的變量沒有定義(注意,僅限于沒有定義),則使用后面的值作為元素的屬性值

body {background:var(--bg,skyblue); }

3、如果變量值是不合法的,例如下面設(shè)置背景色background只能是色值而不能是像素,則使用背景色屬性的默認(rèn)值代替。

body {--bg: 20px;background-color: #369;background-color: var(--bg, #cd0000); }

等同于

body {--bg: 20px;background-color: #369;background-color: transparent; }

4、CSS變量設(shè)置數(shù)值

(1)

h3 {--size: 30; font-size: var(--size)px; }

結(jié)果h3元素的字體大小就是本身的默認(rèn)大小?

(2)

h3 {--size: 30px; font-size: var(--size); }等于 h3 {font-size:30px; }

(3)使用CSS3 calc()計(jì)算:

h3 {--size: 30; font-size: calc(var(--size) * 1px); } 等于 h3 {font-size:30px; }

5、如果變量值帶有單位,就不能寫成字符串。

/* 無(wú)效 */ .divbox {--size: '30px';font-size: var(--size); }/* 有效 */ .divbox {--size: 30px;font-size: var(--size); }

6、進(jìn)行calc()運(yùn)算時(shí),最好能提供默認(rèn)值: calc(var(--base-line-height, 0) * 1rem)

7、不能作為媒體查詢值使用:

@media screen and (min-width: var(--desktop-breakpoint) {})

8、圖片地址,如url(var(--image-url)) ,不會(huì)生效

五、兼容性處理

檢測(cè)瀏覽器是否支持CSS自定義屬性的方法。

/*css*/@supports ( (--a: 0)) {/* supported */ }@supports ( not (--a: 0)) {/* not supported */ } // Jsif (window.CSS && window.CSS.supports && window.CSS.supports('--a', 0)) {alert('CSS properties are supported'); } else {alert('CSS properties are NOT supported'); }

六、JS操作變量

CSS 變量可以和 JS 互相交互

:root{--testMargin:75px; } // 讀取 var root = getComputedStyle(document.documentElement); var cssVariable1 = root.getPropertyValue('--testMargin').trim(); console.log(cssVariable1); // '75px'// 寫入 document.documentElement.style.setProperty('--testMargin', '100px'); var cssVariable2 = root.getPropertyValue('--testMargin').trim(); console.log(cssVariable2); // '100px'// 刪除 document.documentElement.style.removeProperty('--testMargin'); var cssVariable3 = root.getPropertyValue('--testMargin').trim(); console.log(cssVariable3); // '75px'

javascript可以把任意值存入css變量,可以讀取變量的值,實(shí)現(xiàn)javascript與css的通信。

七、CSS variables與預(yù)處理器的不同

1、預(yù)處理器變量不是實(shí)時(shí)的

$color:#7F583F;@media screen and (min-width: 768px) {$color: #F7EFD2; }.mediabox {background: $color; }

編譯結(jié)果

.mediabox {background: #7F583F; }

2、預(yù)處理器不能限定作用域

$zcolor:blue; .ulbox {$zcolor:red; } ul{color: $zcolor; }

編譯為

ul {color: blue; }

3、預(yù)處理器變量不可互操作

原生的CSS自定義屬性可以與任何CSS預(yù)處理器或純CSS文件一起使用。

4、總結(jié)

  • 相較于傳統(tǒng)的 LESS 、SASS 等預(yù)處理器變量,CSS 變量的優(yōu)點(diǎn)在于:
  • CSS 變量的動(dòng)態(tài)性,能在頁(yè)面運(yùn)行時(shí)更改,而傳統(tǒng)預(yù)處理器變量編譯后無(wú)法更改
  • CSS 變量能夠繼承,能夠組合使用,具有作用域
  • 配合 Javascript 使用,可以方便的從 JS 中讀/寫

八、CSS原生變量的兼容性

https://caniuse.com/#search=css var

?

本文轉(zhuǎn)載于:猿2048?https://www.mk2048.com/blog/blog.php?id=ha2b1icb&title=CSS Variables

總結(jié)

以上是生活随笔為你收集整理的CSS Variables的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 玖玖在线播放 | 欧美黑人一级爽快片淫片高清 | 亚洲一区二区免费电影 | 激情内射亚洲一区二区三区爱妻 | 欧美视频四区 | 天堂av2021| 九九九亚洲 | 中文字幕网伦射乱中文 | 婷婷综合激情网 | 欧美日韩一二三四 | 999视频在线 | 午夜精品影院 | 日韩中文在线观看 | 名校风暴在线观看免费高清完整 | 曰本黄色片 | 亚洲视频国产 | www.日本免费 | 亚洲视频天天射 | 亚洲一卡二卡在线观看 | 国产成人97精品免费看片 | 丁香六月五月婷婷 | 久草中文在线视频 | 国产毛片高清 | 日日射日日操 | 国产中文在线观看 | 日本精品入口免费视频 | 亚洲特级黄色片 | 免费在线观看一区二区三区 | 欧美成年人视频 | 久久久久九九 | 少妇精品一区二区 | 国产片网址 | 精品人妻一区二区三区四区不卡 | 欧美熟妇一区二区 | 懂色a v | 国产做爰xxxⅹ高潮视频12p | 久久精品无码Av中文字幕 | 精品国产三级 | 色老头网址 | 天操夜夜操 | 视频在线日韩 | 亚洲精品影视 | 亚洲区小说区图片区 | 国产精品美女久久久免费 | 制服诱惑一区二区三区 | 香蕉视频三级 | 好看的黄色录像 | 日韩av线上 | 亚洲精品1区 | avav亚洲| 久久精品一区二区免费播放 | 午夜三级视频 | 亚洲av无码一区二区乱子伦as | 亚洲国内在线 | 国产精品 日韩 | 精品91在线| 青青青青操 | 精品久久久久一区二区 | 国产激情一区二区三区视频免樱桃 | 欧美高清在线一区 | 青草视频在线观看视频 | 国产精品第2页 | 亚洲av无码一区二区三区人妖 | 激情无码人妻又粗又大 | 9191在线视频 | 26uuu国产精品视频 | 91在线| 成人亚洲电影 | 国产第一页屁屁影院 | 日韩欧美三级 | 伊人精品在线视频 | 久草资源在线视频 | 深田咏美av在线 | 色一情一乱一区二区三区 | 意大利少妇愉情理伦片 | 精品国产综合 | 国产成人免费在线视频 | 国产精品美女久久久久av超清 | 日韩免费精品视频 | 超碰666 | 茄子av| 日本一区二区三区网站 | 色爽爽爽 | 干操网| 中文字幕av网址 | 69av视频| 午夜第一页 | 日本69视频 | 91中出| www.久久久久 | se综合| 亚洲天堂成人在线 | 精品影视一区二区 | 性久久久久久久久久久 | 久久久五月天 | 麻豆影视av | 黄色一级淫片 | 免费av在线网址 | www.国产一区二区 |