进阶:玩转 CSS 变量

如果当年的 CSS  预处理器变量对于初入前端的我来说是开启了新世界的大门,那么 CSS 变量对于我来说无疑就是晴天霹雳。其功能不但可以优雅的处理之前 js 不好处理或不适合的业务需求。更在创造力无穷的前端开发者手中大放异彩。

基础用法

在前端的领域中,标准的实现总是比社区的约定要慢的多,前端框架最喜欢这里我们可以看到针对同一个 CSS 变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效。这与 CSS 的"层叠"(cascade)规则是一致的。由于这个原因,全局的变量通常放在根元素:root里面,确保任何选择器都可以读取它们。同时, CSS 变量提供了 JavaScript 与 CSS 通信的方法。就是利用 js 操作 css 变量。

我们可以在业务项目中定义以及替换 CSS 变量,大家可以参考mvp.css[1]。该库大量使用了 CSS 变量并且让你去根据自己需求修改它。我们可以看到基于 CSS 变量,可以更友好的和设计师的设计意图结合在一起。也易于修改,在业务项目中合理使用无疑可以事半功倍。

实现默认配置

如果让我来思考,我肯定无法想象出结合 CSS 预处理器 + CSS 变量便可以实现组件样式的默认配置。这里我先介绍两个关于该功能的前置知识点:

事实上,CSS 变量的 var() 函数还可以使用第二个参数,表示变量的默认值。如果该变量此前没有定义或者是无效值,就会使用这个默认值。

其他

继 CSS 键盘记录器[6] 暴露了 CSS 安全性问题之后,CSS 变量又一次让我看到了玩技术是怎么样的。CSS Space Toggle 技术不但可以应用于上面的功能,甚至还可以编写 UI 库 augmented-ui[7] 以及  扫雷[8] 游戏。这简直让我眼界大开。在我有限的流量交易开发生涯中,很难找到类似于 css 这种设计意图和使用方式差异如此之大的技术。

CSS 是很有趣的,而 CSS 的有趣之处就在于最终呈现出来的技能强弱与你自身的思维方式,创造力是密切相关的。上文只是介绍了 CSS 变量的一些玩法,也许有更多有意思的玩法,不过这就需要大家的创造力了。

(0)

相关推荐

  • 前端菜鸟浅谈Web前端开发技术

    Web前端开发技术按照过程遵循了由容易到困难,这就请求Web前端开发工作技术员方面要熟练学习基础的Web开发技术,关于网站性能的美化.SEO以及基础的关于服务器端方面的知识:另一方面还对开发人员有具体 ...

  • 零基础如何学web前端开发?

    那么零基础如何学web前端开发?现在人们的生活都离不开互联网,各大行业也纷纷向互联网方向发展.关注前端的人也越来越多,有的是对前端技术网站开发感兴趣,还有的是羡慕其前端开发人员的高薪资,许多大学生也因 ...

  • Web前端开发如何提高技术水平!

    作为一个Web的前端工程师,怎样开始学习呢?在学习了HTML和css之后,我们应该做些什么呢?Web前端开发入门后,又该如何提高自己的前端开发技术?如为自学,根据个人学习消化能力确定每日学习数量,以下 ...

  • 教你玩转CSS 伪类

    CSS伪类是用来添加一些选择器的特殊效果. 语法: 伪类的语法: selector:pseudo-class {property:value;} CSS类也可以使用伪类: selector.class ...

  • 教你玩转CSS 分组选择器和嵌套选择器

    分组选择器 在样式表中有很多具有相同样式的元素. h1 { color:green; } h2 { color:green; } p { color:green; } 为了尽量减少代码,你可以使用分组 ...

  • 教你玩转CSS padding(填充)

    padding(填充) 当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充. 单独使用 padding 属性可以改变上下左右的填充. 可能的值 属性 描述 leng ...

  • 教你玩转CSS 轮廓(outline)属性

    CSS 轮廓(outline) 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用. CSS outline 属性规定元素轮廓的样式.颜色和宽度. 定义和用法 o ...

  • 教你玩转CSS margin(外边距)

    margin margin 清除周围的(外边框)元素区域.margin 没有背景颜色,是完全透明的. margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性. 可能的值 值 | ...

  • 如何玩转CSS的Id 和 Class选择器?

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. 1.id 选择器 id 选择器可以 ...

  • 酷狗铃声的进阶玩法,让你充分感受高度DIY

    今天听到同事的手机铃声,是一首我最喜欢的粤语歌曲,正当我感叹这小子品味和我如此相似之时,曲风突然变成了土嗨音乐,随后又变成了一首英文歌......听到这里我当场就震惊了,怎么还会有这种铃声?在我的盘问 ...

  • |旧影流光| 缴获日本旗不过瘾,美军还有进阶玩法

    冲绳战役,盟军付出了重大代价,美.英军队共有近万人阵亡.在战场上,他们缴获了很多日本旗帜,什么日章旗也就是日本国旗-- 还有日本陆军的军旗. 跟缴获的对手旗帜合个影,是作为胜利者的荣耀,寄回家里去,好 ...

  • 快来学习骰子的进阶玩法

    未经允许,请勿私自转载,否则视为侵权! 正文共: 1236字 8图 预计阅读时间: 5分钟 文/图:恬妈 提到用骰子玩数学游戏,大家一定会有N种玩法,可以识数,可以点数匹配,可以比大小,可以玩蛇行棋, ...