摘要:對于來說,表示元素,除了優(yōu)先級更高之外,與選擇器相同。再做實驗,前后分別設(shè)置兩個空格時,獲取到的值只有一個空格。結(jié)論設(shè)置值內(nèi)聯(lián)樣式選擇器選擇器也都是會把多余空格變成一個空格。
今天突然發(fā)現(xiàn)一個有趣的現(xiàn)象
document.querySelector(":root") === document.documentElement
第一次知道:root是在使用css變量的時候,當(dāng)時的寫法是:root后的花括號里面聲明的變量,如下:
:root { --rect-width: 4px; }
根據(jù)MDN的描述:
:root 這個 CSS 偽類匹配文檔樹的根元素。對于 HTML 來說,:root 表示 元素,除了優(yōu)先級更高之外,與 html 選擇器相同。
為了驗證:root和html的優(yōu)先級,我做了以下測試:
:root { --rect-width: 4px; } html { --rect-width: 6px; }
結(jié)果
再驗證一下:root和內(nèi)聯(lián)樣式的優(yōu)先級
:root { --rect-width: 4px; }
結(jié)果
還是內(nèi)聯(lián)樣式的優(yōu)先級比較高
所以得出結(jié)論:
內(nèi)聯(lián)樣式>:root選擇器>html選擇器
不過我們發(fā)現(xiàn)另一個現(xiàn)象,兩種獲取變量的值得結(jié)果不一樣,一個是“4px”,一個是“”,這是為什么呢?難道document.documentElement.style只能用來獲取內(nèi)聯(lián)樣式的值嗎?我們再做個試驗,用js設(shè)置他的值,然后再用兩種方式獲取。
document.documentElement.style.setProperty("--rect-width", "7px");
結(jié)果
發(fā)現(xiàn)
1.當(dāng)有內(nèi)聯(lián)樣式或者js設(shè)置的值時:document.documentElement.style.getPropertyValue獲取到的是實際的值 2.當(dāng)只有:root選擇器或者h(yuǎn)tml選擇器時,document.documentElement.style.getPropertyValue獲取到的值為空
結(jié)論
1.document.documentElement.style只能獲取內(nèi)聯(lián)屬性的值 (根據(jù)參考鏈接2,style確實只能獲取內(nèi)聯(lián)樣式的屬性) 2.js設(shè)置的優(yōu)先級大于內(nèi)聯(lián)樣式優(yōu)先級,這也是理所應(yīng)當(dāng)?shù)?
另外,我們還發(fā)現(xiàn),獲取到的值包含空格。js設(shè)置時,值的字符串沒有空格,獲取到的也沒有空格。
再做個試驗,js設(shè)置如果前后也設(shè)置空格的話也會獲取到空格。
再做實驗,前后分別設(shè)置兩個空格時,獲取到的值只有一個空格。
document.documentElement.style.setProperty("--rect-width", " 7px ");
結(jié)果
內(nèi)聯(lián)樣式、:root選擇器、html選擇器也都是會把多余空格變成一個空格。
結(jié)論
js設(shè)置值、內(nèi)聯(lián)樣式、:root選擇器、html選擇器也都是會把多余空格變成一個空格。應(yīng)該是類似于html頁面的元素會把多余空格變成一個空格。
針對四種方式對css變量賦值和取值時,最終結(jié)論:
1.document.querySelector(":root") === document.documentElement 2.優(yōu)先級: js設(shè)置值>內(nèi)聯(lián)樣式>:root選擇器>html選擇器 3.document.documentElement.style.getPropertyValue只能獲取內(nèi)聯(lián)樣式的值 4.getComputedStyle(document.documentElement).getPropertyValue獲取到的始終是實際的值 5.四種方式賦值時,如果值包含多個空格,都是總會把多余空格變成一個空格。應(yīng)該是類似于html頁面的元素會把多余空格變成一個空格。
參考鏈接:
1.MDN之:root https://developer.mozilla.org...:root
2.MDN之style https://developer.mozilla.org...
3.張鑫旭大大之getComputedStyle https://www.zhangxinxu.com/wo...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/117360.html
摘要:對于來說,表示元素,除了優(yōu)先級更高之外,與選擇器相同。再做實驗,前后分別設(shè)置兩個空格時,獲取到的值只有一個空格。結(jié)論設(shè)置值內(nèi)聯(lián)樣式選擇器選擇器也都是會把多余空格變成一個空格。 今天突然發(fā)現(xiàn)一個有趣的現(xiàn)象document.querySelector(:root) === document.documentElement showImg(https://segmentfault.com/i...
摘要:一介紹是的簡稱中文稱為層疊樣式表用來控制網(wǎng)頁數(shù)據(jù)的表現(xiàn)可以使網(wǎng)頁的表現(xiàn)與數(shù)據(jù)內(nèi)容分離,層疊樣式表定義如何顯示元素。用于控制內(nèi)容與邊框之間的距離邊框圍繞在內(nèi)邊距和內(nèi)容外的邊框。內(nèi)容盒子的內(nèi)容,顯示文本和圖像。一.CSS介紹 CSS是Cascading Style Sheets的簡稱,中文稱為層疊樣式表,用來控制網(wǎng)頁數(shù)據(jù)的表現(xiàn),可以使網(wǎng)頁的表現(xiàn)與數(shù)據(jù)內(nèi)容分離. CSS(CascadingStyl...
摘要:語法基礎(chǔ)語法規(guī)則由兩個主要部分構(gòu)成選擇器以及一條或多條聲明。語法名屬性屬性值屬性屬性值屬性屬性值選擇器選擇器用于描述一組元素的樣式,也叫做類選擇器。后代選則器又稱為包含選擇器,以空格分隔,子元素選擇器只能選擇作為某元素子元素的元素。 1 什么是CSS? CSS通常稱為CSS樣式表或?qū)盈B樣式表(級聯(lián)樣式表),主要用于設(shè)置HTML頁面中的文本內(nèi)容(字體、大小、對齊方式等)、圖片的外形(寬高...
摘要:復(fù)習(xí)整理有什么新特性新增語義化標(biāo)簽等新增用于繪畫的元素用于媒介回放的和元素本地緩存有更好支持和是什么,文檔是什么是用來描述網(wǎng)頁的一種超文本標(biāo)記語言,文檔也被成為網(wǎng)頁,它包含標(biāo)簽和純文本是什么它不是標(biāo)簽,它為瀏覽器提供一種信息聲明,告訴瀏覽器 復(fù)習(xí)整理 html 1.html5有什么新特性? 新增語義化標(biāo)簽、等 ? 新增用于繪畫的元素 ? 用于媒介回放的video和aud...
摘要:復(fù)習(xí)整理有什么新特性新增語義化標(biāo)簽等新增用于繪畫的元素用于媒介回放的和元素本地緩存有更好支持和是什么,文檔是什么是用來描述網(wǎng)頁的一種超文本標(biāo)記語言,文檔也被成為網(wǎng)頁,它包含標(biāo)簽和純文本是什么它不是標(biāo)簽,它為瀏覽器提供一種信息聲明,告訴瀏覽器 復(fù)習(xí)整理 html 1.html5有什么新特性? 新增語義化標(biāo)簽、等 ? 新增用于繪畫的元素 ? 用于媒介回放的video和aud...
閱讀 2994·2021-11-25 09:43
閱讀 3639·2021-08-31 09:41
閱讀 1255·2019-08-30 15:56
閱讀 2144·2019-08-30 15:55
閱讀 3005·2019-08-30 13:48
閱讀 2823·2019-08-29 15:15
閱讀 994·2019-08-29 15:14
閱讀 2664·2019-08-28 18:26