当前位置: 首页 > news >正文

【CSS】变量的声明与使用

  • 原生变量
  • root 伪类

原生变量

CSS中我们可以统一设置变量方便页面维护变量声明的时候,自定义样式变量名之前加上两根连词线 " – " 即可,使用 var() 来引用。声明的变量是有作用域的 ( 比如是在html中声明的变量,那么该变量在html中的任何地方都可以使用这个变量,如果该变量在h2标签中声明的,那么只能在h2标签下使用这个变量它的值)

声明

body {--yanse: #f700ff;--kuandu: 30px;--gao: 50px;
}
/*yanse 与 kuandu 与 gao 是变量名称,它们的值分别是 #f700ff 和 30px 和 50px变量大小写敏感、变量名等这些参考 js变量名规则,而变量名中存储的值的书写规则仍然采用 css的规则如: --x: 50px 30px   而不是   --x: '50px 30px'
*/

使用
var() 函数是用来读取变量

div{background-color: var(--yanse);width: var(--kuandu);height: var(--gao);
}

var() 函数有第二个参数,表示变量的默认值,如果该变量不存在(第一个参数),那么就使用这个默认值。并且第一个参数后面的全部算第二个参数,写多个第二个参数语法也会提示报错

div{background-color: var(--yanse, #ffea00);width: var(--kuandu,50px);height: var(--gao,70px);
}

var() 函数也可作为其它变量的值,但也仅作为其它变量的值使用

html{--main-color: red;--div-text-color: var(--main-color);/* 无效 */var(--main-color): green;
}

作用域
CSS 变量遵从 CSS 优先级的原则,变量值可能会被覆盖

<style>
html {--color: blue;
}
h1 {--color: green;
}
.h1 {--color: yellow;
}
#h1 {--color: red;--div: #a2ffe2
}
* {color: var(--color); /* 在不同作用域中声明同一个变量,只生效自己作用域中的变量值,且遵从优先级原则 */
}
div{color: var(--div); /* 无法使用 #h1 标签作用域中声明的变量 */
}
</style>
<h2>蓝色</h2>
<h1>绿色</h1>
<h1 class="h1">黄色</h1>
<h1 id="h1">红色</h1>
<div>我会是什么颜色(蓝色)</div>

效果:
在这里插入图片描述

root 伪类

这个 CSS伪类 :root 匹配文档树的根元素,表示 <html> 被选中,除了优先级更高之外,与 html 选择器相同

语法

<style>/* 选中文档的根元素(HTML 中的 <html>) */:root {background: yellow;}
</style>

效果:
在这里插入图片描述使用

只要当前页面引用了 :root 所在的样式文件,都可以使用 var() 来引用

<style>:root{--opc: 0.9;--bgc: 72;--width: 200px;--height: 100px;}div{/* var() 函数可以代替元素中任何属性中的值的任何部分,var() 函数不能作为属性名、选择器或者其它除了属性值之外的值 */background-color: rgba(0, var(--bgc), 243, var(--opc));width: var(--width);height: var(--height);}
</style>
<div></div>

效果:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键
  • Android数据序列化总结
  • Redis Bigkey
  • 从零到爆款:利用自养号测评打造Temu、亚马逊热销产品
  • 蠕虫病毒(网络安全小知识)
  • 【权限控制】一个通用的用户权限控制架构设计方案,可以适用于大多数应用场景
  • [数组计数法]#116. 开会时间
  • 戏曲多多 1.0.6.0 专为电视端设计的戏曲与生活内容APP,同样适用于安卓手机,方便老年人使用
  • 学习C4模型的新网站
  • 传奇开服需要多少钱?传奇开服服务器是自己买还是租?
  • Unity DOTS系列之托管/非托管Component的区别与性能分析
  • 一起操作一遍git,还不会你找我
  • tensorflow算子调用示例(MINIST)
  • 【项目实战】如何在项目中基于 Spring Boot Starter 开发简单的 SDK
  • ARM基础知识点及简单汇编语法
  • bearychat的java client
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • FastReport在线报表设计器工作原理
  • hadoop集群管理系统搭建规划说明
  • java第三方包学习之lombok
  • Java精华积累:初学者都应该搞懂的问题
  • Js基础知识(一) - 变量
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • 爱情 北京女病人
  • 番外篇1:在Windows环境下安装JDK
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 嵌入式文件系统
  • 入门到放弃node系列之Hello Word篇
  • 温故知新之javascript面向对象
  • 小而合理的前端理论:rscss和rsjs
  • 用element的upload组件实现多图片上传和压缩
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ionic异常记录
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # Redis 入门到精通(一)数据类型(4)
  • #window11设置系统变量#
  • (1)SpringCloud 整合Python
  • (7)摄像机和云台
  • (Git) gitignore基础使用
  • (Oracle)SQL优化技巧(一):分页查询
  • (八)Spring源码解析:Spring MVC
  • (不用互三)AI绘画工具应该如何选择
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十六)Flask之蓝图
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net 知识杂记
  • .Net7 环境安装配置
  • .NET中winform传递参数至Url并获得返回值或文件
  • .Net转Java自学之路—基础巩固篇十三(集合)