CSS变量 var的用法是什么?CSS变量 var()的用法详解


CSS变量 var的用法是什么?CSS变量 var()的用法详解

文章插图
 
本文的目的主要是展示css变量是如何工作的 。随着Web应用程序变得越来越大,CSS变得越来越大,越来越多,而且很多时候都很乱,在良好的上下文中使用CSS变量,为您提供重用和轻松更改重复出现的CSS属性的机制 。
在“纯粹的”CSS支持变量之前,我们有像LessSass这样的预处理器 。但是它们需要在使用前进行编译,因此(有时)会增加额外的复杂性 。
如何定义和使用CSS变量从我们最熟悉的语言JAVAScript开始:在JavaScript中定义变量使用vars 。
要声明一个简单的JavaScript var,如下内容:
var mainColor = 'red';要声明一个CSS变量,您必须在该var的名称前添加一个双短划线 。例如:
body{ --color:red; }现在,为了使用CSS变量的值,我们可以使用var(...)函数 。如下:
.demo{ background:var(--color); }管理CSS变量的最简单方法是将它们声明为:root伪类 。鉴于CSS变量遵循规则,就像任何其他CSS定义一样,将它们放在:root中将确保所有选择器都可以访问这些变量 。
:root{ --color:red; } .demo{ background:var(--color); } p{ color:var(--color); }浏览器支持CSS变量?浏览器对CSS变量的支持还算不错的 。只是IE浏览器不支持 。那么您将看到所有主流浏览器都支持开箱即用的CSS变量 。无论是手机还是台式机 。
CSS变量的实质应用示例1 - 管理颜色
到目前为止,使用CSS变量的最佳候选者之一是管理网页的颜色 。我们可以将它们放在变量中,而不是一遍又一遍地复制和粘贴相同的颜色 。如果有人要求我们更新特定的绿色阴影或使所有按钮变为红色而不是蓝色,那么只需更改该CSS变量的值,就是这样 。您不必搜索和替换该颜色的所有实例 。
CSS代码
/*css_vars.css*/:root {--primary-color: #ed6564;--accent-color: #388287;}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);}p {color: var(--accent-color);}/*base.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 {margin:0 5px;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;}.center {text-align: center;}HTML代码
<div class="container"><h3>就业协议书</h3><p>就业协议书,全称是《全国普通高等学校毕业生就业协议书》,是由教育部高校学生司统一制订的 。根据国家规定,在达成就业意向后,毕业生、用人单位、学校三方必须签订《全国普通高等学校毕业生就业协议书》 。就业协议书是具有一定的广泛性和权威性,是学校制订就业方案派遣毕业生、用人单位申请用人指标的主要依据,对签约的三方都有约束力 。</p><div class="center"><button>查看详情</button><button>取消</button></div></div> 
示例2 - 删除重复的代码
通常,您需要构建一些不同的组件变体 。相同的基本样式,略有不同 。让我们使用一些颜色不同的按钮 。典型的解决方案是创建一个基类,比如.btn并添加变体类 。
.btn {border: 2px solid black;}.btn:hover {background: black;}.btn.red {border-color: red}.btn.red:hover {background: red}现在使用它们像这样:
<button class="btn">Hello</button><button class="btn red">Hello</button>但是,这会添加一些代码重复 。在.red变体上,我们必须将border-color和background设置为红色 。
这种情况可以使用CSS变量轻松修复 。如下:
CSS代码:
.btn{border-radius:4px;text-align:center;padding:.5em;margin-bottom:0.5em;background:#fff;border:1px solid var(--color, black);}.btn:hover{color:#fff;cursor:pointer;background:var(--color, black);}.btn.red{--color:red;}.btn.green{--color:green;}.btn.blue{--color:blue;}HTML代码:
<div class="btn">HMOE</div><div class="btn red">HMOE</div><div class="btn green">HMOE</div><div class="btn blue">HMOE</div>示例3 - 使一些属性可读


推荐阅读