css中常用的两种颜色表示方式分别是rgb和十六进制两种,有时候可能特殊需要,要将获取到的rgb颜色转换为十六进制,反之也有这种情况。网上这种颜色转换工具比较少,于是本人就开发了这么一个小工具,方便使用,并将代码分享给大家。
先上效果图:
工具地址:http://oohy4f8bb.bktdn/colorExchange.html
代码实现
原生js获取DOM对象、绑定事件
js正则表达式校验用户输入
parseInt(‘’,16)16进制转10进制
num.toString(16)10进制转16进制
完整代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset=\"UTF-8\">
<title>rgb与十六进制颜色转换</title>
<style>
*{
font-family: \"微软雅黑\";
box-sizing:border-box;
}
html,body,.page{
height:100%;
margin:0px;
}
.page{
background:url(http://ol435r2l8.bktdn/background.jpg) no-repeat center /100%;
}
.main{
width: 751px;
height: 100%;
margin: 0 auto;
background: rgba(255, 255, 255, 0.81);
}
.header{
text-align: center;
height: 46px;
line-height: 46px;
font-size: 26px;
background-color: #5cdc85;
color: #fff;
border-radius: 0px;
box-shadow: 0px 8px 5px #b5b5b5;
}
ntent{
margin: 50px 10px;
}
input{
height:35px;
width:200px;
outline:0;
border:1px solid #EEEEEE;
padding:5px;
}
input.rgb{
width:50px;
}
.btn{
width: 60px;
height: 30px;
line-height: 30px;
text-align: center;
display: inline-block;
background: #55aae2;
color: #fff;
border-radius: 3px;
cursor:pointer;
}
#rgbOutput,#hexOutput{
color: rgb(191, 9, 244);
font-size: 16px;
font-weight: 600;
}
#rgbColor,#hexColor{
display: inline-block;
width: 30px;
height: 30px;
position: absolute;
margin-left: 60px;
}
</style>
</head>
<body>
<div class=\"page\">
<div class=\"main\">
<header>
<div class=\"header\">颜色代码转换</div>
</header>
<div class=\"content\">
<p>
<span>十六进制颜色:</span>
<input id=\"i-hexcode\" type=\"text\" placeholder=\"填写16进制颜色 如:#FFFFFF\">
<span class=\"btn\" id=\"16torgb\">转换</span>
</p>
<p id=\"o-rgbcode\">
<span id=\"rgbOutput\"></span>
<span id=\"rgbColor\"></span>
</p>
<p style=\"margin-top: 30px;\">
<span>RGB颜色:</span>
<input id=\"i-rgbcodeR\" type=\"text\" class=\"rgb\">
<input id=\"i-rgbcodeG\" type=\"text\" class=\"rgb\">
<input id=\"i-rgbcodeB\" type=\"text\" class=\"rgb\">
<span class=\"btn\" id=\"rgbto16\">转换</span>
</p>
<p id=\"o-hexcode\">
<span id=\"hexOutput\"></span>
<span id=\"hexColor\"></span>
</p>
</div>
</div>
</div>
<script>
//颜色值输入区域
var i_hexcode = document.getElementById(\"i-hexcode\");
var i_rgbcodeR = document.getElementById(\"i-rgbcodeR\");
var i_rgbcodeG = document.getElementById(\"i-rgbcodeG\");
var i_rgbcodeB = document.getElementById(\"i-rgbcodeB\");
//颜色值输出区域
var rgbOutput = document.getElementById(\"rgbOutput\");
var rgbColor = document.getElementById(\"rgbColor\");
var hexOutput = document.getElementById(\"hexOutput\");
var hexColor = document.getElementById(\"hexColor\");
//16进制转rgb转换按钮
var _16torgb = document.getElementById(\"16torgb\");
//rgb转16进制转换按钮
var rgbto16 = document.getElementById(\"rgbto16\");
//校验16进制颜色值正则表达式
var reg = /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/;
//校验rgb颜色值只能输入整数且最多三位数字
var regRgb = /^[0-9]{1,3}$/;
//为按钮注册点击事件
_16torgb.addEventListener(\"click\",sixteenToRgb);
rgbto16.addEventListener(\"click\",rgbToSixteen);
/**
* 16toRgb颜色转换
*/
function sixteenToRgb(){
var hexValue = i_hexcode.value;
//首先校验用户填写的代码是否正确
if(!reg.test(hexValue)){
alert(\"颜色值输入有误请检查!\");
}else{
var codeValue = hexValue.replace(\"#\",'');
var rgbStr = \"\";
if(codeValue.length==6){
var decR = parseInt(codeValue.slice(0,2),16);
var decG = parseInt(codeValue.slice(2,4),16);
var decB = parseInt(codeValue.slice(4,6),16);
rgbStr = decR+','+decG+','+decB;
}else{
var decR = codeValue.slice(0,1);
var decG = codeValue.slice(1,2);
var decB = codeValue.slice(2,3);
decR = parseInt(decR+decR,16);
decG = parseInt(decG+decG,16);
decB = parseInt(decB+decB,16);
rgbStr = decR+','+decG+','+decB;
}
rgbOutputnerText = rgbStr;
rgbColor.background = \"rgb(\"+rgbStr+\")\";
}
}
/**
* rgbto16颜色转换
*/
function rgbToSixteen(){
var rgbValueR = i_rgbcodeR.value;
var rgbValueG = i_rgbcodeG.value;
var rgbValueB = i_rgbcodeB.value;
//首先校验用户填写的代码是否正确
if((!regRgb.test(rgbValueR)||rgbValueR>255)||(!regRgb.test(rgbValueG)||rgbValueG>255)||(!regRgb.test(rgbValueB)||rgbValueB>255)){
alert(\"颜色值输入有误请检查!\");
}else{
var rgbValueR = parseInt(rgbValueR);
var rgbValueG = parseInt(rgbValueG);
var rgbValueB = parseInt(rgbValueB);
var rToHex = rgbValueR.toString(16);
var gToHex = rgbValueG.toString(16);
var bToHex = rgbValueB.toString(16);
if(rToHex.length==1){
rToHex = \"0\"+rToHex;
}
if(gToHex.length==1){
gToHex = \"0\"+gToHex;
}
if(bToHex.length==1){
bToHex = \"0\"+bToHex;
}
hexOutputnerText = \"#\"+rToHex+gToHex+bToHex;
hexColor.background = \"#\"+rToHex+gToHex+bToHex;
}
}
</script>
</body>
</html>
使用十六进制代码混合颜色 Use Hex Code to Mix Colors
从这三种纯色(红、绿、蓝),我们能得到 1600 万种其它的颜色。
例如,橙色是纯红,混合一些绿,没有蓝。
通过对 background-color 应用 hex code 值 #FFA500 以把 body 元素的背景色设置为橙色。
题目
解答
在距离iPhone 15发布不到一个月的时刻,外国大V揭示了iPhone 15标准版的颜色阵容,无疑,这将成为今年新款iPhone的一大看点。据透露,iPhone 15和iPhone 15 Plus一共测试了六种不同的颜色,包括粉色/玫瑰金/腮红金、绿、蓝、黄、橙、黑色/午夜/黑暗/玄武岩。其中最引人注目的就是橙色,这种颜色接近于苹果2018年为iPhone XR推出的“珊瑚色”,带有一丝活力的柔和色彩,其色调介于橙色和粉色之间。
另一值得关注的是,iPhone 15和iPhone 15 Plus将配备全新的粉色。苹果为标准版iPhone 15机型带来了深粉色(dark pink)和浅蓝色(light blue)颜色,颜色的十六进制代码分别为#CE3C6C和#4DB1E2。该机上市之后,苹果官方的描述为紫红色(telemagenta)和皮克顿蓝(picton blue)。此外,标准版iPhone 15还将有红色、黑色和白色等颜色供用户挑选。
除了丰富的颜色选择外,苹果还为新USB-C数据线做了不同的配色。最近有网友曝光了新数据线的外观,从爆料图中我们可以看到新代数据线采用了全新的编制材料,与Macbook的编织线一致。不同配色的iPhone可能对应不同颜色的数据线,这一设计无疑提高了产品的个性化。
然而,有消息称新iPhone的数据线可能不再默认赠送,而是需要用户自行购买。此外,不同配色iPhone对应不同颜色数据线,不同版本还会对应不同规格。根据此前爆料称,只有Pro版本能享受最高40Gbps的传输速度和最高100W的PD充电功率。但是在标准版上依旧是USB 2.0版本,传输速率相较于Pro版本差了二十倍不止。
总的来说,今年的iPhone 15系列在颜色、设计和配置上都有显著的提升。尽管价格可能有所上涨,但产品本身的升级和改进也提供了更高的使用价值和用户体验。此外,新的USB-C数据线配色和规格选择也进一步满足了消费者的个性化需求。然而,对于消费者来说,选择购买新款iPhone还是继续使用旧款,将是一个需要权衡的决定。
颜色的属性值:不区分大小写(包括在php中)
十六进制(hexadecimal)是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样,它由0-9,A-F组成.与10进制的对应关系是:
0-9对应0-9 A-F对应10-15(A:10 B:11 C:12 D:13 E:14 F:15) 前缀名用0x来表示
颜色值的缩写:
p{color:#000000}
可以缩写为:p{color:#000000}
p{color:#336699}
可以缩写为:p{color:#369}
比如我们调一种桔红色
这种颜色的十进制颜色值为R=239;G=125;B=49,转换成十六进制为R=EF;G=7D;B=31。
C语言中写成"RGB(239, 125, 49)",也可以写成十六进制的形式"0xEF7D31",在网页HTML代码中写成"#EF7D31"。
RGB也可以写成百分百(100%,100%,0%)
RGB(100%,100%,0%)对应的红、绿分量都为255,蓝分量为0;
颜色中的RGB成分数值范围均为(0~255),用十六进制表示即(0x00~0xFF),这个范围正好占用一个字节(8位)。
因此一种颜色含RGB三种成分占用三个字节(24位),这就是24位真彩色的由来了。
如何根据RGB值来判断这是种什么颜色?
下面介绍几种典型颜色的RGB值,格式为:颜色(R,G,B)。
想象一下有红、绿、蓝三盏射灯打出三束光。
这三束光叠加在一起时产生白色,如果三盏灯的亮度都减半就产生了灰色,如果三盏灯都关掉就会一片漆黑了。
白色(255,255,255) 灰色(127,127,127) 黑色(0,0,0)
关掉绿灯和蓝灯,只亮红灯,那么只会看到一片红色;只亮绿灯或蓝灯则只会看到绿色或蓝色。
红色(255,0,0) 绿色(0,255,0) 蓝色(0,0,255)
关掉其中一盏灯,用其他两盏灯的光线叠加,则蓝+绿=青,红+蓝=洋红,红+绿=黄。
青色(0,255,255) 洋红色(255,0,255) 黄色(255,255,0)
其它颜色可以根据这几种颜色的RGB比例来判断。
橙色(255,127,0) 紫色(127,0,255) 粉绿(0,225,128)
湖蓝(0,128,255) 草绿(128,255,0) 玫瑰红(255,0,128)
某种颜色的RGB值越接近,这种颜色就越接近灰色或黑白,数值越大就越白,反之越黑。
比如RGB(150,152,183),RGB值比较接近,但是蓝色的成份较多一些,因此我们可以判断出这是一种蓝灰色。
某种颜色的RGB值如果其中一值与其它两值相差较大,而其它两值比较接近,那么根据RGB中较大的值可以知道这种颜色是比较接近红、
绿、蓝、洋红、青、黄中的一种。比如RGB(150,20,156),R和B值比较接近,G的值较小,因此这是种深紫红色;
而RGB(150,200,156),R和B值比较接近,G的值较大,因此这是种浅绿色。
这种判断方法,实际上就是我们的大脑凭直觉转换RGB为HSB的一种方法,因此实际调色时,我们一般使用HSB而不用RGB,
不过因为RGB值表示颜色的方法在电脑中极为普遍,所以还是需要了解的。
常用颜色的颜色名称和颜色代码
黑色 black #000000 栗色 maroon #800000
深蓝色 navy #000080 紫色 purpe #800080
绿色 green #008000 橄榄色 olive #808000
墨绿色 teal #008080 灰色 grey #808080
银灰色 silver #c0c0c0 红色 red #ff0000
蓝色 blue #0000ff 紫红色 fuchsia #ff00ff
浅绿色 lime #00ff00 黄色 yellow #ffff00
青色 aqua #00ffff 白色 white #ffffff
颜色的属性值:不区分大小写(包括在php中)
十六进制(hexadecimal)是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样,它由0-9,A-F组成.与10进制的对应关系是:
0-9对应0-9 A-F对应10-15(A:10 B:11 C:12 D:13 E:14 F:15) 前缀名用0x来表示
颜色值的缩写:
p{color:#000000}
可以缩写为:p{color:#000000}
p{color:#336699}
可以缩写为:p{color:#369}
比如我们调一种桔红色
这种颜色的十进制颜色值为R=239;G=125;B=49,转换成十六进制为R=EF;G=7D;B=31。
C语言中写成"RGB(239, 125, 49)",也可以写成十六进制的形式"0xEF7D31",在网页HTML代码中写成"#EF7D31"。
RGB也可以写成百分百(100%,100%,0%)
RGB(100%,100%,0%)对应的红、绿分量都为255,蓝分量为0;
颜色中的RGB成分数值范围均为(0~255),用十六进制表示即(0x00~0xFF),这个范围正好占用一个字节(8位)。
因此一种颜色含RGB三种成分占用三个字节(24位),这就是24位真彩色的由来了。
如何根据RGB值来判断这是种什么颜色?
下面介绍几种典型颜色的RGB值,格式为:颜色(R,G,B)。
想象一下有红、绿、蓝三盏射灯打出三束光。
这三束光叠加在一起时产生白色,如果三盏灯的亮度都减半就产生了灰色,如果三盏灯都关掉就会一片漆黑了。
白色(255,255,255) 灰色(127,127,127) 黑色(0,0,0)
关掉绿灯和蓝灯,只亮红灯,那么只会看到一片红色;只亮绿灯或蓝灯则只会看到绿色或蓝色。
红色(255,0,0) 绿色(0,255,0) 蓝色(0,0,255)
关掉其中一盏灯,用其他两盏灯的光线叠加,则蓝+绿=青,红+蓝=洋红,红+绿=黄。
青色(0,255,255) 洋红色(255,0,255) 黄色(255,255,0)
其它颜色可以根据这几种颜色的RGB比例来判断。
橙色(255,127,0) 紫色(127,0,255) 粉绿(0,225,128)
湖蓝(0,128,255) 草绿(128,255,0) 玫瑰红(255,0,128)
某种颜色的RGB值越接近,这种颜色就越接近灰色或黑白,数值越大就越白,反之越黑。
比如RGB(150,152,183),RGB值比较接近,但是蓝色的成份较多一些,因此我们可以判断出这是一种蓝灰色。
某种颜色的RGB值如果其中一值与其它两值相差较大,而其它两值比较接近,那么根据RGB中较大的值可以知道这种颜色是比较接近红、
绿、蓝、洋红、青、黄中的一种。比如RGB(150,20,156),R和B值比较接近,G的值较小,因此这是种深紫红色;
而RGB(150,200,156),R和B值比较接近,G的值较大,因此这是种浅绿色。
这种判断方法,实际上就是我们的大脑凭直觉转换RGB为HSB的一种方法,因此实际调色时,我们一般使用HSB而不用RGB,
不过因为RGB值表示颜色的方法在电脑中极为普遍,所以还是需要了解的。
常用颜色的颜色名称和颜色代码
黑色 black #000000 栗色 maroon #800000
深蓝色 navy #000080 紫色 purpe #800080
绿色 green #008000 橄榄色 olive #808000
墨绿色 teal #008080 灰色 grey #808080
银灰色 silver #c0c0c0 红色 red #ff0000
蓝色 blue #0000ff 紫红色 fuchsia #ff00ff
浅绿色 lime #00ff00 黄色 yellow #ffff00
青色 aqua #00ffff 白色 white #ffffff