首頁 web前端 css教學 CSS變數 var()的用法是什麼? CSS變數 var()的用法詳解

CSS變數 var()的用法是什麼? CSS變數 var()的用法詳解

Jan 21, 2019 pm 01:30 PM
css變數

當Web專案變得越來越大時,他的CSS會變得像天文數字那麼大而且還變得混亂。為了幫助我們解決這個問題,新的CSS變數很快就會出現在主流瀏覽器中,它讓開發人員能夠重複使用並輕鬆編輯重複出現的CSS屬性。用過SASS或Less的人應該知道他的變數功能有多棒,但這些變數是預處理器,需要在使用前進行編譯。現在變數在vanilla CSS中可用,您可以立即在瀏覽器中使用它們! 【建議閱讀:CSS教學

定義和使用CSS變數

與任何其他CSS定義一樣,變數遵循相同的範圍和繼承規則。使用它們的最簡單方法是透過將聲明新增至:root偽類別來使它們全域可用,以便所有其他選擇器都可以繼承它。

html:

:root {
  --awesome-blue:#2196F3;
}
登入後複製

要存取變數中的值,我們可以使用var(…)語法。請注意,名稱區分大小寫,因此–foo != –FOO。

.element {
background-color:var(--awesome-blue);
}
登入後複製

瀏覽器支援

常用的瀏覽器除了IE都完美支持,您可以在此處獲取更多詳細資訊–[我可以使用CSS變數](https://caniuse .com/#search=var())。下面是幾個例子,展示了CSS變數的典型用法。為確保它們正常工作,請嘗試在我們上面提到的其中一個瀏覽器上查看它們。

範例1 – 主題顏色

當我們需要對多個元素一再應用相同的規則時,CSS中的變數是最有用的,例如主題中的重複顏色。我們不是每次想要重複使用相同顏色時進行複製和貼上,而是將其放在變數中並從那裡訪問它。

現在,如果我們的客戶不喜歡我們選擇的藍色陰影,我們可以在一個地方(變數的定義)改變樣式來改變整個主題的顏色。沒有變量,我們必須手動搜尋和替換每一次出現。

可將程式碼複製下來在你的編輯器裡面測試

* {margin: 0;padding: 0;box-sizing: border-box;}html {padding: 30px;font: normal 13px/1.5 sans-serif;color: #546567;background-color: var(--primary-color);}.container {background: #fff;padding: 20px;}h3 {padding-bottom: 10px;margin-bottom: 15px;}p {background-color: #fff;margin: 15px 0;}button {font-size: 13px;padding: 8px 12px;background-color: #fff;border-radius: 3px;box-shadow: none;text-transform: uppercase;font-weight: bold;cursor: pointer;opacity: 0.8;outline: 0;}button:hover {opacity: 1;}
<!-- 分割线 -->:root {
--primary-color: #B1D7DC;
--accent-color: #FF3F90;
}
html {
background-color: var(--primary-color);
}
h3 {
border-bottom: 2px solid var(--primary-color);
}
button {
color: var(--accent-color);
border: 1px solid var(--accent-color);
}
登入後複製
<div class="container">
<h3>对话框窗口</h3>
<p>过放荡不羁的生活,容易得像顺水推舟,但是要结识良朋益友,却难如登天。</p>
<button>确认</button>
</div>
登入後複製

範例2 – 屬性類別名稱可讀性

變數的另一個重要用途是當我們想要保存更複雜的屬性值時,我們不必記住它。最好的例子就是有多個參數,例如CSS規則box-shadow,transform和font。

透過將屬性放在變數中,我們可以使用語意可讀的名稱來存取它。

html{background-color: #F9F9F9;}
ul{padding: 20px;list-style: none;width: 300px;}
li{font: normal 18px sans-serif;padding: 20px;transition: 0.4s;margin: 10px;color: #444;background-color: #fff;cursor: pointer;}
<!-- 分割线 -->
:root{
--tiny-shadow: 0 2px 1px 0 rgba(0, 0, 0, 0.2);
--animate-right: translateX(20px);
}
li{
box-shadow: var(--tiny-shadow);
}
li:hover{
transform: var(--animate-right);
}
登入後複製
<ul>
<li>我在这里!</li>
<li>我在这里!</li>
<li>我在这里!</li>
</ul>
登入後複製

範例3 – 動態變更變數

當多次宣告自訂屬性時,標準規則有助於解決衝突,樣式表中最後定義的會覆寫上面定義的。

下面的範例示範了使用者動態操作改變屬性是多麼容易,同時仍然保持程式碼清晰簡潔。

.container{background: #fff;padding: 20px;}
p{transition: 0.4s;}
.title{font-weight: bold;}
<!-- 分割线 -->
.blue-container{
--title-text: 18px;
--main-text: 14px;
}
.blue-container:hover{
--title-text: 24px;
--main-text: 16px;
}
.green-container:hover{
--title-text: 30px;
--main-text: 18px;
}
.title{
font-size: var(--title-text);
}
.content{
font-size: var(--main-text);
}
登入後複製
<div class="blue-container">
<div class="green-container">
<div class="container">
<p class="title">这是个标题</p>
<p class="content">将鼠标悬停在不同的颜色区域上可以更改此文本和标题的大小。</p>
</div>
</div>
</div>
登入後複製
[示例地址](https://codepen.io/w3cbest/pen/OrxLLE)
正如您所看到的,CSS变量非常简单易用,开发人员不必花费太多时间在各处开始应用它们。以下是扩展内容:
var()函数有两个参数,如果自定义属性失败,它可用于提供回退值:
登入後複製
width``: var(–custom-width, 20%``);
登入後複製

可以巢狀自訂屬性:

*   –base-color: #f93ce9;
*   –background-gradient: linear-gradient(to top, var(–base-color), #444);
登入後複製

變數可以與CSS的另一個新增功能- calc() 函數結合使用。

*   –container-width: 1000px;
*   max-width: calc(var(–container-width) / 2);
登入後複製


#

以上是CSS變數 var()的用法是什麼? CSS變數 var()的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue團隊完成了完成,我知道這是一項巨大的努力,而且很長時間。所有新文檔也是如此。

使用Redwood.js和Fauna構建以太坊應用 使用Redwood.js和Fauna構建以太坊應用 Mar 28, 2025 am 09:18 AM

隨著最近比特幣價格超過20k美元的攀升,最近打破了3萬美元,我認為值得深入研究創建以太坊

您可以從瀏覽器獲得有效的CSS屬性值嗎? 您可以從瀏覽器獲得有效的CSS屬性值嗎? Apr 02, 2025 pm 06:17 PM

我有人寫了這個非常合法的問題。 Lea只是在博客上介紹瞭如何從瀏覽器中獲得有效的CSS屬性。那樣的是這樣。

帶有粘性定位的堆疊卡和一點點的雜物 帶有粘性定位的堆疊卡和一點點的雜物 Apr 03, 2025 am 10:30 AM

前幾天,我發現了科里·金尼文(Corey Ginnivan)網站上的這一點,當您滾動時,彼此之間的卡片堆放集。

在CI/CD上有點 在CI/CD上有點 Apr 02, 2025 pm 06:21 PM

我說的“網站”比“移動應用程序”更合適,但我喜歡Max Lynch的框架:

比較瀏覽器的響應式設計 比較瀏覽器的響應式設計 Apr 02, 2025 pm 06:25 PM

這些桌面應用程序中有許多目標是同時在不同的維度上顯示您的網站。因此,例如,您可以寫作

在WordPress塊編輯器中使用Markdown和本地化 在WordPress塊編輯器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我們需要直接在WordPress編輯器中向用戶顯示文檔,那麼最佳方法是什麼?

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

See all articles