最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

知識分享!CSS中的函數(shù)和變量

2020-12-23 10:05 作者:光耀三十洲  | 我要投稿

CSS函數(shù)

與Javascript一樣,CSS中也有一些計(jì)算函數(shù),僅對與一些常用的和個(gè)人了解的做一次分享。

CSS函數(shù)較多,從常用性和實(shí)際出發(fā),按運(yùn)用比重順序排序

Color 顏色相關(guān)

rgb()、rgba()

這兩個(gè)函數(shù)一定是不會陌生的,對于顏色屬性值通過紅綠藍(lán)三原色來進(jìn)行調(diào)整。

區(qū)別在于 rgba() 中 a 表示透明度,取值0-1之間。相對來說最為常用

image.png

除此之外,類似的CSS顏色函數(shù)還有:

hsl()、hsla()

使用色相、飽和度、亮度、(透明度)來定義顏色

hwb()

使用色相、以及黑白混合度(white\black)如上方右圖所示。

相對的,可能對于美術(shù)或設(shè)計(jì)師更能理解以色相為主的顏色選取方式,其實(shí)對于代碼來說,我們使用rgb()和rgba()即可,兼容性也是良好的。

color-mod()

CSS Color Module Level 4 中提出一個(gè)新的CSS

其是基于一個(gè)顏色值,在不同的條件下調(diào)整參數(shù)得到的新顏色,未作深入了解??梢酝ㄟ^colorme.io/這個(gè)網(wǎng)站來看下具體顏色值是如何變化的,同時(shí)大漠老師的博客中也有相關(guān)的文檔解釋,可以參考下。

使用color-mod()函數(shù)修改顏色

Transform 變換相關(guān)

對于不同內(nèi)核瀏覽器,可能需要加入私有前綴來進(jìn)行對應(yīng)的兼容性處理,而3d邊換,IE毒瘤則是一定不支持的

translate 位置變換:translate()、translateX()、translateY()、translate3d()

rotate 旋轉(zhuǎn)變換:rotate()、rotate3d()、rotateX()、rotateY()、rotateZ()

skew 傾斜變換:skew()、skewX()、skewY()

scale 縮放變換:scale()、scale3d()、scaleX()、scaleY()、scaleZ()

Background 背景相關(guān)

linear-gradient() 線性漸變

image.png

代碼實(shí)現(xiàn)如下:

image.png

radial-gradient() 徑向漸變

image.png

代碼實(shí)現(xiàn)如下:

image.png

conic-gradient() 角向漸變

image.png

代碼實(shí)現(xiàn)如下:

image.png

element() 將網(wǎng)站中的某部分當(dāng)作圖片渲染

CSS Color Module Level 4 中提出一個(gè)新的CSS,由于只能在Firefox 瀏覽器內(nèi)產(chǎn)生效果,可以參考大漠老師的另一篇文章,里面有更為詳細(xì)的介紹

CSS element()函數(shù)

Math 計(jì)算相關(guān)

image.png

相對來說,計(jì)算相關(guān)的函數(shù)其實(shí)兼容性一般,對于個(gè)人項(xiàng)目或移動端項(xiàng)目可以做嘗試

min() 取最小值

對于dialog這一類元素,其長度應(yīng)當(dāng)適應(yīng)于不同分辨率下,以往可能需要使用 vw / % 等來渲染,但是會有一個(gè)問題,那就是在不同分辨率下可能 60vw / 60% 下,dialog的寬度在1920分辨率下看著還算正常,但是在1366等比較小的分辨率下會出現(xiàn)寬度不足以容納內(nèi)部元素,或者做適配時(shí)不太優(yōu)雅展示的時(shí)候,可以考慮結(jié)合這一類計(jì)算函數(shù)來進(jìn)行。

max() 取最大值

同min() 取值邏輯

clamp() 取值范圍

clamp(MIN, VAL, MAX) = max(MIN, min(VAL, MAX))

其中MIN表示最小值,VAL表示首選值,MAX表示最大值。意思是,如果VAL在MIN和MAX范圍之間,則使用VAL作為函數(shù)返回值;如果VAL大于MAX,則使用MAX作為返回值;如果VAL小于MIN,則使用MIN作為返回值。

calc() 動態(tài)計(jì)算

calc() 應(yīng)該是最為常見的css計(jì)算函數(shù)了,可結(jié)合 四則運(yùn)算來取部分的寬高等,可用于圣杯布局中主體內(nèi)容的寬高計(jì)算等需要?jiǎng)討B(tài)計(jì)算的地方

Attr() 屬性函數(shù)

image.png
image.png

僅從官方的例子中只能看到些基礎(chǔ)的應(yīng)用,且容易理解,而張鑫旭老師博客中指出:

傳統(tǒng)的attr()語法只能讓HTML屬性作為字符串使用,且只能使用在偽元素中

全新的attr()語法那可就完全不得了了,可以讓HTML屬性值轉(zhuǎn)換成任意的CSS數(shù)據(jù)類型。

個(gè)人嘗試代碼直接報(bào)錯(cuò)了~??,

還是建議想要了解的查看下原文章:

www.zhangxinxu.com/wordpress/2…

CSS 變量

**var()函數(shù)可以代替元素中任何屬性中的值的任何部分。var()**函數(shù)不能作為屬性名、選擇器或者其他除了屬性值之外的值。

image.png

CSS 變量聲明

--* 用來聲明變量,使用 var(--*) 來使用變量

  • CSS變量聲明只可用于屬性值,不可用以屬性名

  • CSS變量不支持多個(gè)同時(shí)聲明

  • CSS變量使用的合法性

  • CSS變量與屬性單位結(jié)合需要使用 * 乘法

  • CSS變量的聲明時(shí)可相互調(diào)用聲明的變量

    :root { --main-bg-color: pink; --ml: 20px; --mlv: 20; --primary-size: 20px; --base-font-size: var(--primary-size); /* 變量聲明時(shí)的調(diào)用 / } body { background-color: var(--main-bg-color); / 表現(xiàn)結(jié)果為:背景色為粉紅 / } .ml20 { margin-left: var(--ml); margin-left: calc(var(--mlv) * 1px); / 表現(xiàn)結(jié)果都是左間距20px,此處的變量運(yùn)用需區(qū)別帶單位和不帶單位的使用差異 */ }

CSS 變量作用域

上述代碼中,顯示出了CSS變量也是具有作用域的

: root 取全局作用域,div 取所有的div元素,#alert 取所有id為alert的元素使用,按照css解析順序,上面案例代碼的元素顏色即和文字表述一致

JS讀取CSS變量

CSS 變量在日漸完善,瀏覽器對于其支持性也在慢慢變多,而區(qū)別于Sass/Less 等預(yù)處理器來說,原生變量不需要去進(jìn)行編譯等操作,但是相對的,CSS變量的語法還有待提高和優(yōu)化,不過我們可以提前做嘗試和運(yùn)用~

內(nèi)容些許淺顯,僅是個(gè)人對于部分CSS相關(guān)的知識的歸納總結(jié),不當(dāng)之處,感謝指正!

了解更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1JK411G7ZS/




作者:JasonSubMara
鏈接:https://juejin.cn/post/6908962052727898125
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。


知識分享!CSS中的函數(shù)和變量的評論 (共 條)

分享到微博請遵守國家法律
杭锦后旗| 香格里拉县| 静海县| 乐都县| 江陵县| 公安县| 社旗县| 蒙自县| 微山县| 万山特区| 兴业县| 东港市| 平顶山市| 德保县| 扎赉特旗| 平昌县| 苏尼特左旗| 雷山县| 衡水市| 大竹县| 疏勒县| 高阳县| 江达县| 资源县| 磐安县| 丰顺县| 延庆县| 同仁县| 洛扎县| 万荣县| 沙河市| 白河县| 衡东县| 三原县| 登封市| 沅江市| 响水县| 普安县| 台中市| 新郑市| 天门市|