css值变量吗,CSS变量初体验

根据Mozilla软件工程师Cameron McCormack的透露,火狐浏览器从V29版开始支持一种新的CSS特征——CSS变量。下面这个视频可以让你大概的了解一下CSS变量的基本情况:

CSS变量定义通过在变量名前加var-前缀实现,引用时使用var()获取变量值。例如:

:root {

var-companyblue: #369;

var-lighterblue: powderblue;

}

h1 {

color: var(companyblue);

}

h2 {

color: var(lighterblue);

}

WebTian.com

关注HTML5, CSS3, WEB前端技术

这里定义了两个CSS变量,分别是companyblue和lighterblue,变量的应用范围是document的根节点,使用效果如下:

css-variables.html

CSS变量是有应用范围的,这就是说,你可以覆盖它们:

:root {

var-companyblue: #369;

var-lighterblue: powderblue;

}

.partnerbadge {

var-companyblue: #036;

var-lighterblue: #cfc;

}

h1 {

color: var(companyblue);

}

h2 {

color: var(lighterblue);

}

WebTian.com

关注HTML5, CSS3, WEB前端技术

WebTian.com

关注HTML5, CSS3, WEB前端技术

这样定义后,在.partnerbadge类下的h1和h2就变成了另外一种蓝色:

css-variables.html

CSS变量可以赋予任何值,可以像使用任何其它值一样使用它们,例如,你可以把它们放到calc()计算表达式里。CSS变量值可以重新赋值,比如,在不同的media query里赋不同的值。下面是一些使用场景的例子。

:root {

var-companyblue: #369;

var-lighterblue: powderblue;

var-largemargin: 20px;

var-smallmargin: calc(var(largemargin) / 2);

var-borderstyle: 5px solid #000;

var-headersize: 24px;

}

.partnerbadge {

var-companyblue: #036;

var-lighterblue: #369;

var-headersize: calc(var(headersize)/2);

transition: 0.5s;

}

@media (max-width: 400px) {

.partnerbadge {

var-borderstyle: none;

background: #eee;

}

}

/* Applying the variables */

body {font-family: 'open sans', sans-serif;}

h1 {

color: var(companyblue);

margin: var(largemargin) 0;

font-size: var(headersize);

}

h2 {

color: var(lighterblue);

margin: var(smallmargin) 0;

font-size: calc(var(headersize) - 5px);

}

.partnerbadge {

padding: var(smallmargin) 10px;

border: var(borderstyle);

}

css-variables.html

根据上面的CSS定义,当浏览器窗口小于400px时,mediaQuery就会发生作用,里面的CSS变量值发生变化。

CSS变量这个新的CSS功能是在火狐Aurora版里第一次出现,也只是实现了基本功能。在这项功能真正的出现在正式发布版前,还有不少的CSS3规范里规定的内容要实现。Cameron对这些有一个比较详细的说明:

按照CSS3规范,火狐里还没有实现的部分是CSSVariableMap,它是一个对象,功能很像JavaScript里的Map,有get,set等其它方法,使用这些方法能从CSS样式声明中获取变量的值。需要注意的是,你仍有可以使用getPropertyValue和setProperty等方法从DOM值获取这些变量,但需要使用完整名称,例如var-theme-colour-1。

试一试CSS变量吧,使用最新的火狐Nightly版就可以体验上面的这些代码演示的新功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值