在CSS中实现进度条时,我们经常需要将数值型变量与百分号字符串结合使用。以下是几种优雅的实现方法:
:root {
--progress-value: 75; /* 数值型变量 */
}
.progress-bar {
width: calc(var(--progress-value) * 1%);
}
:root {
--progress-value: 75;
--progress-percent: var(--progress-value) * 1%;
}
.progress-bar {
width: calc(var(--progress-percent));
}
<div class="progress-bar" data-progress="75"></div>
.progress-bar {
width: attr(data-progress %);
}
注意:attr()函数对CSS属性的支持有限,可能不是所有浏览器都支持这种用法。
$progress-value: 75;
.progress-bar {
width: #{$progress-value}#{"%"};
}
document.documentElement.style.setProperty('--progress-percent', progressValue + '%');
<div class="progress-container">
<div class="progress-bar" style="--progress: 65;"></div>
</div>
.progress-container {
width: 100%;
height: 20px;
background-color: #f0f0f0;
border-radius: 10px;
overflow: hidden;
}
.progress-bar {
height: 100%;
width: calc(var(--progress) * 1%);
background-color: #4CAF50;
transition: width 0.3s ease;
}
width: calc(var(--progress, 0) * 1%);
这些方法都能很好地解决数值型CSS变量与百分号字符串结合的问题,选择哪种取决于你的具体需求和项目环境。