0

0

html个人页面技能展示怎么弄_html技能图表编码法【效果】

蓮花仙者

蓮花仙者

发布时间:2026-01-25 20:44:02

|

716人浏览过

|

来源于php中文网

原创

用 标签可纯 HTML 实现语义化技能条,需显式设 max 值(如 ),CSS 可定制样式;SVG 环形图适合视觉场景,通过 stroke-dasharray 与 stroke-dashoffset 控制进度,配合 transform="rotate(-90)" 使进度从顶部开始;技能数据推荐用 data-* 属性存储,便于 JS 提取与扩展。

html个人页面技能展示怎么弄_html技能图表编码法【效果】

做技能条最省事

纯 HTML 实现技能展示, 是唯一原生支持的语义化标签,不用 JS 就能渲染进度值,且默认可访问、适配高对比度模式。浏览器兼容性从 Chrome 6、Firefox 16、Edge 10 开始都支持,IE 完全不支持——如果必须兼容 IE,得换方案。

常见错误是直接写 却没设 max,结果条永远只显示四分之一(因为默认 max=1)。正确写法必须显式声明:

样式可直接用 CSS 控制颜色和高度,比如:

progress { height: 8px; }
progress::-webkit-progress-bar { background-color: #eee; }
progress::-webkit-progress-value { background-color: #4a90e2; }
progress::-moz-progress-bar { background-color: #4a90e2; }
  • Chrome/Safari 用 ::-webkit-progress-value 控制已填充部分
  • Firefox 用 ::-moz-progress-bar,不能混用
  • IE 不识别 ,会降级为内联元素,需加 display: block 防止错位

SVG 技能环形图适合“视觉优先”场景

环形图本质是 SVG 的 + stroke-dasharray 动画技巧,比 Canvas 轻量、可缩放不失真、支持 CSS 过渡。但别用 手算贝塞尔曲线——太容易算错起止角度。

立即学习前端免费学习笔记(深入)”;

核心逻辑是:用一个圆描边长度代表 100%,再通过 stroke-dashoffset 截取显示比例。例如画一个半径 45 的环,总周长 = 2 * π * 45 ≈ 283,要显示 80% 就设 stroke-dasharray="283"stroke-dashoffset="56.6"(283 × 0.2)。

实际编码时建议封装成函数生成 SVG 字符串,避免硬编码数值:

易可图
易可图

电商人都在用的设计平台

下载
function skillRing(percent) {
  const radius = 45;
  const circumference = 2 * Math.PI * radius;
  const offset = circumference - (percent / 100) * circumference;
  return `
    
      
      
    
  `;
}
  • transform="rotate(-90 ...)" 是为了让进度从顶部开始,否则默认从 3 点钟方向起始
  • 百分比传入前务必校验范围(0–100),否则 offset 可能为负,导致环逆向绘制
  • 若需动画效果,直接对 stroke-dashoffset 加 CSS transition,不要用 JS 逐帧修改

data- 属性驱动技能列表更灵活

把技能名称、熟练度、工具链都存在 HTML 属性里,后续想加筛选、排序或导出 JSON 都方便。别把数据写死在文本节点里,比如

  • React: 90%
  • —— 这种写法没法被 JS 安全提取数值。

    推荐结构:

  • React
  • 这样 JS 可以直接读取:

    document.querySelectorAll('[data-skill]').forEach(el => {
      const name = el.dataset.skill;
      const level = Number(el.dataset.level);
      const tools = el.dataset.tools.split(', ').map(t => t.trim());
    });
    • dataset 自动转小写并用驼峰命名,data-tools-listel.dataset.toolsList
    • 百分比值存数字而非字符串,避免后续计算时意外拼接成字符串
    • 如果技能项超过 10 个,建议加 aria-live="polite" 支持屏幕阅读器动态播报更新

    响应式技能图表要注意断点重绘

    技能条在手机上横向排列会挤出滚动条,但简单加 flex-wrap 又会导致环形图尺寸错乱。真正要处理的是容器尺寸变化后 SVG 的 viewBox 缩放和 的高度重置。

    关键不是媒体查询改宽度,而是监听容器变化:

    const container = document.querySelector('.skills-container');
    const resizeObserver = new ResizeObserver(() => {
      // 重新计算 SVG 尺寸或重设 progress height
      document.querySelectorAll('progress').forEach(p => {
        p.style.height = window.innerWidth < 768 ? '6px' : '8px';
      });
    });
    resizeObserver.observe(container);
    • 别用 window.onresize,它触发太频繁且不感知元素尺寸变化
    • 环形图 SVG 内部尺寸靠 viewBox 控制,外部容器用 width: 100% + aspect-ratio: 1 保正方形
    • 如果用了第三方图标字体(如 Font Awesome)标注技能,确保图标字号随容器缩放,否则小屏下图标可能比文字大一倍

    技能图表最难的不是画出来,而是让不同设备下数值准确、语义清晰、交互不卡顿。多数人卡在 SVG 坐标系理解偏差或 dataset 类型误判上,多打两次 console.log(typeof el.dataset.level) 能省半天调试时间。

    相关专题

    更多
    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    417

    2023.08.07

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    535

    2023.08.23

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    311

    2023.10.13

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    76

    2025.09.10

    css
    css

    css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    524

    2023.06.15

    css居中
    css居中

    css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

    268

    2023.07.27

    css如何插入图片
    css如何插入图片

    cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    761

    2023.07.28

    css超出显示...
    css超出显示...

    在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

    541

    2023.08.01

    c++ 根号
    c++ 根号

    本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

    45

    2026.01.23

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 0.8万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 3万人学习

    CSS教程
    CSS教程

    共754课时 | 23.5万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号