网站首页 > 基础教程 正文
CSS的颜色值有3种表示方式,为十六进制、RGB、颜色名称,用代码表示分别为:
color : #345456;
color : rgb(255,152,10);
color : red;
平时在编写CSS代码时,在设置颜色值时使用的最多的方式是十六进制。如果要对颜色值进行计算,就必须将十六进制的颜色值转换成RGB模式。那么如何进行转换呢?
别急,先来看看十六进制的颜色值和RGB颜色值之间的对应关系。比如上面的十六进制的颜色值:#345456,其中的前2位“34”对应R,中间2位“54”对应G,最后2位“56”对应B,有了这个对应关系那么剩下的就是进制转换的事了。
javascript中使用parseInt()方法可以将将第二个参数设置成16就可以将十六进制转换成十进制。需要注意的是,CSS中的十六进制颜色值支持简写,在转换的过程中要考虑到简写的处理办法。
下面是我写的一个将十六进制的颜色值转换成RGB的函数,该函数接受一个十六进制或RGB的CSS颜色值,返回的是一个包含了r、g、b三个颜色值的对象,这样就可以很方便的对颜色值进行计算了。
view sourceprint?
var parseColor = function( val ){
var r, g, b;
// 参数为RGB模式时不做进制转换,直接截取字符串即可
if( /rgb/.test(val) ){
var arr = val.match( /\d+/g );
r = parseInt( arr[0] );
g = parseInt( arr[1] );
b = parseInt( arr[2] );
}
// 参数为十六进制时需要做进制转换
else if( /#/.test(val) ){
var len = val.length;
// 非简写模式 #0066cc
if( len === 7 ){
r = parseInt( val.slice(1, 3), 16 );
g = parseInt( val.slice(3, 5), 16 );
b = parseInt( val.slice(5), 16 );
}
// 简写模式 #06c
else if( len === 4 ){
r = parseInt( val.charAt(1) + val.charAt(1), 16 );
g = parseInt( val.charAt(2) + val.charAt(2), 16 );
b = parseInt( val.charAt(3) + val.charAt(3), 16 );
}
}
else{
return val;
}
return {
r : r,
g : g,
b : b
}
};
下面是调用结果:
parseColor( '#009652' ); // { r = 0, g = 150, b = 82 }
parseColor( '#06c' ); // { r = 0, g = 102, b = 204 }
parseColor( 'rgb(255,10,102)' ); // { r = 255, g = 10, b = 102 }
文章地址:peixun.qietu.com
文/丁向明
做一个有博客的web前端自媒体人,专注web前端开发,关注用户体验,加我qq/微信交流:6135833
http://dingxiangming.com
- 上一篇: Qt—设计颜色编辑选取对话框
- 下一篇: PPT鼠绘知识点概览,又有多少你不知道的方法与技巧?
猜你喜欢
- 2025-05-21 一键超4400MHz!豪华灯效+高频至尊享受
- 2025-05-21 38个CSS资源升级你的CSS技能
- 2025-05-21 技嘉推出第二代RGB内存条:DDR4-3600,自带超频功能
- 2025-05-21 看网页太刺眼 换个底色护下眼
- 2025-05-21 ARTSLINK零创|设计师怎么玩红色?
- 2025-05-21 Windows 11通过修改注册表设置护眼外观
- 2025-05-21 浏览器背景惨白太刺眼 咱们给它换个shai
- 2025-05-21 Excel实战技巧1 | 让数据更醒目?单元格数值依条件用颜
- 2025-05-21 一次懂rgb(红绿蓝)颜色详细参数
- 2025-05-21 玩游戏也能学编程?我读书少,别骗我
- 05-21HTML DOM Columngroup 对象
- 05-21零基础学习HTML图像热区特殊字符无序列表和有序定义列表表格
- 05-21让div填充屏幕剩余高度的方法
- 05-21高效设计表格 - 用我们的HTML表格生成器轻松搞定
- 05-21前端入门——html 表单
- 05-21我问AI——以前网页编程流行用table布局,为什么不用了
- 05-21平和!晨间攻克 HTML 表格属性题,面试难题轻松化解
- 05-21一键超4400MHz!豪华灯效+高频至尊享受
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)