文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【HTML颜色转换器:轻松转换颜色代码】

2024-02-14 14:45

关注

颜色是网页设计中非常重要的元素,它可以影响网页的整体视觉效果,甚至可以影响用户的体验感。因此,在网页设计中,选择合适的颜色非常重要。HTML颜色转换器可以帮助用户轻松地转换多种颜色格式,包括十六进制、RGB、HSL和CMYK。

HTML颜色转换器通常具有以下功能:

使用HTML颜色转换器非常简单,用户只需要选择要转换的颜色格式,然后输入颜色值,即可转换出其他格式的颜色代码。以下是一个演示代码:

<form>
  <label for="color">颜色:</label>
  <input type="text" id="color" name="color" value="#FF0000">
  <input type="submit" value="转换">
</form>

<p>十六进制:<span id="hex"></span></p>
<p>RGB:<span id="rgb"></span></p>
<p>HSL:<span id="hsl"></span></p>
<p>CMYK:<span id="cmyk"></span></p>

<script>
  const colorInput = document.getElementById("color");
  const hexSpan = document.getElementById("hex");
  const rgbSpan = document.getElementById("rgb");
  const hslSpan = document.getElementById("hsl");
  const cmykSpan = document.getElementById("cmyk");

  colorInput.addEventListener("change", () => {
    const color = colorInput.value;
    const hex = rgb2hex(color);
    const rgb = hex2rgb(hex);
    const hsl = rgb2hsl(rgb);
    const cmyk = rgb2cmyk(rgb);

    hexSpan.textContent = hex;
    rgbSpan.textContent = `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;
    hslSpan.textContent = `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;
    cmykSpan.textContent = `cmyk(${cmyk.c}%, ${cmyk.m}%, ${cmyk.y}%, ${cmyk.k}%)`;
  });

  function rgb2hex(rgb) {
    const r = parseInt(rgb.substring(4, 7), 10);
    const g = parseInt(rgb.substring(8, 11), 10);
    const b = parseInt(rgb.substring(12, 15), 10);
    return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
  }

  function hex2rgb(hex) {
    const r = parseInt(hex.substring(1, 3), 16);
    const g = parseInt(hex.substring(3, 5), 16);
    const b = parseInt(hex.substring(5, 7), 16);
    return { r, g, b };
  }

  function rgb2hsl(rgb) {
    const r = rgb.r / 255;
    const g = rgb.g / 255;
    const b = rgb.b / 255;

    const max = Math.max(r, g, b);
    const min = Math.min(r, g, b);
    const diff = max - min;

    let h, s, l;

    if (diff == 0) {
      h = 0;
    } else if (max == r) {
      h = 60 * ((g - b) / diff) + 360;
    } else if (max == g) {
      h = 60 * ((b - r) / diff) + 120;
    } else {
      h = 60 * ((r - g) / diff) + 240;
    }

    if (max == 0) {
      s = 0;
    } else {
      s = (diff / max) * 100;
    }

    l = (max + min) / 2 * 100;

    return { h, s, l };
  }

  function hsl2rgb(hsl) {
    const h = hsl.h / 360;
    const s = hsl.s / 100;
    const l = hsl.l / 100;

    let r, g, b;

    if (s == 0) {
      r = g = b = l;
    } else {
      const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
      const p = 2 * l - q;

      r = hue2rgb(p, q, h + 1 / 3);
      g = hue2rgb(p, q, h);
      b = hue2rgb(p, q, h - 1 / 3);
    }

    return { r, g, b };
  }

  function hue2rgb(p, q, t) {
    if (t < 0) {
      t += 1;
    } else if (t > 1) {
      t -= 1;
    }

    if (t < 1 / 6) {
      return p + (q - p) * 6 * t;
    } else if (t < 1 / 2) {
      return q;
    } else if (t < 2 / 3) {
      return p + (q - p) * (2 / 3 - t) * 6;
    } else {
      return p;
    }
  }

  function rgb2cmyk(rgb) {
    const r = rgb.r / 255;
    const g = rgb.g / 255;
    const b = rgb.b / 255;

    const k = 1 - Math.max(r, g, b);
    const c = (1 - r - k) / (1 - k);
    const m = (1 - g - k) / (1 - k);
    const y = (1 - b - k) / (1 - k);

    return { c, m, y, k };
  }

  function cmyk2rgb(cmyk) {
    const c = cmyk.c / 100;
    const m = cmyk.m / 100;
    const y = cmyk.y / 100;
    const k = cmyk.k / 100;

    const r = 1 - Math.min(1, c * (1 - k) + k);
    const g = 1 - Math.min(1, m * (1 - k) + k);
    const b = 1 - Math.min(1, y * (1 - k) + k);

    return { r, g, b };
  }
</script>

在页面中使用该代码,用户可以输入任何颜色值,然后点击“转换”按钮,即可转换出其他格式的颜色代码。

HTML颜色转换器是一种非常实用的工具,它可以帮助用户轻松地转换颜色代码,从而提高网页开发的效率。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯