首页 > 其他分享 >CSS中的变量

CSS中的变量

时间:2023-09-13 10:11:42浏览次数:30  
标签:变量 -- color var CSS size

前言

在 CSS 中,有很多需要反复使用的属性值,如果每个使用的地方都直接写死这个值,而没有使用变量去定义这个值的话,后期修改起来会很麻烦。有很多人忽略了在 CSS 中也可以定义变量这个事情,相信你会爱上它 !

CSS 使用变量有很多好处: 可以减少样式代码的重复性,增加样式代码的扩展性和灵活性

声明变量

  • 声明变量的时候,变量名前面要加上两根连词线--
:root {
  --color: #ebebeb;
  --size: 26px;
  --shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1)
}

上面代码中,声明了三个变量: --color--size--shadow

变量名大小写敏感,例如: --header 和 --Header 是两个不同的变量

它们与 color, font-size 等正式属性没有什么不同,只是没有默认含义,所以 CSS 变量又叫做 CSS 自定义属性

你可能会问,为什么选择两根连词线(--)表示变量?因为 $ 被 Sass 用掉了,@ 被 Less 用掉了。为了不产生冲突,官方的 CSS 变量就改用两根连词线了。

var函数

  • var() 函数用于读取变量
div {
    font-size: var(--size);
    box-shadow: var(--shadow);
}
  • var() 函数还可以使用第二个参数,表示变量的默认值。如果变量不存在,就会使用这个默认值
font-size: var(--size, 30px);
  • var() 函数还可以用在变量的声明
--big-size: var(--size);
  • 变量值只能作为属性名,不能作为属性值。下面代码中,变量 --side 用作属性名,这是无效的。
.foo {
    --side: margin-top;
    /* 无效 */
    var(--side): 20px;
}

变量的作用域

同一个 CSS 变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效,这与 CSS 的层叠规则是一致的

下面代码中,三段文字的颜色是不一样的

<style>
  :root { --color: blue; }
  div { --color: green; }
  #alert { --color: red; }
  * { color: var(--color); }
</style>

<p>蓝色</p>
<div>绿色</div>
<div id="alert">红色</div>

变量的作用域就是它所在选择器的有效范围内

由于这个原因,全局的变量通常放在根元素 :root 里面,确保任何选择器都可以读取它们

:root {
    --color: #ff5722;
    --size: 25px;
    --shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1)
}

标签:变量,--,color,var,CSS,size
From: https://www.cnblogs.com/m2maomao/p/17698798.html

相关文章

  • react配置css相关
    1.installnormalize:yarnaddnormalize.css-D(1).引入src/index.js或src/index.tsx:import"normalize.css";2.installsass:[email protected].配置less:(1).安装less相关依赖:[email protected]@5.0.0-D(2).修改config/webpack.config.js文件:......
  • linux shell 字符串变量 有双引号和无双引号的区别
     001、[root@pc1test02]#lsa.shb.sh[root@pc1test02]#cata.sh##测试程序1#!/bin/bashstr1="ab_cd_ef"tmp1=$(echo$str1|sed's/_/\n/g')echo$tmp1[root@pc1test02]#catb.sh##测试程序2#!/bin/bashstr1="ab_......
  • 静态变量与动态变量
    在计算机编程中,变量是存储数据的基本单元。它们可以根据需要在程序执行过程中更改值。静态变量和动态变量是两种不同类型的变量,它们具有不同的特性和用途。静态变量静态变量是在程序编译时分配内存并初始化的变量。它们在程序的整个生命周期内保持不变,不会在函数调用之间丢失其值。......
  • 全栈工程师必须要掌握的前端CSS技能
    作为一名全栈工程师,在日常的工作中,可能更侧重于后端开发,如:C#,Java,SQL,Python等,对前端的知识则不太精通。在一些比较完善的公司或者项目中,一般会搭配前端工程师,UI工程师等,来弥补后端开发的一些前端经验技能上的不足。但并非所有的项目都会有专职前端工程师,在一些小型项目或者初创公......
  • python安装后,添加完环境变量,dos窗口输入python无效
    问题背景python版本:3.8.5安装时是否勾选添加环境:是问题:dos窗口输入python提示:无任何报错提示,弹出windows应用商店解决方案问题1:弹出windows应用商店是因为默认的商店的path环境变量优先级高于我们配置的python目录,将对应的配置优先级调换即可,比如C:\Users\panie\AppDa......
  • 去除字符串中的css标记
       有时我们拿到的资料中会有很多网页css标记符号,非常影响资料的可读性。例如:<p>\u3000\u3000第一首</p><p>\u3000\u3000晓日曈曈万象融、河清海晏庆年丰、生逢盛世\真欢乐、好把心田答化工。</p><p>\u3000\u3000晓日:黎明时的太阳</p><p>\u3000\u3000曈曈:形\容太阳刚出还不......
  • CSS3 中 transition 和 animation 的属性分别有哪些
    Transition属性:transition 属性用于定义元素在状态改变时从一个样式转换到另一个样式的过渡效果。它包含以下几个属性:transition-property:指定过渡效果应用的CSS属性名称,多个属性可以用逗号分隔。transition-duration:指定过渡效果的持续时间,单位可以是秒(s)或毫秒(ms)。transit......
  • ARVGIS中创建NetCDF栅格图层无法自动读取变量的解决方法(包括netCDF4包查看nc文件属性)
    下载了.nc后缀的文件,准备通过Arcgis转为tif栅格形式,但是出现了如下问题:1.将nc文件拖入到输入栏后并不会自动提取变量、X维度、Y维度和输出栅格图层。 在尝试解决的过程中,使用python的netCDF4包查看nc文件属性,准备手动填写importnumpyasnpimportpandasaspdimportnet......
  • 同一类内部,类属性通用 类的继承,实例属性通用,类属性不通用 解决办法: 声明为全局变
    '''属性的继承'''classClass_1:importpandasaspd#储存pd,但不储存pandasprint(pd)#无需实例化deffun_1(pd=pd):print(pd)fun_1()#无需实例化def__init__(self,pd=pd):print(pd)self.pd=pd......
  • less变量
     Less变量一、Less简介二、Less中的变量三、less外部引入 一、Less简介1.Less是一门css的预处理语言,less是一个css的增强版,通过less可以编写更少的代码实现更强大的样式。变量名以两条短横线命名例如:--color:red2.Less特点:less的语法大致和css语法一致,但......