如何借助content属性显示CSS var变量值

2019-08-2008:22:21网页制作Comments3,116 views字数 1275阅读模式

一、变量作为字符动态呈现

CSS var变量(CSS自定义属性)很好用,然后,有时候,需要这些变量能够同时作为字符在页面中呈现,我们想到的是使用::before/::after伪元素配合content属性,但是,把CSS变量直接作为content属性值是没有任何效果的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

/* 无效 */
.bar::before {
    content: var(--percent);
}

那该如何呈现呢?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

二、借助CSS计数器呈现CSS var变量值

示意代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

/* 有效 */
.bar::before {
    counter-reset: progress var(--percent);
    content: counter(progress);
}

也就是虽然content属性本身不支持变量,但是counter-reset属性后面的计数器初始值是支持的,于是我们可以来一招移花接木让CSS var变量值作为字符在页面中显示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

关于CSS计数器如果不太了解,可以参考我之前这篇文章:“CSS counter计数器(content目录序号自动递增)详解”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

三、实际应用案例展示

例如我们需要实现一个进度条效果,已经加载完成了部分的宽度百分比值和进度值是一样的,最好可以通过一个变量控制,这样会大大简化我们的实现。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

此时,CSS var变量非常适合使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

例如下图所示的效果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

如何借助content属性显示CSS var变量值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

HTML结构非常简单,就是一个单标签,没有任何嵌套:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

<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>

关键是CSS,这里就应用了这里的CSS变量值呈现技巧,见下面代码红色高亮部分:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

.bar {
    height: 20px; width: 300px;
    background-color: #f5f5f5;
}
.bar::before {
    display: block;
    counter-reset: progress var(--percent);
    content: counter(progress) '%\2002';
    width: calc(1% * var(--percent));
    color: #fff;
    background-color: #2486ff;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
}

您可以狠狠地点击这里:CSS百分比变量与进度条demo文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

四、小小结束语

虽然是个小技巧,但很实用,目前我已经在项目中多次使用,写这篇文章也是方便自己快速查找,实际用的时候就把代码拷贝一下,改一下变量名就可以了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

抛砖引玉,如果遇到其他需要动态显示变量的场景,也可是试试本文的这个呈现技巧。你不必现在就牢记,只要有个印象就可以了,到时候进去我的博客,搜索“CSS变量”或者直接搜索“var”就可以找到本文了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/15689.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/zhizuo/15689.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定