中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS自定義屬性的示例分析

發布時間:2022-03-03 11:42:56 來源:億速云 閱讀:151 作者:小新 欄目:web開發

這篇文章主要為大家展示了“CSS自定義屬性的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“CSS自定義屬性的示例分析”這篇文章吧。

兼容性

第一個問題是:CSS 自定義屬性能用在哪?目前從 Can I use 上獲取的信息顯示除了 Edge 外主流瀏覽器的最新版都已經支持這個特性了,而 Edge 也將支持這個屬性.

這說明現在 CSS 自定義屬性已經能用在實際項目中了,相信不久以后開發者們將大大依賴這個特性.但還請在使用之前請先檢查一下本文附錄中 Postcss 對于 CSS 自定義屬性的支持情況,以便做好兼容.

設一個值,任何值都可以

那么……什么是自定義屬性呢?簡單來說就是一種開發者可以自主命名和使用的 CSS 屬性.瀏覽器在處理像 color 、position 這樣的屬性時,需要接收特定的屬性值,而自定義屬性,在開發者賦予它屬性值之前,它是沒有意義的.所以要怎么給 CSS 自定義屬性賦值呢?這倒和習慣無異:

.foo {

  color: red;

  --theme-color: gray;

}

自定義元素的定義由 -- 開頭,這樣瀏覽器能夠區分自定義屬性和原生屬性,從而將它倆分開處理.假如只是定義了一個自定義元素和它的屬性值,瀏覽器是不會做出反應的.如上面的代碼, .foo 的字體顏色由 color 決定,但 --theme-color 對 .foo 沒有作用.

你可以用 CSS 自定義元素存儲任意有效的 CSS 屬性值:

.foo {

  --theme-color: blue;

  --spacer-width: 8px;

  --favorite-number: 3;

  --greeting: "Hey, what's up?";

  --reusable-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.85);

}

使用

假如自定義屬性只能用于設值,那也太沒用了點.至少,瀏覽器得能獲取到它們的屬性值.

使用 var() 方法就能實現:

.button {

  background-color: var(--theme-color);

}

下面這段代碼中,我們將 .button 的 background-color 屬性值賦值為 --theme-color 的值.這例子看起來自定義屬性也沒什么了不起的嘛,但這是一個硬編碼的情況.你有沒有意識到,--theme-color 的屬性值是可以用在任意選擇器和屬性上的呢?這可就厲害了.

.button {

  background-color: var(--theme-color);

}

.title {

  color: var(--theme-color);

}

.image-grid > .image {

  border-color: var(--theme-color);

}

缺省值

如果開發者并沒有定義過 --theme-color 這個變量呢?var() 可以接收第二個參數作為缺省值:

.button {

  background-color: var(--theme-color, gray);

}

注意:如果你想把另一個自定義屬性作為缺省值,語法應該是 background-color: var(--theme-color, var(--fallback-color))

傳參數時總是傳入一個缺省值是一個好習慣,特別是在構建 web components 的時候.為了讓你的頁面在不支持自定義屬性的瀏覽器上正常顯示,別忘了加上兼容代碼:

.button {

  background-color: gray;

  background-color: var(--theme-color, gray);

}

作用域和級聯

要在什么時候定義這些屬性?在使用之前嗎?自定義屬性遵從標準的作用域和級聯規則,開發者按照平時使用的習慣來就可以了!

你可能希望將 --theme-color 設置為全局變量,處處可用.最簡單的方法是使用 :root 偽元素:

:root {

  --theme-color: gray;

}

這樣定義以后,無論是按鈕、標題還是圖片網格乃至整個文檔,都可以使用 --theme-color 了.

但當你希望不同的模塊使用不同的 --theme-color 值怎么辦呢?和初始化自定義屬性的步驟相同,只需要在模塊的作用域中給屬性重新賦值,新的顏色就會分模塊生效,而不需要開發者一個個重置使用到 --theme-color 的屬性.

section.about {

  --theme-color: darkblue;

}

section.contacts {

  --theme-color: darkred;

}

section.news {

  --theme-color: teal;

}

當然,你也可以定義復雜的選擇器規則,應用特定的屬性值:

section.news > .sidenote {

  --theme-color: gray;

}

以上是“CSS自定義屬性的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

汶川县| 吉林市| 固始县| 阿克| 翁源县| 寿光市| 玉树县| 南召县| 闸北区| 隆昌县| 吉林省| 武山县| 汝阳县| 新营市| 德清县| 六枝特区| 唐山市| 文登市| 宣威市| 玛纳斯县| 华安县| 南康市| 望城县| 平潭县| 义马市| 谷城县| 南陵县| 闵行区| 甘泉县| 慈利县| 呼伦贝尔市| 武夷山市| 娱乐| 久治县| 九江市| 静乐县| 乌鲁木齐市| 大兴区| 通州区| 福清市| 青海省|