CSS-非常有用的css变量
时间:2019-03-15
本文章向大家介绍CSS-非常有用的css变量,主要包括CSS-非常有用的css变量使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
为什么使用 css variables
借用Scrimba上的:
- easier to get started (no transpiling)
- have access to the DOM
1.local scopes
2.change width Js
3.ideal for responsiceness - perfect for themes
什么是 CSS 变量
CSS 变量当前有两种形式:
- 自定义属性。
这些属性使用--where的特殊格式作为名字。例如--example-variable: 20px;即是一个 css 声明语句。意思是将 20px 赋值给--example-varibale 变量。 - 变量。
就是拥有合法标识符和合法的值。可以被使用在任意的地方。可以使用 var()函数使用变量。例如:var(--example-variable)会返回--example-variable 所对应的值
总结:
带有前缀--的属性名,比如--example--name,表示的是带有值的自定义属性,其可以通过 var()函数使用。
补充
- CSS 自定义属性是可以级联的:每一个自定义属性可以多次出现,并且变量的值将会借助级联算法和自定义属性值运算出来。
CSS 变量并不支持 !important 声明,注意只是声明。
- 初始值 *see prose
- 适用元素 *all elements
- 是否是继承属性 *yes
- 适用媒体 *all
- 计算值 *as specified with variables substituted
- Animation type *discrete
- 正规顺序 *per grammar
CSS 变量的继承
html
<div class="one">
<div class="two">
<div class="three"></div>
<div class="four"></div>
<div></div>
</div>
</div>
css
.two {
--test: 10px;
}
.three {
--test: 2em;
}
在这个例子中,var(--test)的结果是:
- class="two" 对应的节点: 10px
- class="three" 对应的节点: element: 2em
- class="four" 对应的节点: 10px (inherited from its parent)
- class="one" 对应的节点: 无效值, 即此属性值为未被自定义 css 变量覆盖的默认值
:root
:root 这个 CSS 伪类匹配文档树的根元素。
对于 HTML 来说,:root 表示 元素,除了优先级更高之外,与 html 选择器相同。 所以我们把自定义属性写在:root{}
里面,html 标签里面的元素会继承的。
html
<body>
<section id="container">
<div class="item1"></div>
<div class="item2"></div>
<div class="item3"></div>
<div class="item4"></div>
</section>
</body>
css
#container {
width: 400px;
height: 150px;
background-color: #ffeead;
border: 1px solid #666;
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
}
#container > div {
width: 70px;
height: 50px;
}
#container div:nth-child(2n) {
background-color: lightgreen;
}
#container div:nth-child(2n + 1) {
background-color: lightpink;
}
声明变量
css
:root {
--green: lightgreen;
--lightpink: lightpink;
}
#container div:nth-child(2n) {
background-color: var(--green);
}
#container div:nth-child(2n + 1) {
background-color: var(--lightpink);
}
background-color 的值用 var()代替实现相同的效果
CSS 层级变量
局部变量会在作用范围内覆盖全局变量。
css
:root {
--green: lightgreen;
--lightpink: lightpink;
}
#container div:nth-child(2n) {
background-color: var(--green);
}
#container div:nth-child(2n + 1) {
background-color: var(--lightpink);
}
.item1 {
--green: black;
background-color: var(--green) !important; /*选择器权重 100+10>10 所以加了!important*/
}
使用多个变量
css
:root{
--word1:"are";
--word2:"you";
--word3:"ok";
}
.item2::before {
content: var(--word1) " " var(--word2) " " var(--word3);
}
完~~
- 使用 plotly 绘制数据图表
- 基于云计算的 CV 移动交互应用研究:头部姿态估计综述(2)
- 使用 trie 树实现简单的中文分词
- 重磅发布!2017年度 DevOps 现状调查报告中文完整版!
- AI 泡沫前,我们怎么办?中美两国人工智能产业发展全面解读
- 养车记账本小程序开发实例
- 基于图像识别的自动化
- 主从同步中的关键技术解析
- 腾讯织云:DevOps 流水线应用平台践行之路
- 腾讯云 GAME-TECH 沙龙干货回顾:与腾讯云携手出海
- 陈杰:无服务器架构,让云端开发更纯粹
- 王磊:AI 时代物流行业的 OCR 应用
- 张兴华:云端架构助力企业快速成长
- 腾讯云GAME-TECH沙龙干货回顾:腾讯游戏云全球化实践
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- IDEA 破解到2099年(202004亲测)
- Flutter基础widgets教程-Chip篇
- 6.超链接-HTML基础
- lombok 表达式的相关特性
- 写给前端程序员的英文学习指南
- 浅谈spring aop的实现原理和实现过程
- Cypress系列(60)- 运行时的截图和录屏
- 请停止使用Excel进行数据分析,升级到Python吧
- git版本控制器的相关操作
- 离线 Android Studio 环境
- Actor:人生如戏全靠演技--“三维度”逻辑编程语言的设计(3) 角色是一种特定的关系名不正言不顺角色才是真正的主人演员的天分再好的演技也需要角色好演员更需要好剧本
- 2.CSS选择器-CSS基础
- es6 随性学习之let,const与var的区别
- 04-操作文件和目录 遇到的坑
- 1.CSS单位-CSS进阶