css-functions-属性函数
概述
本文主要介绍CSS Functions
中和属性有关的函数var
、attr
和env
使用方法可以参考示例:CSS-Functions:属性函数
自定义属性var
var()
函数可以插入一个自定义属性CSS 变量的值,用来代替非自定义属性中值的任何部分。
自定义属性名必须是以--
开头的任何有效标识符,var()
函数可以接收多个参数,第二个参数及其后面的参数都可以作为回退值,即前面的参数无效,会依次使用后面的值,另外var()
函数可以嵌套,如下示例
div {
width: var(--width, --node-width, 100px);
}
全局定义
var()
函数可以使用在:root
中定义的全局属性
:root {
--width: 100px;
}
div {
width: var(--width, --node-width, 100px);
}
局部定义
var()
函数为Javascript
操作 CSS 样式提供了极为方便的方式,可以动态修改 CSS 变量应用到元素的样式上去,局部属性名的作用大于全局定义属性名的作用。我们可以将行内样式理解成局部属性定义,如下:
<span style="--width:150px;"></span>
以上的属性--width
会覆盖:root
中定义的--width
,这个时候 div 元素的--width
取值还是:root
中的100px
属性attr
目前attr
函数仅能运用在伪类元素上,它会获取元素上的自定义属性值,如下
<style>
span:before {
content: attr(data);
}
</style>
<span data="Hello World"></span>
安全属性 env
env
的应用没有前两个广,主要用于获取用户代理定义的环境变量,而不是用户自定义的,比如这几个环境变量
p {
padding: env(safe-area-inset-top) env(safe-area-inset-right) env(
safe-area-inset-bottom
) env(safe-area-inset-left);
}