CSS 自定义变量
程序员文章站
2022-03-18 14:10:08
使用背景: 为什么使用: 定义: 为什么选择两根连词线(--)表示变量? 用法: 作用域: 使用:root 作用域来定义全局变量: 如果想让某个变量只在部分元素/组件下可见,只需要在特定的元素下定义该变量: 媒体查询也可以提供作用域: 下面一个例子来展示伪类下的作用域(例如,:hover): ......
使用背景:
一些常见的例子: 为风格统一而使用颜色变量 一致的组件属性(布局,定位等) 避免代码冗余 *更方便的从CSS向JS传递数据(例如媒体断点)
为什么使用:
以下几点是未来CSS属性的简短说明: 动态性,可以在运行时更改 可以方便的从JS中读/写 可继承,可组合,同时具有作用域
定义:
定义 用这样的方式来声明一个变量:--variable-name: variable-value;(变量名是大小写敏感的)。变量的值可以是颜色、字符串、多个值的组合等:
:root{ --base_color:#398bd0; --bg_color:#4a4a4a; }
为什么选择两根连词线(--)表示变量?
为什么选择两根连词线(--)表示变量? $foo被 Sass 用掉了, @foo被 Less 用掉了。 为了不产生冲突,官方的 CSS 变量就改用两根连词线了
用法:
.res_nav ul li:hover a{color:var(--base_color);} .res_contact_btn a:hover{background:var(--base_color);}
作用域:
使用:root
作用域来定义全局变量:
:root{ --global-var: 'global'; }
如果想让某个变量只在部分元素/组件下可见,只需要在特定的元素下定义该变量:
<div class="block"> My block is <div class="block__highlight">awesome</div> </div>
/*css文件*/ .block { --block-font-size: 1rem; font-size: var(--block-font-size); }
.block__highlight { --block-highlight-font-size: 1.5rem; font-size: var(--block-highlight-font-size); }
媒体查询也可以提供作用域:
@media screen and (min-width: 1025px) { :root { --screen-category: 'desktop'; } }
下面一个例子来展示伪类下的作用域(例如,:hover):
下一篇: CSS基础汇总