CSS中变量怎么用

小编给大家分享一下CSS中变量怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联公司专业网站设计制作、成都网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发布平台等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

一、变量的声明

声明变量的时候,变量名前面要加两根连词线(--)。

body{

--foo:#7F583F;

--bar:#F7EFD2;

}

上面代码中,body选择器里面声明了两个变量:--foo和--bar。

它们与color、font-size等正式属性没有什么不同,只是没有默认含义。所以CSS变量(CSSvariable)又叫做"CSS自定义属性"(CSScustomproperties)。因为变量与自定义的CSS属性其实是一回事。

你可能会问,为什么选择两根连词线(--)表示变量?因为$foo被Sass用掉了,@foo被Less用掉了。为了不产生冲突,官方的CSS变量就改用两根连词线了。

各种值都可以放入CSS变量。

:root{

--main-color:#4d4e53;

--main-bg:rgb(255,255,255);

--logo-border-color:rebeccapurple;

--header-height:68px;

--content-padding:10px20px;

--base-line-height:1.428571429;

--transition-duration:.35s;

--external-link:"externallink";

--margin-top:calc(2vh+20px);

}

变量名大小写敏感,--header-color和--Header-Color是两个不同变量。

二、var()函数

var()函数用于读取变量。

a{

color:var(--foo);

text-decoration-color:var(--bar);

}

var()函数还可以使用第二个参数,表示变量的默认值。如果该变量不存在,就会使用这个默认值。

color:var(--foo,#7F583F);

第二个参数不处理内部的逗号或空格,都视作参数的一部分。

var(--font-stack,"Roboto","Helvetica");

var(--pad,10px15px20px);

var()函数还可以用在变量的声明。

:root{

--primary-color:red;

--logo-text:var(--primary-color);

}

注意,变量值只能用作属性值,不能用作属性名。

.foo{

--side:margin-top;

/*无效*/

var(--side):20px;

}

上面代码中,变量--side用作属性名,这是无效的。

三、变量值的类型

如果变量值是一个字符串,可以与其他字符串拼接。

--bar:'hello';

--foo:var(--bar)'world';

利用这一点,可以debug(例子)。

body:after{

content:'--screen-category:'var(--screen-category);

}

如果变量值是数值,不能与数值单位直接连用。

.foo{

--gap:20;

/*无效*/

margin-top:var(--gap)px;

}

上面代码中,数值与单位直接写在一起,这是无效的。必须使用calc()函数,将它们连接。

.foo{

--gap:20;

margin-top:calc(var(--gap)*1px);

}

如果变量值带有单位,就不能写成字符串。

/*无效*/

.foo{

--foo:'20px';

font-size:var(--foo);

}

/*有效*/

.foo{

--foo:20px;

font-size:var(--foo);

}

四、作用域

同一个CSS变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效。这与CSS的"层叠"(cascade)规则是一致的。

下面是一个例子。

<style>

:root{--color:blue;}

p{--color:green;}

#alert{--color:red;}

*{color:var(--color);}</style><p>蓝色</p><p>绿色</p><pid="alert">红色</p>

上面代码中,三个选择器都声明了--color变量。不同元素读取这个变量的时候,会采用优先级最高的规则,因此三段文字的颜色是不一样的。

这就是说,变量的作用域就是它所在的选择器的有效范围。

body{

--foo:#7F583F;

}

.content{

--bar:#F7EFD2;

}

上面代码中,变量--foo的作用域是body选择器的生效范围,--bar的作用域是.content选择器的生效范围。

由于这个原因,全局的变量通常放在根元素:root里面,确保任何选择器都可以读取它们。

:root{

--main-color:#06c;

}

五、响应式布局

CSS是动态的,页面的任何变化,都会导致采用的规则变化。

利用这个特点,可以在响应式布局的media命令里面声明变量,使得不同的屏幕宽度有不同的变量值。

body{

--primary:#7F583F;

--secondary:#F7EFD2;

}

a{

color:var(--primary);

text-decoration-color:var(--secondary);

}

@mediascreenand(min-width:768px){

body{

--primary:#F7EFD2;

--secondary:#7F583F;

}

}

六、兼容性处理

对于不支持CSS变量的浏览器,可以采用下面的写法。

a{

color:#7F583F;

color:var(--primary);

}

也可以使用@support命令进行检测。

@supports((--a:0)){

/*supported*/

}

@supports(not(--a:0)){

/*notsupported*/

}

七、JavaScript操作

JavaScript也可以检测浏览器是否支持CSS变量。

constisSupported=

window.CSS&&

window.CSS.supports&&

window.CSS.supports('--a',0);

if(isSupported){

/*supported*/

}else{

/*notsupported*/

}

JavaScript操作CSS变量的写法如下。

//设置变量

document.body.style.setProperty('--primary','#7F583F');

//读取变量

document.body.style.getPropertyValue('--primary').trim();

//'#7F583F'

//删除变量

document.body.style.removeProperty('--primary');

这意味着,JavaScript可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入CSS变量。

constdocStyle=document.documentElement.style;

document.addEventListener('mousemove',(e)=>{

docStyle.setProperty('--mouse-x',e.clientX);

docStyle.setProperty('--mouse-y',e.clientY);

});

那些对CSS无用的信息,也可以放入CSS变量。

--foo:if(x>5)this.width=10;

上面代码中,--foo的值在CSS里面是无效语句,但是可以被JavaScript读取。这意味着,可以把样式设置写在CSS变量中,让JavaScript读取。

所以,CSS变量提供了JavaScript与CSS通信的一种途径。

以上是“CSS中变量怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

当前名称:CSS中变量怎么用
网站路径:https://www.cdcxhl.com/article42/phdoec.html

成都网站建设公司_创新互联,为您提供网站制作企业建站网站改版定制开发手机网站建设网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设