成为一个好的设计师,或者一个很会穿搭的人。在设计作品或是穿搭衣物时,决不能配错颜色。
如果你天生对色彩不敏感,一不小心就会弄出「大红配大绿」。那么,知晓程序今天推荐的小程序,你可得要收到好了。
「Color 颜值」,是一款专注帮你解决配色问题的小程序,它基于色轮配色原理,让你轻轻松松就能搭配出大师级别的色彩。
关注「知晓程序」公众号,在后台回复「0109」,一张图教你玩转小程序。
这个小程序共提供了四大实用功能:配色广场、颜色转换、配色工具、Web 颜色。
我们先去「配色广场」看看。
自己不懂配色,就借鉴经典的配色方案吧。
在「配色广场」中,就提供了许多「Adobe Color 配色方案」,一页 5 组,一组 5 种颜色。页面底部有个「Surprise me」的按键,点击它,就切换另外 5 组。
如果你有一个确定的主色调,就可以在这里挑选可与之搭配的颜色。
看见喜欢的方案,点进去,就能获得这个色彩方案的「配色详情」,详细展示了每一种颜色的 RGB 和 HSB 色值。
实在喜欢,还可以点击底部的「收藏」,并给它起一个「名称」便于日后查阅。
不过,「我的收藏」的位置比较隐蔽,找不到它的朋友们这里要认真看咯。
回到配色广场的主页面,注意到页面上方的「下拉小箭头」,点击它会弹出选择菜单,选中「我的收藏」并确定,你收藏下来的配色方案都在这里。
每种颜色都有对应的色值,据说设计师确定颜色的方法,是先估计色值,再根据色彩的浓度、亮度等等调出最满意的颜色。
「颜色转换」就是用于调整色值的,我们来看看,具体怎么用?
首先,你要确定一种颜色模式,页面上方的「模式选择」有 RGB、CMYK、LAB、HSB 四种可选。选好模式,每一个属性有相应的滑块,滑动它就可以调整色值了。
页面中间的「预览」块可以实时显示你调出来的颜色,同时还显示其「十六进制颜色码」,以及这个颜色在四种不同模式下对应的色值。
在「配色广场」中,小程序推荐的是 Adobe Color 配色方案。
而接下来要介绍的「配色工具」,则提供了基于 6 种颜色关系的配色算法,分别是类比色/相似色、互补色、分裂补色、单色、渐变、二次色配比。
如果你对这几种配色算法没有概念,也没关系,在「关于 Color 颜值」中可以找到详细的介绍,顺便还能涨涨知识呢。
每一种配色算法都需要一个「主色」或「基准色」,这个由你自己来调它的 RGB 值以及饱和度、亮度,然后小程序会根据你选择的配色算法推荐一组 4 种颜色。
如果实在不知如何确定「主色」或「基准色」,那就点击底部的「随机」,你可以一直「随机」,直到满意。
好不容易找到一组满意的,千万别忘了「收藏」,收藏方法跟上面所述一样,这个收藏夹还可以作为你的颜色管理利器哦。
如果你不需要考虑配色原理,还有一个选项「 I am Feeling Lucky 」,它会随机挑选一种算法,并根据其原理为你推荐一组 5 种颜色的配色方案。
这个功能方便了外行人搭配出和谐的颜色,也给内行人带来了色彩灵感。
现在是互联网时代,不管是美术设计,还是 UI 设计,你都需要对「Web 颜色」有一定的了解。
这个小程序从「CSS 颜色值」、「Web 安全色」以及「Gray 灰度值」三个方面,列举了 Web 标准规范中 HTML 和 CSS 定义的标准色和安全色。
如果你还在为颜色搭配而头疼,如果你需要一个颜色管理工具,如果你喜欢和谐美丽的色彩,不妨打开「Color 颜值」。
谁不喜欢和谐美丽的色彩呢?还不快来!
「Color 颜值」小程序使用链接 https://minapp.com/miniapp/3775/
关注「知晓程序」公众号,在后台回复「藏宝图」,获取最全最好用的小程序名单。
家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
高级前端进阶
Web 上使用的大多数颜色都是 sRGB 。 比如熟悉的 #rrggbb 、rgb(r, g, b) 语法指定的CSS颜色,其各个颜色分量以 [0, 255] 范围内的值表示。 例如,rgb(255, 0, 0) 是 sRGB 颜色空间中最饱和的纯红色。 但是 sRGB 中的颜色范围,即色域(Color Gamut或Color Space),并不包含人类视觉系统可以感知的所有颜色,同时有些显示器可以产生更广泛的颜色范围。
sRGB(Standard Red Green Blue)是由Microsoft影像巨擘共同开发的一种彩色语言协议,微软联合爱普生、HP惠普等提供一种标准方法来定义色彩,让显示、打印和扫描等各种计算机外部设备与应用软件对于色彩有一个共同的语言。
Display P3,饱和度明显高于 sRGB 的色彩
如今,市场上有许多计算机、移动设备可以显示Display P3 色域的所有颜色,并且 Web 平台在过去几年中一直在发展,以允许开发者充分利用这些显示器。
下图是在色度图上用三角形划出色彩空间所包含的色彩,明显能看出二者在包含色彩范围上的差别,即Display P3比sRGB范围更大。
WebKit 自 2016 年一直支持宽色图像和视频,去年成为第一个实现 CSS Color Module Level 4 中定义的新颜色语法的浏览器引擎,可以在给定的颜色空间中指定颜色。
目前为止,也就HTML Canvas尚未支持广色域颜色。 2D Canvas API 在宽色域显示器普及之前就已引入,但是目前它只处理绘制和操作 sRGB 像素值。 最近一项使用其他颜色空间创建Canvas上下文的提案被添加到 HTML 标准中,目前 WebKit 已经提供支持,而本文就从这里展开。
可以使用一些技术来检测宽色域显示和画布支持是否可用。
要检查显示器是否支持 Display P3 颜色需要使用色域媒体查询。
function displaySupportsP3Color() {
return matchMedia("(color-gamut: p3)").matches;
}
目前matchMedia方法已经受到大多数浏览器的原生支持。从下图可知,Chrome从9版本就已提供这个方法。
要检查浏览器是否支持宽色域画布,可以创建一个Canvas并检查生成的颜色空间。
function canvasSupportsDisplayP3() {
let canvas = document.createElement("canvas");
try {
// 如果支持 colorSpace 选项,但不满足 Display P3 支持的系统要求(最低 macOS 或 iOS 版本)
// Safari 会抛出 TypeError。
let context = canvas.getContext("2d", { colorSpace: "display-p3" });
return context.getContextAttributes().colorSpace == "display-p3";
} catch {
}
return false;
}
如上所示,可以通过获取
context.getContextAttributes().colorSpace == "display-p3"的值来判断浏览器是否支持display-p3。
检查浏览器是否支持在画布上指定宽色域颜色,可以直接设置颜色并查看浏览器是否支持。
function canvasSupportsWideGamutCSSColors() {
let context = document.createElement("canvas").getContext("2d");
let initialFillStyle = context.fillStyle;
context.fillStyle = "color(display-p3 0 1 0)";
// 判断浏览器是否会忽略
return context.fillStyle != initialFillStyle;
}
Canvas的getContext 方法接受一个选项来设置画布后备存储的颜色空间。
<canvas id="canvas" width="400" height="300"></canvas>
<script>
let canvas = document.getElementById("canvas");
let context = canvas.getContext("2d", { colorSpace: "display-p3" });
// 上下文中绘制
</script>
默认颜色空间是 sRGB(避免对现有内容进行颜色空间转换的性能开销),也可以使用display-p3。注意:可以使用任何受支持的 CSS 颜色语法指定填充和描边样式。
let position = 0;
for (let green of [1, 0]) {
for (let blue of [1, 0]) {
for (let red of [1, 0]) {
context.fillStyle = `color(display-p3 ${red} ${green} ${blue})`;
// 填充样式
context.fillRect(position, position, 40, 40);
// 填充样式
position += 20;
}
}
}
任何使用画布颜色空间之外的颜色绘图都将被限制,以使其处于色域中。 例如,在 sRGB 画布上用颜色 (display-p3 1 0 0) 填充矩形最终将使用完全饱和的 sRGB 红色。 同样,在 Display P3 画布上绘制颜色 (rec2020 0.9 0 0.9),在 Rec.2020 色彩空间中几乎全是洋红色,即使用相近颜色 (display-p3 1.0 0 0.923) 来填充,因为这是 Display P3 色域中最相似的。
const COLORS = ["#0f0", "color(display-p3 0 1 0)"];
for (let y = 20; y < 180; y += 20) {
// 色域外采用相似颜色填充
context.fillStyle = COLORS[(y / 20) % 2];
context.fillRect(20, y, 160, 20);
}
广色域颜色可用于所有Canvas绘图基元,比如:
getImageData 和 putImageData 可用于获取和设置宽色域画布上的像素值。 默认情况下,getImageData 将返回具有画布颜色空间中像素值的 ImageData 对象,但可以指定与画布不匹配的显式颜色空间,执行转换。
let context = canvas.getContext("2d", { colorSpace: "display-p3" });
context.fillStyle = "color(display-p3 0.5 0 0)";
context.fillRect(0, 0, 100, 100);
let imageData;
// 获取画布颜色空间(显示 P3)中的 ImageData
imageData = context.getImageData(0, 0, 1, 1);
console.log(imageData.colorSpace);
// "display-p3"
console.log([...imageData.data]);
// [128, 0, 0, 255]
// 显式获取 Display P3 中的 ImageData
imageData = context.getImageData(0, 0, 1, 1, { colorSpace: "display-p3" });
console.log(imageData.colorSpace);
// "display-p3"
console.log([...imageData.data]);
// [128, 0, 0, 255]
// 获取图像数据转换为sRGB
imageData = context.getImageData(0, 0, 1, 1, { colorSpace: "srgb" });
console.log(imageData.colorSpace);
// "srgb"
console.log([...imageData.data]);
// [141, 0, 0, 255]
ImageData 构造函数同样采用带有 colorSpace 键的可选项对象。
let context = canvas.getContext("2d", { colorSpace: "display-p3" });
// 创建一个 ImageData 并用完整的 Display P3 黄色填充
let imageData = new ImageData(10, 10, { colorSpace: "display-p3" });
for (let i = 0; i < 10 * 10 * 4; ++i)
imageData.data[i] = [255, 255, 0, 255][i % 4];
context.putImageData(imageData, 0, 0);
当使用不同颜色空间的颜色绘制形状时,ImageData 和目标画布颜色空间之间的任何不匹配都会导致 putImageData 执行转换并可能限制生成的像素。
Canvas DOM 元素上的 toDataURL 和 toBlob 方法生成带有画布内容的光栅图像。
const canvas = document.getElementById('canvas');
const dataURL = canvas.toDataURL();
// toDataURL
canvas.toBlob((blob) => { /* … */ }, 'image/jpeg', 0.95);
// JPEG at 95% quality
在 WebKit 中,当在 Display P3 画布上调用时,这些方法会在生成的 PNG 或 JPEG 中嵌入适当的颜色配置文件,从而确保保留所有颜色范围。
与 putImageData 一样,drawImage 方法将在绘制颜色空间与画布颜色空间不同的图像时执行所需的任何颜色空间转换。
putImageData(imageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight)
// putImageData方法
drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
// drawImage方法
img 引用的光栅图像使用的任何颜色配置文件,以及视频(无论是视频文件还是 WebRTC 流)引用的视频中的任何颜色空间信息,都将在绘制到画布时得到恰当处理。 这可确保在绘制到色彩空间与显示器(显示 P3 或 sRGB)相匹配的画布时,源图像/视频和画布像素看起来相同。
本文只是告诉大家什么是Display P3?为什么要使用Display P3?因为笔者不是这方面的专家,很多内容也就浅尝辄止。但是文末的参考资料提供了大量优秀文档以供学习,如果有兴趣可以自行阅读。
https://webkit.org/blog/12058/wide-gamut-2d-graphics-using-html-canvas/
https://caniuse.com/?search=matchMedia
https://baike.baidu.com/item/sRGB/1350619?fr=aladdin
https://developer.aliyun.com/article/787589
reamweaver的CSS面板分类
type(类型)
background(背景)
block(区块)
box(方框) 或盒子意思
border(边框)
list(列表)
positioning(定位)
extensions(扩展)
共八个部分
1. type(类型)
type面板主要是对文字的字体,大小,颜色,效果等基本样式进行设置。
注意:属性名带*号的是指样式效果不能在编辑文档时显示,要用浏览器打开才能看到效果。
(1)font-family:设置字体系列。什么叫字体系列呢?是指对文字设定几个字体,当遇到第一个字体不能显示的文字时会自动用系列中的第二个
字体或后面的字体显示。
注意:一般英文字体我们用"Verdana, Arial, Helvetica, sans-serif"这个系列比较好看。如果不用这些字体系列,你就需要自己编辑字体系列,
也可以直接手动在下拉框里写字体名,字体之间用逗号隔开。中文网页默认字体是宋体, 一般就空着不要选取任何字体。
默认值: not specified(取决于浏览器,系统默认的字体, 如: 微软雅黑)
注意:
1.如果有汉字, 那么我们要加引号
2.如果有多个英文字母组成的单词, 我们也要加引号; "microsoft yahei" 中间用空格隔开
3.font-family:"黑体","宋体","华文隶书"; 首先找黑体, 没有黑体找宋体...
为了避免在CSS中使用 font 或 font-family 设置中文字体时乱码, 可以使用 Unicode 编码来表示字体。
/* 示例:使用Unicode字体编码设置字体为"微软雅黑" */
font-family: "\5FAE\8F6F\96C5\9ED1";
(2)font-size:定义文字的大小。你可以通过选取数字和度量单位来选择具体的字体大小,或者你也可以选择一个相对的字体大小。
最好使用pixels作为单位,这样不会在浏览器中文本变形。一般字体用比较标准的12px或14px, 默认值为16px。
注意:CSS中长度的单位分绝对长度单位和相对长度单位:
绝对长度单位有:
pt:磅(point)
mm、cn、in、pc:(毫米、厘米、英寸、活字)根据显示的实际尺寸来确定长度。
此类单位不随显示器的分辨率改变而改变。
相对长度单位有:
px:(像素)根据显示器的分辨率来确定长度。
em:当前文本的尺寸。例如:{font-size:2em}是指文字大小为原来的2倍。
比如自身font-size: 30px; 那么此时1em=30px;
ex:当前字母"x"的高度,一般为字体尺寸的一半。
%:是以当前文本的百分比定义尺寸。例如:{ font-size:300%}是指文字大小为原来的3倍。
small、large:表示比当前小一个级别或大一个级别的尺寸。
默认值:medium(标准大小)
(3)font-style:定义字体样式为normal、italic、oblique。默认设置为normal。
注意: italic 斜体 oblique 歪斜体 italic和oblique实际效果是一样的。
默认值:normal
(4)line-height:设置文本所在行的行高。默认为normal。可以是行内元素、行内块元素, 通常与height设置的高度值相同, 可以做到垂直居中的作用。
你也可以自己键入一个精确的数值并选取一个计量单位。
比较直观的写法用百分比, 例如140%是指行高等于文字大小的1.4倍。
最常用的方法: line-height:1.5em; /*行间距,相对数值,1.5倍行距,*/ 可有效的避免文字发生重叠
默认值: normal
(5)text-decoration:在文本中添加underline(下划线)、overline(上划线)、line-through(中划线)、blink(闪烁效果)。
这些效果可以同时存在,将效果前的复选框选定即可。
注意:链接的默认设置是underline,我们可以通过选none去除下划线。blink(闪烁效果)只在mozilla浏览器里可以看到, IE、opera不支持
默认值: none
(6)font-weight:给字体指定粗体字的磅值。
normal 默认值。定义标准的字符。
bold 定义粗体字符。
bolder 定义更粗的字符。
lighter 定义更细的字符。
100
200
300
400
500
600
700
800
900
inherit 规定应该从父元素继承字体的粗细。
定义由粗到细的字符。400 等同于 normal, 而 700 等同于 bold。
默认值: normal
(7)font-variant:允许你选取字体的变种, 选small-caps(小型大写字母)时, 此样式区域内所有字母大写。
normal表示正常的字体, 为默认值;
默认值: normal
(8)text-transform:将选区中每个单词的第一个字母转为大写, 或者令单词全部大写或全部小写。
参数:capitalize(单词首字母大写)、uppercase(转换成大写)、lowercase(转换成小写)、none(不转换)。
默认值:none
(9)color:定义文字颜色。包括对表单输入的文字颜色。
CSS中颜色的值有三种表示方法:
#RRGGBB格式,是由红绿蓝三种颜色的值组合,每种颜色的值为"00 – FF"的两位十六进制正整数。
例如:#FF0000表示红色,#FFFF00表示黄色。
rgb(R,G,B)格式, RGB为三色的值, 取0~255, 例如:rgb(255,0,0)表示红色, rgb(255,255,0)表示黄色。
用颜色名称。CSS可以使用已经定义好的颜色名称。例如:red表示红色, yellow表示黄色。
颜色值的缩写:
p{color:#000000} 可以缩写为:p{color:#000}
p{color:#336699} 可以缩写为:p{color:#369}
默认值: not specified
color: transparent; 透明色
rgba() 解释: rgba(红0-255, 绿0-255, 蓝0-255, 透明度0-1)
注意: 如果文字的颜色通过单独的类选择去设置没有改变颜色, 则应该通过组合选择器(.header .top .topR .blue)去设置, 改变它的优先级。
2. background(背景)
background面板主要是对元素的背景进行设置,包括背景颜色、背景图象、背景图象的控制。
一般是对body(页面)、table(表格)、div(区域)的设置。
(1)background-color:设置元素的背景色。包括对input表单输入框的背景颜色;
默认值: transparent(背景颜色为透明)
rgba() 解释: rgba(红0-255, 绿0-255, 蓝0-255, 透明度0-1) 一般用于背景色
(2)background-image:设置元素的背景图像。
默认值:none
CSS3支持多重背景图,只要加上一个url指定图片路径,并用逗号(,)将两组url分隔就可以了
background-image:url(a.jpg),url(b.jpg);
base64使用
background-image: url("data:image/png;base64,iVBORw0KGgo=...");
(3)background-repeat:确定背景图像是否以及如何重复。
repeat 默认值。背景图像将在垂直方向和水平方向重复。
repeat-x 背景图像将在水平方向重复。
repeat-y 背景图像将在垂直方向重复。
no-repeat 背景图像将仅显示一次。
inherit 规定应该从父元素继承background-repeat属性的设置。
注意:如果定义的元素的body,可以控制页面背景是否重复。
默认值: repeat
(4)background-attachment:固定背景图像或者跟随内容滚动。
参数fixed表示固定背景(不随屏幕滚动而滚动,决定背景图像是否要固定在原来的位置), scroll表示跟随内容滚动的背景。
注意:如果定义的元素的body, 可以使页面背景固定。
默认值: scroll
(5)background-position(X):指定背景图像的水平位置。
可以指定为left(左边), center(居中),right(右边);
也可以指定数值,如20px是指背景距离左边20象素。
background-position(Y):指定背景图像的垂直位置。
可以指定为top(顶部), center(居中), bottom(底部);也可以指定数值。
background-position属性值:
left top
center top
right top
left center
center center
right center
left bottom
center bottom
right bottom
如果您仅规定了一个关键词,那么第二个值将是"center"。
注意:采用英文单词的水平位置和垂直位置的属性值可以调换
x% y% 第一个值是水平位置,第二个值是垂直位置。左上角是 0% 0%。右下角是 100% 100%。如果您仅规定了一个值,另一个值将是 50%。
xpos ypos 第一个值是水平位置,第二个值是垂直位置。左上角是 0 0。单位是像素 (0px 0px) 或任何其他的 CSS 单位。
如果您仅规定了一个值,另一个值将是50%。
您可以混合使用 % 和 position 值。
默认值:0% 0%
*请认真填写需求信息,我们会在24小时内与您取得联系。