var() - 自定义属性(CSS 变量) - css 长度
var()
版本:CSS3
var()函数可以代替元素中任何属性中的值的任何部分。var()函数不能作为属性名、选择器或者其他除了属性值之外的值。(这样做通常会产生无效的语法或者一个没有关联到变量的值。)
CSS变量
CSS 自定义属性(也被称为 CSS 变量),目前从 Can I use 上获取的信息显示除了 Edge外主流浏览器的最新版都已经支持这个特性了,而 Edge 也将支持这个属性。考虑兼容尚未实现此特性的浏览器,那目前最好的选择就是使用 PostCSS。
自定义属性,是一种开发者可以自主命名和使用的CSS属性。浏览器在处理像 color 、position 这样的属性时,需要接收特定的属性值,而自定义属性,在开发者赋予它属性值之前,它是没有意义的。CSS中原生的变量定义语法是:--*
,变量使用语法是:var(--*)
,其中*表示我们的变量名称。关于命名这个东西,各种语言都有些显示,例如CSS选择器不能是数字开头,JS中的变量是不能直接数值的,但是,在CSS变量中,这些限制通通没有,例如:
:root { --1: #369; } body { background-color: var(--1); }
变量名称规则
但是,不能包含$
,[
,^
,(
,%
等字符,普通字符局限在“数字[0-9]”、“字母[a-zA-Z]”、“下划线_”和“短横线-”这些组合,但是可以是中文,日文或者韩文,例如
body { --深蓝: #369; background-color: var(--深蓝); }
浏览器支持
IE不支持var() ,其余浏览器都支持var() |
语法
var(, ?)方法的第一个参数是要替换的自定义属性的名称。函数的可选第二个参数用作回退值。如果第一个参数引用的自定义属性无效,则该函数将使用第二个值。
取值
- :自定义属性名。在实际应用中它被定义为以两个破折号开始的任何有效标识符。自定义属性仅供作者和用户使用; CSS 将永远不会给他们超出这里表达的意义。
- :声明值(后备值)。回退值被用来在自定义属性值无效的情况下保证函数有值。回退值可以包含任何字符,但是部分有特殊含义的字符除外,例如换行符、不匹配的右括号(如)、]或})、感叹号以及顶层分号(不被任何非var()的括号包裹的分号,例如var(--bg-color,--bs;color)是不合法的,而var(--bg-color,--value(bs;color))是合法的)。
实例
:root { --main-bg-color: pink; } body { background-color: var(--main-bg-color); } /* 在父元素样式中 */ .component { --text-color: #080; /* header-color 并没有被设定 */ } /* 在 component 的样式中: */ .component .header { color: var(--header-color, blue); /* 此处 color 被回退到 blue */ } .component .text { color: var(--text-color, black); }
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!