如何用CSS设置Progressbar/Span宽度?进度条始终100%问题排查
问题解决:进度条宽度无法自定义显示
问题根源
你的代码里有两个关键问题导致进度条宽度不生效:
.skills__bar和.skills__percentage颜色完全相同:进度条的背景容器和填充部分用了同一个--first-color,所以即使设置了宽度,视觉上也看不出变化。- JS进度条未设置宽度:
.skills__js类没有定义宽度属性,自然不会显示对应进度。
修改后的完整CSS(关键部分已标注)
/*==================== VARIABLES CSS ====================*/ :root { --header-height: 3rem; /*========== Colors ==========*/ --hue-color: 255; /*Purple 250 - Green 142 - Blue 230 - Pink 340*/ /* HSL color mode */ --first-color: hsl(var(--hue-color), 69%, 61%); --first-color-second: hsl(var(--hue-color), 69%, 61%); --first-color-alt: hsl(var(--hue-color), 57%, 53%); --first-color-lighter: hsl(var(--hue-color), 92%, 85%); --title-color: hsl(var(--hue-color), 8%, 15%); --text-color: hsl(var(--hue-color), 8%, 45%); --text-color-light: hsl(var(--hue-color), 8%, 65%); --input-color: hsl(var(--hue-color), 70%, 96%); --body-color: hsl(var(--hue-color), 60%, 99%); --container-color: #fff; --scroll-bar-color: hsl(var(--hue-color), 12%, 90%); --scroll-thumb-color: hsl(var(--hue-color), 12%, 80%); /*========== Font and typography ==========*/ --body-font: 'Poppins', sans-serif; --big-font-size: 2rem; --h1-font-size: 1.5rem; --h2-font-size: 1.25rem; --h3-font-size: 1.125rem; --normal-font-size: .938rem; --small-font-size: .813rem; --smaller-font-size: .75rem; /*========== Font weight ==========*/ --font-medium: 500; --font-semi-bold: 600; /*========== Margenes Bottom ==========*/ --mb-0-25: .25rem; --mb-0-5: .5rem; --mb-0-75: .75rem; --mb-1: 1rem; --mb-1-5: 1.5rem; --mb-2: 2rem; --mb-2-5: 2.5rem; --mb-3: 3rem; /*========== z index ==========*/ --z-tooltip: 10; --z-fixed: 100; --z-modal: 1000; } .skills__container{ row-gap: 0; } .skills__header{ display: flex; align-items: center; margin-bottom: var(--mb-2-5); cursor: pointer; } .skills__icon, .skills__arrow{ font-size: 2rem; color: var(--first-color); } .skills__icon{ margin-right: var(--mb-0-75); } .skills__titles{ font-size: var(--h3-font-size); } .skills__subtitle{ font-size: var(--small-font-size); color: var(--text-color); } .skills__arrow{ margin-left: auto; transition: .6s; } .skills__list{ row-gap: 1.5rem; padding-left: 2.7rem; } .skills__titles{ display: flex; justify-content: space-between; margin-bottom: var(--mb-0-5); } .skills__name{ font-size: var(--normal-font-size); font-weight: var(--font-medium); } .skills__bar, .skills__percentage{ height: 5px; border-radius: .25rem; } /* 修改1:进度条容器用浅色背景 */ .skills__bar{ background-color: var(--first-color-lighter); } /* 修改2:进度条填充用主色 */ .skills__percentage{ display: block; background-color: var(--first-color); } /* CSS进度条宽度 */ .skills__css{ width: 50%; } /* 新增:JS进度条宽度,可根据需求调整 */ .skills__js{ width: 70%; }
关键修改说明
- 将
.skills__bar的背景色改为var(--first-color-lighter)(浅色),和.skills__percentage的主色形成对比,这样宽度变化就能直观显示。 - 给
.skills__js类添加宽度属性,比如width: 70%,对应JS技能的进度。 - 保持原有HTML结构不变,即可实现你期望的进度条效果。
内容的提问来源于stack exchange,提问作者wodosharlatan
相关产品推荐
相关产品推荐

