前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深入了解 CSS 变量,让 CSS 创造更多可能!

深入了解 CSS 变量,让 CSS 创造更多可能!

作者头像
奋飛
发布于 2023-07-24 06:40:46
发布于 2023-07-24 06:40:46
24500
代码可运行
举报
文章被收录于专栏:Super 前端Super 前端
运行总次数:0
代码可运行

日常开发中所说的 CSS 变量,实际上是 CSS 的变量函数 var() 与 CSS 自定义属性的统称。

CSS 变量带来的提升:

  1. 使得开发和维护成本更低了,如让整个网站的换肤变得更容易;
  2. 改变了在图形交互效果的实现中 JavaScript 的占据比重,使得开发门槛降低了,体验升级;
  3. 使自定义语法的扩展成为可能。

基本用法

以两个减号(--)开始,属性值则可以是任何有效的 CSS 值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:root {
  --primary-color: blue;
}

:root 可以保证所有页面和任意标签元素都能使用这个自定义属性。

自定义属性的继承性

  1. 本质上是继承特性 后代元素可以原封不动地继承祖先元素设置的 CSS 自定义属性值。
  2. Shadow DOM 中的元素也能继承 Shadow DOM 中的 CSS 样式拥有自己独立的作用域。自定义属性是目前为数不多可以直接控制 Shadow DOM 样式的入口。

各大UI库可支持自定义主题的核心!!!

自定义属性的细节

CSS 自定义属性值可以是任意值或表达式

示例:SVG内联背景作为CSS自定义属性值使用实例页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:root {
    --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='green' d='M28.027 5.161l-17.017 17.017-7.007-7.007-3.003 3.003 10.010 10.010 20.020-20.020z'%3E%3C/path%3E%3C/svg%3E");
}
.icon-check {
    background: var(--icon-check) no-repeat center / 100%;
    /* 尺寸限制 */
    display: inline-block;
    width: 20px; height: 20px;
}
.valid-pass::after {
    content: var(--icon-check);
    /* 尺寸限制 */
    display: inline-block;
    width: 20px; height: 20px;
}

适应性之强,令人咋舌!

CSS 自定义属性值可以互相传递

在定义 CSS 自定义属性的时候,可以直接引入 CSS 自定义属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body {
	--green: #4caf50;
	--successColor: var(--green);
	--columns: 4;
	--margins: calc(24px / var(--columns));
}

不能自身赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:root {
  --primary-color: blue;
}
body {
  --primary-color: var(--primary-color, blue);
}

不支持用在媒体查询中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@media (max-width: var(--maxWidth))

自定义属性的设置与获取

在 HTML 标签中设置 CSS 自定义属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div style="--color: blue;">
  <img src="1.jpg" style="border: 1px solid var(--color)">
</div>

在 JavaScript 中设置和获取 CSS 自定义属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
box.style.setProperty('--color', 'blue');
getComputedStyle(box).getPropertyValue('--color');

使用 content 属性显示 CSS 自定义属性值的技巧

attr() 可以使用任意 HTML 自定义属性控制元素的样式!但其各浏览器实现不是特别好!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
attr( attribute-name <type-or-unit>? [, <fallback> ]? )
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p data-foo="hello">world</p>
<style>
[data-foo]::before {
  content: attr(data-foo) " ";
}
</style>

这里,借助 CSS 计数器呈现 CSS 自定义属性值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<label>图片1</label>
<div class="bar" style="--percent: 60;"></div>
<label>图片2</label>
<div class="bar" style="--percent: 40;"></div>
<label>图片3</label>
<div class="bar" style="--percent: 20;"></div>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.bar {
    height: 20px; width: 300px;
    background-color: #f2f2f2;
}
.bar::before {
    /* 进度值信息展示 */
    counter-reset: progress var(--percent);
    content: counter(progress) '%\2002'; /* %\2002 为空格 */
    display: block;
    /* 宽度设置 */
    width: calc(100% * var(--percent) / 100);
    font-size: 12px;
    color: #fff;
    background-color: #2486ff;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
}

补充:

  • counter-reset 属性用于将 CSS 计数器 重置为制定值;
  • 函数 counter(),返回一个代表计数器的当前值的字符串。

一个计数器本身没有可见的效果,而是通过 counter() 函数返回开发人员定义的字符串(或图像)从而使计数器拥有很棒的作用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
云计算的定义、类型及应用场景
通常来说,人们认可云计算作为一种计算方式,它允许通过互联网以“服务”的形式向外部用户交付灵活、可扩展的IT功能。其中有三个关键词:可扩展、服务和互联网,因此说云计算是在互联网上部署和交付应用,且可按需求而扩展。
加米谷大数据
2019/04/19
2.2K0
云计算的定义、类型及应用场景
云计算是趋势 不久将来或将深入到各个领域
智能化决定是目前消费电子领域的主流趋势,所有的产品只要能通电,基本上就都可以跟智能扯上关系。不说手机,电视这些主流产品,就连冰箱,洗衣机,空气净化器这些家居产品现在也都跟智能扯上了关系,一起组成了智能家居这个崭新的概念。 要想实现智能,单单依靠内置智能的操作系统显然是不够的。在未来,现代科技还将会继续创造一个个奇迹,不断改善我们的生活。如今物联网兴起,智能家居同样得到了长足的发展,从有线模式转化为无线模式,操作更加简洁方便,安全可靠,如果结合云计算技术将要把智能家居提升到一个新的高度。 云计算技术 云计算C
静一
2018/03/19
9810
数据处理的新方式:云计算
【摘要】  云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。  云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了...  云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。  云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算
CDA数据分析师
2018/02/05
1.2K0
【专业技术】啥叫云计算?
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。 云计算 - 发展 据《中国云计算产业发展前景与投资战略分析报告前瞻》数据显
程序员互动联盟
2018/03/14
2.1K0
【专业技术】啥叫云计算?
移动边缘计算综述
在5G时代,移动网络服务的对象不再是单纯的手机,而是各种类型的设备,如平板、移动车辆和各种传感器等。服务的场景也多样化,比如移动宽带,大规模机器类型通信、任务关键型互联网等。因此,在移动性、安全性、时延性和可靠性等多个方面,移动网络都必须满足更高的要求。
小锋学长生活大爆炸
2021/03/03
1.8K0
吃透什么是KVM虚拟化
概念: 云计算自从提出,一直没有一个明确而统一的定义。维基百科对云计算做了如下的描述:云计算是一种通过因特网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式。美国国家标准与技术研究院( NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。 云计算分类: 公有云:public Cloud,通常指第三方提供商为用户提供
用户8851537
2021/07/21
2.8K0
云计算是最有价值是其商业模式
云计算最有价值的是其是按需取用的商业模式,将影响至IT产业之外的领域;所提倡的业务模式和涉及的核心技术,大部分步履艰难,离真正的云计算模式还有相当漫长的道路。 2014-2019年广东物联网云计算行业趋势分析及投2014-2018年云计算行业招商计划书2014年版云计算项目融资商业计划书2014-2018年中国云计算第三方软件行业市场深度2014-2018年中国政府云计算行业市场深度调研及2014-2018年中国云计算行业市场竞争格局分析与2014-2018中国云计算产业园区行业竞争格局分析2014-201
静一
2018/03/20
1.4K0
终于有人把云计算讲明白了
导读:对于云计算的阐述,我们将从云计算概念、原理、分类、特点和应用这5个方面展开。
IT阅读排行榜
2020/11/06
2K0
终于有人把云计算讲明白了
云计算的大步前进带动虚拟化应用的爆发
谈到互联网的发展大家都非常的看好云计算是互联网发展的未来,所以在了解这方面内容的同时决定如下内容对云计算这个概念的理解和说法还是比较好的,所以分享出来希望对关注云计算的朋友们有所帮助。 如果历数当前的
静一
2018/03/20
8810
什么是云计算?
本文介绍了云计算的基本概念、服务类型、技术架构以及未来发展趋势。作者认为云计算的本质是社会分工,通过云计算服务,用户能够降低成本、提高效率并实现弹性扩展。然而,云计算也面临着一些问题,如数据隐私、垄断等。未来,随着技术的不断进步和应用的不断丰富,云计算将会越来越成熟,更好地服务于各个行业。
云计算爱好者
2018/01/03
3.7K0
什么是云计算?
高性能的云计算是否会取代超级计算机?
6月底,全球超算计算机TOP500榜单正式发布,中国“天河二号”第三次获得冠军。这个结果并不出乎意料,毕竟在这前的两次中天河二号都一直遥遥领先,专家也预计其将获得下一次的TOP500比拼中。超级计算机一直是人们关注的焦点,其不仅代表着国家的科研技术,同时是对国家安全战略有着巨大的影响。 云计算是时下非常火的一种新型的IT技术,云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。灵活扩展是云计算的一大优势,用户可以根据需求对计算能力进行灵活的扩展,帮助用
静一
2018/03/19
2.3K0
再识云计算前世今生来世
云计算,当我第一次听说这个词的时候,是在2015年吧。可以说直到现在对于这个概念都不是十分理解。直到上个月看了这本书《大话云计算》。
葆宁
2019/04/18
8780
再识云计算前世今生来世
云计算的相关知识
云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
用户5777378
2019/07/08
1.3K0
简单介绍下:云计算
传统模式下,企业建立一套IT系统不仅仅需要购买硬件等基础设施,还有买软件的许可证,需要专门的人员维护。当企业的规模扩大时还要继续升级各种软硬件设施以满足需要。对于企业来说,计算机等硬件和软件本身并非他们真正需要的,它们仅仅是完成工作、提供效率的工具而已。对个人来说,我们想正常使用电脑需要安装许多软件,而许多软件是收费的,对不经常使用该软件的用户来说购买是非常不划算的。可不可以有这样的服务,能够提供我们需要的所有软件供我们租用?这样我们只需要在用时付少量“租金”即可“租用”到这些软件服务,为我们节省许多购买软硬件的资金。
PM吃瓜
2023/03/02
6750
简单介绍下:云计算
云计算产生的背景
1.经济方面 (1) 全球化经济一体化 (2)日益复杂的世界和不可确定性的黑天鹅现象 (3) 需求是云计算发展的动力。 2.社会层面 (1)数字一代的崛起 (2)消费行为的改变 3.政治层面 (1)社会转型:出口型向内需型社会转型,如何满足人民大众日益增长并不断个性化的需要是一项严峻的挑战。 (2)产业升级:制造型向服务型、创新型的转变。 (3)政策支持:十二五规划对物联网、三网融合、移动互联网以及云计算战略的大 力支持。 4.技术方面  (1)技术成熟  (2)企业IT的成熟和计算能力过剩。社会需求的膨胀
cloudskyme
2018/03/20
10.4K1
两大主流存储架构介绍:软件定义存储与超融合
大数据、云计算和虚拟化等技术的出现,使得传统的 IT 架构难以满足企业日益增长的数据存储需求。为应对这一挑战,软件定义存储(SDS,Software Defined Storage)和超融合基础架构(HCI,Hyper-Converged Infrastructure)应运而生,打破了传统 IT 系统复杂和繁冗的现状,优化了网络的可扩展性和管理方式。
存储小白
2021/12/02
1.5K0
云计算和虚拟化技术的关系_云计算技术与应用
资源池和管理中间件层为云计算技术的重要部分 其实虚拟化的就是资源池层,然后管理中间件层负责管理。SOA层应该类似于外部接口。
全栈程序员站长
2022/11/17
5.5K0
云计算和虚拟化技术的关系_云计算技术与应用
云计算,人们身边的“云”
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内完成对数以万计的数据的处理,从而达到强大的网络服务。
CloudBest
2023/03/04
2.7K0
云计算,人们身边的“云”
今天聊聊云计算
产生         2006年谷歌推出了“Google 101计划”,并正式提出“云”的概念和理论。 云计算思想的产生:        传统模式下,企业建立一套IT系统不仅仅需要购买硬件等基础设施,还有买软件的许可证,需要专门的人员维护。当企业的规模扩大时还要继续升级各种软硬件设施以满足需要。对于企业来说,计算机等硬件和软件本身并非他们真正需要的(需要的是服务,它们仅仅是完成工作、提供效率的工具而已。对个人来说,我们想正常使用电脑需要安装许多软件,而许多软件是收费的,对不经常使用该软件的用户来说购
互联网金融打杂
2018/04/03
3.4K0
今天聊聊云计算
云计算及其虚拟化技术
云计算是分布式处理 ( Distributed Computing )、并行处理 ( Parallel Computing) 和网格计算 ( Grid Computing) 的延续和发展,或者说是这些计算机科学概念的商业实现。它不完全是计算,也不纯粹是存储,而是集计算和存储于一身,将服务器、网络、应用程序以及数据库等各种资源通过互联网为用户提供综合服务的一种理念。云计算环境具有以下特点:数据安全可靠、客户端需求低、高灵活度、超大计算能力资源等。
葆宁
2022/01/06
3.2K0
云计算及其虚拟化技术
相关推荐
云计算的定义、类型及应用场景
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档