百科狗-知识改变命运!
--

var() - 自定义属性(CSS 变量) - css 长度

乐乐1年前 (2023-11-21)阅读数 15#技术干货
文章标签属性

var()

版本:CSS3

var()函数可以代替元素中任何属性中的值的任何部分。var()函数不能作为属性名、选择器或者其他除了属性值之外的值。(这样做通常会产生无效的语法或者一个没有关联到变量的值。)

CSS变量

var() - 自定义属性(CSS 变量) - 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

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)