相关文章推荐
高大的泡面  ·  菜单概述 - WPF .NET ...·  4 月前    · 
捣蛋的手术刀  ·  primeng table column ...·  7 月前    · 

如上述代码,意思为:在body选择器里面声明了两个变量:–foo 和 –bar;

css声明变量不像Less的@foo, 也不像sass的$foo,而是采取了不同形式的–foo,声明出来的变量和color、background-url 等正式属性没有什么不同 ,所以 CSS 变量又叫做**“CSS 自定义属性”**。

变量的名称可以用 数字、汉字 等,不能包含**$ [ ^ ( %**等字符,变量的值也是可以使用各种属性值:

// 定义css变量
:root{
  --黑色背景: #3a6b5c;
  --255: rgb(256, 256, 256);
  --pd: 10px 20px;
  --height: 200px;
  --transition-duration: .36s;
  --margin-top: calc(2vh + 20px);
// 使用css变量
div{
	color: var(--256);
	margin-top: var(--margin-top);
	padding: var(--pd);
	width: var(--height);
	height: var(--height);
	background-color: var(--黑色背景, #000);

:root是CSS 伪类匹配文档树的根元素

对于 HTML 来说,:root 表示 元素,除了优先级更高之外,与 html 选择器相同

二 、var()函数使用
  • var() 函数是如何使用的
:root {
  --黑色背景: #3a6b5c;
body {
  background-color: var(--黑色背景, #000);

var(–黑色背景) 这段代码中,var() 函数是用来获取值自定义属性 –-黑色背景 的值。他代替元素中任何属性中的值任何部分。var() 函数不能作为属性名选择器或者其他除了属性值之外的值。

var() 方法的第一个参数是要替换的自定义属性的名称。函数的可选第二个参数用作回退值。如果第一个参数引用的自定义属性无效,则该函数将使用第二个值。

:root {
  --黑色背景: #3a6b5c;
body {
  background-color: var(--黑色背景, #000);

如上述代码,我们若打错了变量名,找不到这个变量,var() 函数就会使用传入的第二个参数 #000

三、CSS变量和var()函数应用和注意点
1、CSS变量的继承

自定义属性同样支持继承。一个元素上没有定义自定义属性,该自定义属性的值会继承其父元素:

<div class="one">
	<div class="two">
       <div class="three">
              three
       <div class="four">
<style>
	.one { --test: 14px; }
    .two { font-size:var(--test); }
	.three { 
        --test: 16px; 
        font-size:var(--test);
    .four { font-size:var(--test); }
</style>	

其中 .two 找不到自己选择器里的 –test变量,就会找到 .one 里面声明的 –test, 同样,.four 找 .one 的 –test。

但是这种方式我们项目中不推荐,最好通过在 :root 伪类上设置自定义属性,然后在整个文档需要的地方使用,可以减少很多的重复性。

  • CSS变量支持同时多个声明吗?

类似下面这样:

类似不了,语法上就根本不支持
自定义属性受级联的约束,并从其父级继承其值。

2、CSS变量的相互传递特性

就是说,我们在CSS变量定义的时候可以直接引入其他变量给自己使用,例如:

body {
  --green: #4CAF60;   
  --backgroundColor: var(--green);
  background:var(--backgroundColor);

或者更复杂的CSS3 calc()计算,例如:

body {
  --col: 4;
  --margins: calc(24px / var(--col));
3、JavaScript获取css变量

JavaScript 操作 CSS 变量的写法如下。

// 设置变量
document.body.style.setProperty('--黑色主题', '#7F583F');
// 读取变量
document.body.style.getPropertyValue('--黑色主题').trim();
// '#7F583F'
// 删除变量
document.body.style.removeProperty('--黑色主题');

在构建大型站点时,网页中 所使用的 CSS 的数量是非常庞大的,并且在许多场合大量的信息会重复使用。例如,在网页中维护一个配色方案,意味着一些颜色在CSS文件中多次出现,并被重复使用。当你修改配色方案时,不论是调整某个颜色或完全修改整个配色,都会成为一个复杂的问题,不容出错,而单纯查找替换是远远不够的

CSS变量为我们带来一些预处理器的便利,并且不需要像Less或Sass等额外的编译。

这些变量的第二个优势就是名称本身就包含了语义的信息

其次JS可以获取CSS变量也可以设置CSS变量,大大增加了JS和CSS之间的联系。

CSS变量之var()函数的应用——动态修改样式 &amp; :root的使用一、css变量body { --foo: #7F593F; --urls: './img/xxx.jpg';}如上述代码,意思为:在body选择器里面声明了两个变量:–foo 和 –bar;css声明变量不像Less的@foo, 也不像sass的$foo,而是采取了不同形式的–foo,声明出来的变量和color、background-url 等正式属性没有什么不同 ,所以 CSS 变量又叫做**“CSS 自定义 #app { /* font-family: 'Avenir', Helvetica, Arial, sans-serif; */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; /* text-align: center; color: #2c3e50; margin-top: 60px; */ html, body, div, h1, h2, h3,.
CSS中,可以使用CSS变量CSS Variables)来定义和使用动态变量CSS变量的定义以`--`开头,后面跟着变量名和变量值。例如: ```css :root { --main-color: #ff0000; 在定义CSS变量时,需要将其放在`:root`伪类中,`:root`伪类表示文档的根元素(HTML元素)。 在使用CSS变量时,可以通过`var()`函数来引用变量。例如: ```css div { background-color: var(--main-color); 上面的代码中,`var(--main-color)`表示引用`--main-color`变量的值作为`background-color`的值。 在JavaScript中,可以通过`document.documentElement.style.setProperty()`方法来动态设置CSS变量的值。例如: ```javascript document.documentElement.style.setProperty('--main-color', '#00ff00'); 上面的代码中,将`--main-color`变量的值设置为`#00ff00`。 需要注意的是,CSS变量的兼容性不是非常好,需要在使用时注意浏览器的兼容性。
网络爬虫开发(五)02-爬虫高级——Selenium的使用-反爬虫机制简介 & Selenium的API学习 & 实战之自动打开浏览器输入关键字进行搜索、爬取需要的数据、自动翻页 & 相关爬虫知识总结 沐°瀮(Joyce): 大佬可以发一下代码吗?表情包 vue中props设置默认值-父组件给子组件传值的写法——简略、带类型、带类型和默认值、带校验 yeyein9: Node学习(三)03-处理POST请求、静态资源、404——Postman使用和设置参数&POST请求-浏览器提交数据给服务器&res.statusCode设置状态码&fs.readFile读取文件 qq_40138231: 这么系统的教程居然没人 网络爬虫开发(五)02-爬虫高级——Selenium的使用-反爬虫机制简介 & Selenium的API学习 & 实战之自动打开浏览器输入关键字进行搜索、爬取需要的数据、自动翻页 & 相关爬虫知识总结 网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用 网络爬虫开发(四)-爬虫基础——环境准备、定义options接口、抽取公共部分代码、定义抽象方法、实现TeacherPhotos类、实现NewsList类及总结