文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计令人赏心悦目的网页、网页应用程序以及移动应用程序的用户界面。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。
HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,它被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。HTML的语言形式为尖括号包围的HTML元素(如<html>),浏览器使用HTML标签和脚本来诠释网页内容,但不会将它们显示在页面上。
HTML可以嵌入如JavaScript的脚本语言,它们会影响HTML网页的行为。网页浏览器也可以引用层叠样式表(CSS)来定义文本和其它元素的外观与布局。维护HTML和CSS标准的组织万维网联盟(W3C)鼓励人们使用CSS替代一些用于表现的HTML元素。
历史
W3C制作的早期HTML标志
发展
蒂姆·伯纳斯-李
1980年,物理学家蒂姆·伯纳斯-李在欧洲核子研究中心(CERN)在承包工程期间,为使CERN的研究人员使用并共享文档,他提出并创建原型系统ENQUIRE。1989年,伯纳斯-李在一份备忘录中提出一个基于互联网的超文本系统。他规定HTML并在1990年底写出浏览器和服务器软件。同年,伯纳斯-李与CERN的数据系统工程师罗伯特·卡里奥联合为项目申请资助,但未被CERN正式批准。在他的个人笔记中伯纳斯-李列举“一些使用超文本的领域”,并把百科全书列为首位。
HTML的首个公开描述出现于一个名为“HTML标签”的文件中,由蒂姆·伯纳斯-李于1991年底提及。它描述18个元素,包括HTML初始的、相对简单的设计。除了超链接标签外,其他设计都深受CERN内部一个以标准通用标记语言(SGML)为基础的文件格式SGMLguid的影响。这些元素在HTML 4中仍有11个存在。
伯纳斯-李认为HTML是SGML的一个应用程序。1993年中期互联网工程任务组(IETF)发布首个HTML规范的提案:“超文本标记语言(HTML)”互联网草案,由伯纳斯-李与丹·康纳利(英语:Dan Connolly (computer scientist))撰写。其中包括一个SGML文档类型定义来定义语法。草案于6个月后过期,不过值得注意的是其对NCSA Mosaic浏览器自定义标签从而将在线图像嵌入的行为的认可,这反映IETF把标准立足于成功原型的理念。同样,戴夫·拉格特(英语:Dave Raggett)在1993年末提出的与之竞争的互联网草案“HTML+(超文本标记格式)”建议规范已经实现的功能,如表格与填写表单。
在HTML和HTML+的草案于1994年初到期后,IETF创建一个HTML工作组,并在1995年完成"HTML 2.0",这是第一个旨在成为对其后续实现标准的依据的HTML规范。
在IETF的主持下,HTML标准的进一步发展因竞争利益而遭受停滞。自1996年起,HTML规范一直由万维网联盟(W3C)维护,并由商业软件厂商出资。不过在2000年,HTML也成为国际标准(ISO/ IEC15445:2000)。HTML 4.01于1999年末发布,进一步的勘误版本于2001年发布。2004年,网页超文本应用技术工作小组(WHATWG)开始开发HTML5,并在2008年与W3C共同交付,2014年10月28日完成标准化。
版本时间线
1995年11月24日
HTML 2.0作为IETF RFC 1866发布。追加RFC的附加功能:
1995年11月25日:RFC 1867(基于表单的文件上传)
1996年5月:RFC 1942(表格)
1996年8月:RFC 1980(客户端图像映射)
1997年1月:RFC 2070(国际化)
1997年1月14日
HTML 3.2作为W3C推荐标准发布。这是首个完全由W3C开发并标准化的版本,因IETF于1996年9月12日关闭它的HTML工作组。
最初代号为“威尔伯”(Wilbur),HTML 3.2完全去除数学公式,协调各种专有扩展,并采用网景设计的大多数视觉标记标签。由于两家公司达成了协议,网景的闪烁元素(英语:blink element)和微软的滚动元素(英语:marquee element)被移除。HTML对数学公式的支持最后成为另外一种被称为MathML的标准。
1997年12月18日
HTML 4.0作为W3C推荐标准发布。它提供三种变化:
严格,过时的元素被禁止。
过渡,过时的元素被允许。
框架集,大多只与框架相关的元素被允许。
最初代号“美洲狮”(Cougar), HTML 4.0采用许多特定浏览器的元素类型和属性,并试图淘汰网景的视觉标记功能,将其标记为不赞成使用。HTML 4是遵循ISO 8879 - SGML的SGML应用程序。
1998年4月24日
HTML 4.0进行微调,不增加版本号。
1999年12月24日
HTML 4.01作为W3C推荐标准发布。它同样提供三种变化,最终勘误版于2001年5月12日发布。
2000年5月
ISO/IEC 15445:2000("ISO HTML",基于HTML 4.01严格版)作为ISO/IEC国际标准发布。在ISO中这一标准位于ISO/IEC JTC 1/SC 34(英语:ISO/IEC JTC 1/SC 34)域(ISO/IEC联合技术委员会1、小组委员会34 – 文档描述与处理语言)。
2014年10月28日
HTML 5作为W3C推荐标准发布。
草案时间线
HTML5的Logo
1991年10月
HTML标签,一个非正式CERN文件首次公开18个HTML标签。
1992年6月
HTML DTD的首个非正式草案, 后续有七个修订版(7月15日,8月6日,8月18日,11月17日,11月19日,11月20日,11月22日)。
1992年11月
HTML DTD 1.1(首个版本号,基于RCS修订版,版本号从1.1开始而非1.0),非正式草案。
1993年6月
超文本标记语言由IETF IIIR工作小组作为互联网草案(一个粗略的建议标准)。在被第二版代一个月后,IETF又发布6个草案,最终在RFC1866中发布HTML 2.0。
1993年11月
HTML+由IETF作为互联网草案发布,是超文本标记语言草案的一个竞争性提案。它于1994年5月到期。
1995年4月 (1995年3月编写)
HTML 3.0[33]被提议作为IETF的标准,但直到提案在五个月过期后(1995年9月28日)仍没有进一步的行动。它包含许多拉格特HTML+提案的功能,如对表格的支持、围绕数据的文本流和复杂的数学公式的显示。W3C开始开发自己的Arena浏览器作为HTML 3和层叠样式表的试验台(英语:Test bed),但HTML 3.0并没有获得成功。浏览器厂商,包括微软和网景,选择实现HTML3草案功能的不同子集并引入它们自己的插件(见浏览器大战)。
2008年1月
HTML5由W3C作为工作草案(链接)发布。虽然HTML5的语法非常类似于SGML,但它已经放弃任何成为SGML应用程序的尝试,除了一种替代的基于XML的HTML5序列,它已明确定义自己的“HTML”序列。
2011年 HTML5 – 最终征求
2011年5月,工作小组将HTML5推进至“最终征求”(Last Call)阶段,邀请W3C社区内外人士以确认本规范的技术可靠性。W3C开发一套综合性测试套件来实现完整规范的广泛交互操作性,完整规范的目标日期为2014年。2011年1月,WHATWG将其“HTML5”活动标准重命名为“HTML”。W3C仍然继续其发布HTML5的项目。
2012年 HTML5 – 候选推荐
2012年7月,WHATWG和W3C的工作产生一定程度的分离。W3C继续HTML5规范工作,重点放在单一明确的标准上,这被WHATWG称为“快照”。WHATWG组织则将HTML5作为一个“活动标准”(Living Standard)。活动标准的概念是从未完成但永远保持更新与改进,可以添加新特性,但功能点不会被删除。
2012年12月,W3C指定HTML5作为候选推荐阶段。 该阶段的标准为“两个100%完成,完全实现交互操作”。
2014年 HTML5 – 提案推荐与推荐
2014年9月,HTML5进入提案推荐阶段。
2014年10月28日,HTML5作为稳定W3C推荐标准发布,这意味着HTML5的标准化已经完成。
XHTML版本
XHTML是使用XML 1.0改写自HTML 4.01的独立语言。它不再被作为单独标准开发。
XHTML 1.0, 2000年1月26日作为W3C推荐标准发布。修订版于2002年8月1日发布,它提供与HTML 4.0和4.01相同的三个变化,这些变化被重新在XML中制定。
XHTML 1.1,基于XHTML 1.0 严格版,2001年5月31日 作为W3C推荐标准发布。修订版可使用模块化XHTML的模块,2001年4月10日作为W3C推荐标准发布。
XHTML 2.0为工作草案,但为支持HTML5与XHTML5的工作,此草案被放弃。 XHTML 2.0与XHTML 1.x不兼容,因此更确切的说这是一个XHTML风格的新语言而不是XHTML 1.x的更新。
在HTML5草案中规定一个XHTML语法,称为“XHTML5.1”。
标记
HTML标记包含标签(及其属性)、基于字符的数据类型、字符引用和实体引用等几个关键部分。HTML标签是最常见的,通常成对出现,比如<h1>与</h1>。这些成对出现的标签中,第一个标签是开始标签,第二个标签是结束标签。两个标签之间为元素的内容,有些标签没有内容,为空元素,如<img>。
HTML另一个重要组成部分为文档类型声明(英语:document type declaration),这会触发标准模式渲染。
以下是一个经典的Hello World程序的例子:
<!DOCTYPE html>
<html>
<head>
<title>This is a title</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
<html>和</html>之间的文本描述网页,<body>和</body>之间的文本为可视页面内容。标记文本<title>This is a title</title>定义了浏览器的页面标题。
文档标记类型<!DOCTYPE html>用于HTML5。 如果未进行声明,浏览器会使用“怪异模式”进行渲染。
元素
HTML文档由嵌套的HTML元素构成。它们用HTML标签表示,包含于尖括号中,如<p>
在一般情况下,一个元素由一对标签表示:“开始标签”<p>与“结束标签”</p>。元素如果含有文本内容,就被放置在这些标签之间。
在开始与结束标签之间也可以封装另外的标签,包括标签与文本的混合。这些嵌套元素是父元素的子元素。
开始标签也可包含标签属性。这些属性有诸如标识文档区段、将样式信息绑定到文档演示和为一些如<img>等的标签嵌入图像、引用图像来源等作用。
一些元素如换行符<br>,不允许嵌入任何内容,无论是文字或其他标签。这些元素只需一个单一的空标签(类似于一个开始标签),无需结束标签。
许多标签是可选的,尤其是那些很常用的段落元素<p>的闭合端标签。HTML浏览器或其他媒介可以从上下文识别出元素的闭合端以及由HTML标准所定义的结构规则。这些规则非常复杂,不是大多数HTML编码人员可以完全理解的。
因此,一个HTML元素的一般形式为:<tag attribute1="value1" attribute2="value2">''content''</tag>。一些HTML元素被定义为空元素,其形式为<tag attribute1="value1" attribute2="value2">。空元素不能封装任何内容。例如<br>标签或内联标签<img>。一个HTML元素的名称即为标签使用的名称。注意,结束标签的名称前面有一个斜杠“/”,空元素不需要也不允许结束标签。如果元素属性未标明,则使用其默认值。
例子
HTML文档的页眉:<head>...</head>。标题被包含在头部,例如:
<head>
<title>The Title</title>
</head>
标题:HTML标题由<h1>到<h6>六个标签构成,字体由大到小递减:
<h1>Heading level 1</h1>
<h2>Heading level 2</h2>
<h3>Heading level 3</h3>
<h4>Heading level 4</h4>
<h5>Heading level 5</h5>
<h6>Heading level 6</h6>
段落:
<p>第一段</p> <p>第二段</p>
换行:<br>。<br>与<p>之间的差异是br换行但不改变页面的语义结构,而p部分的页面成段。
<p>這是<br>一個<br>使用換行<br>段落</p>
链接:使用<a>标签来创建链接。href属性包含链接的URL地址。
<a href="https://zh.wikipedia.org/">中文維基百科的連結!</a>
注释:
<!-- This is a comment -->
注释有助于理解标记,但它不会在网页上显示。
HTML中存在以下几种类型的标记元素:
用于文本的结构式标记
例如,<h2>羽毛球</h2>将“羽毛球”定义为二级标题。结构式标记不指示任何特定的渲染,但大多数网页浏览器都会采用元素格式的默认样式。要在内容上实现进一步的风格可以使用层叠样式表(CSS)。
用于文本外观的表现式标记,不论其目的
例如,<b>粗体</b>表示视觉输出设备应将文本“粗体”加粗,但如果设备无法做到这一点(如朗读文本的听觉设备),就不会发生什么现象。在这种情况下,<b>粗体</b>与''斜体''也可能有相同的视觉效果,但在本质上它们更加语义化。如同<strong>加强文字</strong>与<em>强调文字</em>的区别。为支持CSS的使用,大多数表现式标记在HTML 4.0规范中不再被推荐使用。
超文本标记使文档的一部分链接到其他文档
锚元素在文档中创建超链接,其href属性设置链接的目标URL。例如:HTML标记<a href="https://zh.wikipedia.org/">中文维基百科</a>会将文字"中文维基百科"渲染为超链接。要将图片渲染为超链接,img元素要作为内容插入到a元素中:<a href="https://example.org"><img src="image.gif" alt="说明文字" width="50" height="50" border="0"></a>。
属性
大多数元素的属性以“名称-值”的形式成对出现,由“=”分离并写在开始标签元素名之后。值一般由单引号或双引号包围,有些值的内容包含特定字符,在HTML中可以去掉引号(XHTML不行)。不加引号的属性值被认为是不安全的[58]。有些属性无需成对出现,仅存在于开始标签中即可影响元素[6],如img 元素的ismap 属性。
许多元素存在一些共通的属性:
id属性为元素提供了在全文档内的唯一标识。它用于识别元素,以便样式表可以改变其表现属性,脚本可以改变、显示或删除其内容或格式化。对于添加到页面的URL,它为元素提供了一个全局唯一标识,通常为页面的子章节。例如,ID "属性"对于https://zh.wikipedia.org/wiki/HTML#属性
class属性提供一种将类似元素分类的方式。常被用于语义化或格式化。例如,一个HTML文档可指定类<class="标记">来表明所有具有这一类值的元素都从属于文档的主文本。格式化后,这样的元素可能会聚集在一起,并作为页面脚注而不会出现在HTML代码中。类属性也被用于微格式的语义化。类值也可进行多声明。如<class="标记 重要">将元素同时放入標記与重要两类中。
style属性可以将表现性质赋予一个特定元素。比起使用id或class 属性从样式表中选择元素,“style”被认为是一个更好的做法,尽管有时这对一个简单、专用或特别的样式显得太繁琐。
title属性用于给元素一个附加的说明。 大多数浏览器中这一属性显示为工具提示(英语:Tooltip)。
lang属性用于识别元素内容的语言,它可能与文档的主要语言不同。例如,在中文文档中:
<p>法语<span lang="fr">c'est la vie</span>在法国的应用很普遍,意为“这就是生活” 。<p>
缩写元素abbr可用于说明一些属性:
<abbr id="ID" class="术语" style="color:purple;" title="超文本标记语言">HTML</abbr>
这个例子显示为HTML; 在大多数浏览器中,光标指向缩写时会显示标题文字“超文本标记语言”。
大多数元素采用与语言相关的属性dir 来指定文字方向,如 "rtl"采用从右到左的文本,比如阿拉伯语、波斯语以及希伯来语。
字符与实体引用
参见:XML与HTML字符实体引用列表和Unicode与HTML
在4.0版本中,HTML定义了一系列共252个字符实体引用和1,114,050个字元值参考。二者都支持单个字符通过简单的标记写入。文字字符与其对应的标记渲染的效果相同。
用这种方式“转义”字符的能力允许字符<与&(当分别被写作<和&时)被理解为字符数据而不是标记。例如<通常为标签的开头,&通常为字符实体引用与数字字符引用的开头;&或&或&将&作为元素的内容或属性的值。双引号字符"在不被用于属性值的标示时必须转义为"或"或";相等地,当于单引号字符'不被用于属性值的标示时,也必须转义为'或'(或HTML5与XHTML文档中的')。
如果文档作者忽略了转义这样的字符,一些浏览器会尝试通过上下文猜测他们的意图。如果结果仍为无效标记,这会使其他浏览器或用户代理难以访问到该文档,并使它们尝试使用搜索和索引来解析该文档。
那些难以输入或不在该文档字符编码中的字符也可通过转义来实现。例如通常只在西欧或南美的键盘出现的重音符e(é),可以在HTML文档中用作实体引用é 或数字引用é或é。 诸如UTF-8的Unicode字符编码与所有的现代浏览器兼容并允许直接访问全球书写系统几乎所有的字符 。
数据类型
HTML为元素内容定义了多种数据类型,如脚本数据、样式表数据以及许多属性值的类型,包括ID、名称、URI、数字长度单位、语言、媒体描述符颜色、字符编码、日期和时间等等。所有这些数据类型都是字符数据的特殊化。
文档类型声明
HTML文档需要以文档类型声明(英语:document type declaration)(英语非正式说法“doctype”)开头。在浏览器中,文档类型声明有助于确定渲染模式——特别是是否使用怪异模式。
文档类型声明的初衷是通过基于文档类型定义(DTD)的SGML工具来解析并验证HTML文档。
HTML5未定义DTD,所以在HTML5中文档类型声明更为简短:
<!DOCTYPE html>
HTML 4文档类型声明举例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
该声明引用HTML 4.01“严格”版的DTD。基于SGML的验证器可读取DTD,正确解析这些文档并执行验证。在现代浏览器中,一个有效的文档类型激活标准模式有别于怪异模式。
另外,HTML 4.01提供过渡型与框架集型的DTD。过渡型涵盖最广,它可整合当前以及老旧或“过时”的标签,而严格型DTD排除了过时的标签。框架集拥有所有构建框架所需的标签以及过渡型的标签。
语义化HTML
语义化HTML是一种编写HTML的方式,它强调编码信息的含义在其格式(样子)之上。HTML从创立之初就包括语义化标记,但也包括标识性标记如<font>、<i>和<center>标签。也存在一些语义上中立的span与div标签。自1990年代末层叠样式表开始应用于大多数浏览器,网页制作者就被鼓励使用CSS以便呈现与内容分离。
在2001年一次对语义网的讨论中,蒂姆·伯纳斯-李等人给出了一种的方法,使智能软件“代理人”可能有一天会自动抓取网页进行查找、过滤并将之前不相关的联系起来。这种代理甚至在现在也不普遍,但一些Web 2.0、混搭和价格比较网站的想法可能会结束。这些网页应用程序的混合与伯纳斯-李的语义代理人的之间主要区别基于以下事实:当前的聚合与信息混合通常由网页开发者设计,他们早已知道网络位置和他们希望混搭、比较与结合的特定数据的API语义。
网页代理的一个重要类型是网络爬虫或搜索引擎蜘蛛。这些软件代理依赖于它们发现的网页的语义清晰度,因为它们一天要使用各种技术与算法来读取和索引数百万个网页并给网页用户提供搜索工具,没有这些万维网的有效性就会大大降低。
为使搜索引擎蜘蛛评估它们在HTML文档中发现的文本片段的重要性,也为那些创建标记等混合的人与更多的自动化代理工具,HTML中的语义结构需要广泛一致地应用从而将文本的含义呈现给浏览者。
表示性标记在当前的HTML和XHTML推荐中不被鼓励使用,HTML5中则被视为非法。
好的语义化HTML也改善了网页文档的可访问性。例如,当屏幕阅读器或音频浏览器可以正确判定一个文档的结构时,视觉障碍用户不会再因阅读重复或无关的信息而浪费时间。
分发
HTML文档分发的方法和其他计算机文件相同。不过,它们最常通过网页服务器的超文本传输协议或电子邮件传输。
HTTP
万维网主要由从服务器通过HTTP协议向浏览器发送的HTML文档组成。但是,HTTP也可以被用于传输HTML之外的数据,例如图像、声音和其他内容。为使浏览器了解如何处理接收到的文档,在传输文档时必须同时传递文件类型。这种元数据包含MIME类型(对于HTML 4.01或更早版本是text/html,而对于XHTML 1.0或之后的版本是application/xhtml+xml),以及字符编码(参见HTML字符编码方式)。
在现在的浏览器中,和HTML文档一起发送的MIME类型影响文档的解读方式。和XHTML MIME类型一起发送的文档被认为是良构的XML,而语法错误会导致浏览器无法呈现文档。完全相同的文档如果和HTML MIME类型一起发送,则可能被正常显示,因为浏览器对HTML的语法检查更加松懈些。
W3C的推荐指出,遵循规定的推荐指引的XHTML 1.0文档可标记二者任一的MIME类型。XHTML 1.1还指出,XHTML 1.1文档应标有两种MIME类型。
HTML邮件
大多数图形电子邮件客户端允许使用HTML的子集(经常界限不清)提供格式化和无法使用纯文本的语义标记。这可能包括印刷信息,如彩色标题、强调和引用文本、内嵌图片和图表等。许多这样的客户包含一个编写HTML电子邮件消息的图形用户界面编辑器和一个用于显示的渲染引擎。在邮件中使用HTML受到了一些兼容性的批评,由于一些盲人或具有视觉障碍的人的访问问题,这种方式有利于伪装的钓鱼攻击。因其消息大小超过明文,所以它可混淆垃圾邮件过滤器。
命名规则
最常用的计算机文件扩展名为.html,通用缩写为.htm。它起源于某些早期操作系统与文件系统,如DOS以及FAT数据结构的局限性,它将文件扩展名限制为3个字母。
HTML应用程序
HTML应用程序(HTA;文件扩展名".hta")是一个Microsoft Windows应用程序,它在浏览器中使用HTML和动态HTML提供应用程序图形界面。正规HTML文件被限制在浏览器的安全模型中,只能分别通过网页服务器和网页对象与站点Cookie进行通信和操作。HTA作为完全受信任的应用程序运行,因此拥有更多的权限,如创建/编辑/删除文件与注册表项。因为它们在浏览器安全模式之外操作,所以HTA不能通过HTTP执行,必须下载(就像EXE文件)并在本地文件系统执行。
所见即所得编辑器
所见即所得编辑器使用图形用户界面(GUI)显示HTML文档,常常类似于文字处理器,所以用户可以设计一切。编者面对的是文档,而不是代码,所以作者并不需要太多的HTML知识。这种所见即所得的编辑模式一直受到诟病,主要因为它生成的代码质量不高;也有人主张将其改变至WYSIWYM模型(所见即所指)。
流浏览器支持W3C的CSS Color 4标准,为web端增加了更丰富、更高清的色彩,但是这个新标准到底是什么?为何需要它?接下来,我们将为大家详细解读这个新标准,首先了解几个基础概念。色域(color gamut)是指颜色的可选范围,而sRGB色域是目前web广泛应用的色域标准,使用红、绿、蓝作为基础色,色值范围为0~255,三种基础色互相混合起来可展示255*255*255种颜色。然而,现代web css使用的sRGB色域仅满足基础性的色彩需求,无法展示人类肉眼所能感知的颜色范围,也远低于高清展示的要求。
以下是sRGB与其他几种色域标准的色值范围大小比较:ProPhoto RGB: 0 ~ 65535Adobe RGB: 0 ~ 65535SRGB: 0 ~ 255以下是sRGB与人类肉眼可感知的色域比较:NTSC(1953): 47% sRGBRec.709(1990): 35% sRGBNTSC(1976): 72% sRGBAdobe RGB(1998): 52% sRGBDCI-P3: 45% sRGBRec.2020: 75.8% sRGB色彩空间(color space)是一个基于某一色域标准下构建的空间数学模型,用来标记出色域中每个颜色的空间位置,各个颜色之间的关系等。例如在sRGB中,红、绿、蓝三种基础色可设置为3个直线坐标轴,每种颜色便可标记为立方体中的一个点。
在css中,我们使用rgb()方法来取色,参数为指定颜色在色彩空间中的坐标(R, G, B)。在新标准中,我们可以使用新的方法color()和相应语法,来展示更多的色域及色彩空间。color()方法可以使用多种颜色模型,包括sRGB、P3、ProPhoto RGB和Rec.2020等。例如,color(display-p3 0.5 1 0),表示在P3色域中使用亮度为0.5、饱和度为1、蓝色为0的颜色。另外,我们还可以使用更简单的语法color(display-p3 red),其中红色可能是一个十六进制值或者是一个英文单词。除此之外,新标准中还提供了一些辅助方法,例如lab()和lch()方法,用来表示CIELAB和CIELCH颜色空间中的颜色。
新标准的出现将有助于web端展示更加真实、自然的色彩,使得网页设计人员拥有更多的色彩选择和创意空间,同时也能够更加准确地展示企业形象和产品特色。然而,目前仅有最新版本的现代浏览器支持新标准,这也给广大用户带来了困扰。但是我们相信,随着新标准的逐步普及,更多的用户将会享受到更加优质的视觉体验。总之,CSS Color 4标准的发布是一个值得关注的新闻,它为web端的色彩展示提供了更多的可能性。我们期待着更多的浏览器厂商加入进来,共同推动这一标准的发展,让web端的色彩展示变得更加高清、更加自然。高清色彩已经成为当今设计和显示技术的热门话题。随着越来越多的人希望在屏幕上看到更真实、更丰富的色彩,像sRGB这样的传统色域标准已经不再足够。在这种情况下,CSS Color 4标准为Web设计师和开发人员提供了更灵活、更准确的色彩管理工具,使他们能够更好地控制和呈现不同色域标准下的颜色。
在过去,我们常常使用rgb()、rgba()、hsl()、hwb()等方法来指定颜色,这些方法对应的是同一色域范围,即sRGB。然而,sRGB只能显示人类肉眼可感知的色彩中的30%,这意味着我们无法展示出更广阔的色域所包含的更多颜色。这就好像在使用一台90年代的电视机播放4K电影一样,无法完全展现画面的细节和色彩。为了应对这种情况,人们开始研究如何支持更广的色域标准。例如,Display-P3和Rec2020都是更广的色域标准,它们可以使用与sRGB不同的色彩空间描述。不同的色域标准可以使用不同的色彩空间来描述,也可以使用同一类的色彩空间表示。例如,sRGB可以使用rgb()、hsl()、hwb()等方法进行描述,而Display-P3和Rec2020色域都可以使用RGB色彩空间来描述,只是空间的边界范围有所不同。
支持更广色域标准的需求只会越来越多,虽然目前的网络显示设备很多还是sRGB标准,并不支持显示更广色域标准的色彩,但只是时间问题。为了应对这一趋势,W3C的CSS Color 4标准为我们提供了新的方法color()和其他语法,可以更好地指定各种不同色域标准下的颜色,以及更好的色彩渐变展示。W3C的CSS Color 4标准定义了一系列新的方法和语法,以实现更准确、更灵活的色彩管理。例如,color()方法可以在不同的色域标准下指定颜色,同时也支持透明度和色彩空间转换。此外,CSS Color 4标准还引入了新的色彩渐变语法,允许我们更好地控制各种颜色之间的渐变效果。这些新的方法和语法为Web设计师和开发人员提供了更多的工具和灵活性,以实现更好的色彩管理和呈现效果。最近,主流三大Web浏览器也都已支持了W3C的新标准。
这意味着我们可以开始在我们的网站和应用程序中使用CSS Color 4标准中定义的新方法和语法,以实现更好的色彩呈现效果。虽然目前支持CSS Color 4标准的设备还比较有限,但随着时间的推移,越来越多的设备将支持这一标准,使我们能够更好地控制和管理不同色域标准下的颜色。总之,随着色彩技术的不断发展,支持更广色域标准已经成为Web设计和开发的必然趋势。W3C的CSS Color 4标准为我们提供了更灵活、更准确的色彩管理工具,使我们能够更好地呈现不同色域标准下的颜色。我们期待着未来,当越来越多的设备和浏览器支持CSS Color 4标准时,我们将能够展示更真实、更丰富的色彩,为用户带来更好的视觉体验。你认为CSS Color 4标准的出现对Web设计和开发有何重要意义?你有没有使用CSS Color 4标准中定义的新方法和语法?
在未来,你认为Web颜色管理和呈现技术会有哪些变化和创新?颜色指定方式的演变颜色在网页设计中是至关重要的,而如何指定颜色也是需要花费一定精力去思考的。从2000年开始,我们有多种方式可以指定颜色,包括hex色值(#rgb、#rrggbb)、rgb()、rgba()、或是一些特定颜色的字符(如white、pink等)。随着时间的推移,各种浏览器陆续增加了对不同颜色指定方式的支持,包括hsl()、hwb()方法等。不同的指定方式对应着不同的色彩空间,但它们的色域都是一致的,即sRGB。HEX颜色指定方式HEX颜色指定方式通过使用十六进制的数字来分别表示R、G、B、A的值,指定颜色较为简单。在HEX色值中,通常使用3位或是6位数字来指定颜色,如“#49b”表示为3位HEX色值,“#4499bb”则表示为6位HEX色值。
在HEX色值中,若需要指定透明度,则可以使用4位或是8位数字来表示。其中,4位数字中,前3位表示R、G、B的值,最后一位表示透明度;8位数字中,前6位表示R、G、B的值,后面两位表示透明度。例如,“#f9bf”表示完全不透明,“#ff99bbff”表示完全不透明,“#49b8”表示透明度为88%,“#4499bb88”表示透明度为88%。RGB颜色指定方式RGB颜色指定方式通过使用0~255的十进制数字,或是0%~100%的百分比来指明R、G、B,透明度A使用百分比或0~1的数字表示。在rgb()中,可以通过传递3个参数(即R、G、B)或是4个参数(即R、G、B、A)来指定颜色。在rgba()中,需要传递4个参数,其中第4个参数是透明度。例如,rgb(73, 153, 187)表示为不透明的颜色,rgba(73, 153, 187, 0.5)表示为透明度为50%的颜色。
HSL颜色指定方式HSL颜色指定方式中,H表示色相(0~360°),S表示饱和度(0%~100%),L表示亮度(0%~100%)。与RGB颜色指定方式不同,HSL指定方式更加符合人类的感知习惯,且更加容易调整颜色的亮度和饱和度。在HSL颜色指定方式中,可以通过hsl()和hsla()方法来指定颜色,其中hsla()方法需要传递一个额外的参数,即透明度。HWB颜色指定方式HWB颜色指定方式通过指定颜色的色相、白度、黑度来确定颜色。在hwb()方法中,H表示色相(0~360°),W表示白度(0~100%),B表示黑度(0~100%)。与HSL相比,HWB的调整方式更加灵活,但对于一些应用场景来说还不是特别实用。
总结随着时间的推移,我们拥有了越来越多的方式来指定颜色,从最开始的hex色值,到后来的rgb()、rgba()、hsl()、hsla()、hwb()等,每一种颜色指定方式都有着自己的优缺点。在选择颜色指定方式时,我们需要根据具体的需求来进行选择。值得注意的是,虽然各种颜色指定方式对应着不同的色彩空间,但它们的色域都是一致的,即sRGB。未来,我们是否还会有新的颜色指定方式呢?在这个瞬息万变的时代,我们期待着更加灵活、实用的颜色指定方式的出现。思考题:你觉得哪种颜色指定方式最实用?为什么?CSS颜色空间:RGB与HSL的比较CSS中定义颜色有两种方式,分别是RGB和HSL。RGB是红绿蓝三原色的缩写,是一种比较直观的颜色空间,而HSL是一种基于色相、饱和度和亮度的颜色空间,更符合人类自然理解,无需了解红绿蓝基础色是如何混合的。
RGB颜色空间RGB颜色空间是一种将红、绿、蓝三种基础色光按照不同的比例混合而成的颜色空间。在CSS中,我们可以使用三种类型的RGB颜色表示方式:十进制表示、百分比表示和不带分隔符的十六进制表示。在CSS中,我们可以使用--classic、--modern和--percents定义RGB颜色,这三种方式分别是十进制表示、不带分隔符的十六进制表示和百分比表示。在定义完RGB颜色之后,我们还可以通过在RGBA后面加上透明度来定义带透明度的颜色,透明度可以使用百分比或小数表示。另外,如果我们需要定义一个颜色中的某个通道为空,可以使用none关键字表示,例如:--empty-channels:rgb(none none none)。HSL颜色空间HSL颜色空间是基于色相(Hue)、饱和度(Saturation)和亮度(Lightness)三个参数来描述颜色的。
它更符合人类自然理解,无需了解红绿蓝基础色是如何混合的。在CSS中,我们可以使用hsl()函数来定义颜色,其中的三个参数分别是色相、饱和度和亮度。色相表示颜色的基本色调,取值范围为0deg~360deg,饱和度表示颜色的强度或纯度,取值范围为0%~100%,亮度表示颜色的亮度程度,取值范围也是0%~100%。在定义完HSL颜色之后,我们还可以通过在HSLA后面加上透明度来定义带透明度的颜色,透明度可以使用百分比或小数表示。总结RGB颜色空间和HSL颜色空间都有自己的特点和优势,选择哪一种颜色空间来定义颜色,需要根据实际情况来决定。如果需要精确地控制颜色的混合比例,或者想要使用十六进制表示方式来定义颜色,那么RGB颜色空间是一个不错的选择;而如果想要更加直观地描述颜色,或者想要控制颜色的明暗程度而不是具体的RGB值,那么HSL颜色空间会更加合适。
在实际应用中,我们可以根据具体情况来选择使用RGB还是HSL颜色空间,并且可以根据需要定义带透明度的颜色,或者将某个通道的值设为空。在使用HSL颜色空间时,我们需要注意色相的取值范围为0deg~360deg,饱和度和亮度的取值范围为0%~100%。最后,为了使网页在不同的浏览器和设备上呈现相同的颜色,我们可以使用Web安全颜色,这些颜色是一些被广泛支持的颜色,可以确保在不同的设备上呈现相同的效果。你更喜欢使用哪种颜色空间来定义颜色呢?对于颜色的选择和搭配,你有什么心得和经验?欢迎在评论中分享你的想法。有效的CSS HSL颜色CSS中的颜色表示方式有很多种,其中一种常用的方式是使用HSL(色相、饱和度、亮度)颜色模式。在CSS中,我们可以使用HSL颜色来设置元素的背景色、文本颜色等。然而,有时候我们需要对颜色进行一些特殊的处理,例如设置透明度或者使用无色相和饱和度的黑白色。
本文将介绍一些有效的CSS HSL颜色用法。传统风格的HSL颜色首先,让我们来看看传统风格的HSL颜色。在CSS中,我们可以使用--classic来定义一个传统风格的HSL颜色,具体的色相、饱和度和亮度的取值可以根据实际需要进行调整。例如,--classic:hsl(200deg, 50%, 50%); 表示色相为200度,饱和度为50%,亮度为50%的HSL颜色。这种方式常用于传统风格的网页设计中,给人一种稳重、典雅的感觉。现代风格的HSL颜色除了传统风格的HSL颜色,我们还可以使用现代风格的HSL颜色。与传统风格相比,现代风格的HSL颜色更加鲜艳、活泼。在CSS中,我们可以使用--modern来定义一个现代风格的HSL颜色,同样可以根据实际需要调整色相、饱和度和亮度的取值。
例如,--modern:hsl(200 50% 50%); 表示色相为200度,饱和度为50%,亮度为50%的HSL颜色。这种方式常用于现代风格的网页设计中,给人一种时尚、年轻的感觉。带透明度的HSL颜色除了设置颜色的基本属性之外,有时候我们还需要设置颜色的透明度。在CSS中,我们可以使用HSLA(色相、饱和度、亮度、透明度)颜色模式来实现这一需求。HSLA颜色模式与HSL颜色模式非常相似,只是多了一个透明度的参数。我们可以使用百分比或者小数来表示透明度。例如,--classic-with-opacity-percent:hsla(200deg, 50%, 50%, 50%); 表示色相为200度,饱和度为50%,亮度为50%,透明度为50%的HSLA颜色。
我们还可以使用小数来表示透明度,例如,--classic-with-opacity-decimal:hsla(200deg, 50%, 50%, .5); 表示透明度为0.5的HSLA颜色。通过调整透明度,我们可以实现更多样化的颜色效果。带透明度的现代风格HSL颜色除了传统风格的HSL颜色和带透明度的HSL颜色,我们还可以将现代风格的HSL颜色与透明度结合使用。在CSS中,我们可以使用--modern-with-opacity-percent:hsl(200 50% 50% / 50%); 或者--modern-with-opacity-decimal:hsl(200 50% 50% / .5); 来定义带透明度的现代风格HSL颜色。这种方式可以让我们在保持现代风格的同时,实现更多样化的颜色效果。
无色相和饱和度的黑白色除了常规的彩色HSL颜色,我们还可以使用HSL颜色模式来表示无色相和饱和度的黑白色。在CSS中,我们可以使用--empty-channels-white来定义一个白色,使用--empty-channels-black来定义一个黑色。这两种颜色的特点是色相和饱和度均为"none",只有亮度参数。例如,--empty-channels-white:hsl(none none 100%); 表示白色,--empty-channels-black:hsl(none none 0%); 表示黑色。这种方式常用于一些特殊的设计需求,例如在网页中使用黑白照片。总结本文介绍了一些有效的CSS HSL颜色用法。我们可以根据实际需要,选择传统风格的HSL颜色或者现代风格的HSL颜色,也可以使用HSLA颜色模式来设置颜色的透明度。
此外,我们还可以使用HSL颜色模式来表示无色相和饱和度的黑白色。通过灵活运用这些颜色表达方式,我们可以实现更多样化、个性化的网页设计效果。你喜欢使用哪种CSS HSL颜色呢?欢迎在评论中分享你的想法!新CSS颜色方法:HWB和Color()CSS提供了许多用于设置颜色的方法,其中最常用的是RGB和十六进制。但是,最近出现了两种新的方法来设置颜色:HWB和Color()。HWB方法HWB代表色相、白度和黑度。它类似于HSL(色相、饱和度和亮度),但具有一些区别。HWB中的色相表示颜色在圆形色环上的角度,而不是在圆锥体上的坐标。白度和黑度表示色彩中白色和黑色的比例。
下面是一个示例,展示了如何使用HWB方法创建一些现代颜色:.valid-css-hwb-colors{ --modern:hwb(200deg 25% 25%); --modern2:hwb(200 25% 25%);}在这个例子中,我们使用hwb()函数创建两个类似的颜色。注意,我们可以使用度数或不带度数的数字表示色相。我们还可以在HWB颜色中设置不透明度:.valid-css-hwb-colors{ --modern-with-opacity-percent:hwb(200 25% 25% / 50%); --modern-with-opacity-decimal:hwb(200 25% 25% / .5);}在这个例子中,我们分别使用50%和0.5作为不透明度值。我们可以使用百分比或小数来设置不透明度。
最后,我们可以使用HWB方法创建纯黑色和纯白色,这两种颜色没有饱和度或色相:.valid-css-hwb-colors{ /* 无色相和饱和度,仅用亮度可表示黑白色 */ --empty-channels-white:hwb(none 100% none); --empty-channels-black:hwb(none none 100%);}在这个例子中,我们使用none作为色相值。这表示黑色和白色没有色相,只有亮度。Color()方法Color()方法类似于RGB方法,使用R、G、B三个直线轴上的数值来指明颜色。但是,Color()方法的第一个参数可以接收除sRGB以外的其他色域下的颜色空间标识符,且R、G、B的值仅支持0~1或0%~100%。
下面是一个示例,展示了如何使用Color()方法来创建不同颜色空间中的颜色:.valid-css-color-function-colors { --srgb: color(srgb 1 1 1); --srgb-linear: color(srgb-linear 100% 100% 100% / 50%); --display-p3: color(display-p3 1 1 1); --rec2020: color(rec2020 0 0 0); --a98-rgb: color(a98-rgb 1 1 1 / 25%); --prophoto: color(prophoto-rgb 0% 0% 0%); --xyz: color(xyz 1 1 1);}在这个例子中,我们创建了七种不同的颜色。
注意,我们可以使用不同的颜色空间标识符来创建这些颜色。结论HWB和Color()方法为CSS提供了更多的颜色选项。使用这些方法,我们可以创建不同的颜色,这些方法非常有用,特别是在设计网站时。不同的颜色空间提供了不同的颜色选项,可以使我们的设计更加多样化和创新。我们期待看到更多的CSS属性和方法在未来的CSS版本中的出现。你使用过HWB和Color()方法吗?你认为它们有用吗?请在下面的评论中分享你的想法。本文介绍了关于CSS新版本中color()方法的定义和使用,该方法可以描述不同色彩空间下的颜色及其透明度。参数colorspace指定使用哪种色彩空间,可选值包括srgb、srgb-linear、display-p3等。参数c1、c2、c3对应不同色彩空间下的各参数值,可用number、百分比或none表示。参数A为可选项,表示颜色的透明度。
其中,在sRGB色彩空间中,不再支持0~255取值,而是改为0~1范围。在Linear sRGB色彩空间中,颜色的取值范围更广,可用负数和大于1的数值表示,但需要注意使用时的转换关系。在CSS新版本中,color()方法的使用更加灵活,可以描述不同色彩空间下的颜色及其透明度。在定义时,需要指定参数colorspace,可根据需要选择不同的色彩空间。同时,参数c1、c2、c3和A也需要根据色彩空间的不同而有所调整,具体参数值可参考各色彩空间的描述。例如,在sRGB色彩空间中,需要将颜色的取值范围从0~255改为0~1,可以使用number或百分比来表示。而在Linear sRGB色彩空间中,颜色的取值范围更广,可以用负数和大于1的数值表示。在使用时,需要注意转换关系,避免出现误差。除了描述颜色外,color()方法还支持描述透明度。
参数A为可选项,可以用number、百分比或none表示。如果不指定透明度,则默认为1,即完全不透明。使用时,可以将颜色和透明度组合在一起,例如color(srgb 34% 58% 73% / 50%)表示颜色为sRGB色彩空间下的34%、58%、73%的颜色,透明度为50%。这种方式更加直观,可帮助开发者快速定义所需的颜色和透明度。需要注意的是,当参数c1、c2、c3或A为none时,表示对应的颜色通道为空,即为黑色。例如,color(srgb none none none)和color(srgb)都表示为黑色。在实际使用中,需要根据需要来选择正确的参数值,避免产生误解。总之,color()方法在CSS新版本中的定义和使用更加灵活,可以描述不同色彩空间下的颜色及其透明度。在使用时,需要根据需要选择正确的参数值,避免产生误解。线性sRGB和sRGB是两种不同的色彩空间。
sRGB使用了一个伽马曲线函数进行校正,使得颜色的变化对人眼的感知更加适应,即对明暗的感知是非线性的;而线性sRGB的颜色变化是线性的。在明暗从0到1渐变时,这两种色彩空间的实际渐变走向是不同的。除了sRGB和线性sRGB之外,还有其他的色彩空间标准,例如Display P3和Rec2020。Display P3最早由苹果公司推行,现在已成为HDR显示的基础标准。它能显示的颜色比sRGB多50%。而Rec2020的色域更广,可以用来显示4K甚至8K的影像。然而,目前支持Rec2020标准的终端显示器还很少。这些色域标准都是使用RGB来描述颜色。在CSS中,可以使用srgb-linear函数来表示线性sRGB的颜色。例如,通过设置不同的百分比或小数值,可以实现明暗渐变的效果。同时,还可以添加不透明度,通过设置透明度的百分比或小数值,来改变颜色的透明度。
如果色值为none或为空,表示黑色。总之,线性sRGB和sRGB是不同的色彩空间,它们在颜色变化上有着不同的特性。此外,还有其他色域标准如Display P3和Rec2020,它们分别适用于不同的显示需求。了解这些色域标准可以帮助我们更好地理解和应用颜色。在CSS中,我们可以使用srgb-linear函数来表示线性sRGB的颜色,并通过调整百分比或小数值来实现明暗渐变。但需要注意的是,目前支持Rec2020标准的显示器还不常见,因此在选择色彩空间时需要根据具体需求和设备的支持情况进行考虑。作为编辑,我认为了解不同的色彩空间标准对于设计和显示领域的专业人士来说非常重要。选择适合的色彩空间可以帮助我们呈现更准确、更鲜明的颜色效果。同时,对于普通用户来说,了解色彩空间标准也可以帮助他们更好地理解和欣赏不同显示设备的色彩表现。
因此,我建议在相关的设计和技术教育中,应该加强对色彩空间的介绍和应用。你认为应该如何提高人们对色彩空间的认识和理解?你对不同色彩空间标准有什么看法和经验?欢迎在评论中分享你的想法。如何正确使用CSS颜色空间CSS颜色空间是一个非常有用的工具,它可以帮助我们更好地管理和控制我们的网站和应用程序中的颜色。在CSS中,颜色空间用于描述颜色的值。CSS定义了几种颜色空间,包括RGB,HSL和Lab等。最近,CSS添加了两个新的颜色空间:Display-P3和Rec2020。这两种颜色空间都是广泛用于视频和图像的标准。但是,我们该如何正确地使用它们呢?Display-P3和Rec2020的介绍Display-P3和Rec2020是两个用于描述颜色空间的标准。Display-P3是一种广泛应用于iOS设备和Mac电脑的颜色空间标准。
它是一种更广泛的颜色空间,可以提供更多的颜色选项,从而更好地呈现图像和视频。另一方面,Rec2020是一种广泛应用于广播和电影制作的颜色空间标准。它是一种更大的颜色空间,可以提供更广泛的颜色范围,因此可以提供更好的图像和视频质量。如何在CSS中使用Display-P3和Rec2020颜色空间要在CSS中使用Display-P3和Rec2020颜色空间,您需要使用CSS的color()函数。该函数允许您指定颜色值的类型,包括RGB,HSL,Lab,Display-P3和Rec2020等。
以下是使用Display-P3和Rec2020颜色空间的示例:.valid-css-display-p3-colors{ --percents:color(display-p3 34% 58% 73%); --decimals:color(display-p3 .34 .58 .73); --percent-opacity:color(display-p3 34% 58% 73% / 50%); --decimal-opacity:color(display-p3 .34 .58 .73 / .5); /* 无色度色相,展示为黑色 */ --empty-channels-black:color(display-p3 none none none); --empty-channels-black2:color(display-p3);}.vali
d-css-rec2020-colors { --percents: color(rec2020 34% 58% 73%); --decimals: color(rec2020 .34 .58 .73); --percent-opacity: color(rec2020 34% 58% 73% / 50%); --decimal-opacity: color(rec2020 .34 .58 .73 / .5); /* 无色度色相,展示为黑色 */ --empty-channels-black: color(rec2020 none none none); --empty-channels-black2: color(rec2020);}如上所示,您可以使用color()函数,并将其设置为display-p3或rec2020来指定颜色空间。
接下来,您可以像使用其他CSS颜色一样指定颜色的值。在使用Display-P3和Rec2020颜色空间时需要注意的问题虽然使用Display-P3和Rec2020颜色空间可以提供更好的颜色选项和视频质量,但在使用时也需要注意一些问题。首先,不是所有浏览器都支持Display-P3和Rec2020颜色空间。因此,在使用这些颜色空间时,请确保您的目标受众可以支持这些颜色空间。否则,您的网站或应用程序可能会显示不正确的颜色。其次,如果您的目标受众支持Display-P3和Rec2020颜色空间,则您需要确保您的图像和视频也使用这些颜色空间。否则,它们可能会显示不正确的颜色。最后,当使用Display-P3和Rec2020颜色空间时,请注意它们相对于其他颜色空间的亮度和对比度。Display-P3和Rec2020颜色空间可能会影响您的图像和视频的亮度和对比度。
结论使用Display-P3和Rec2020颜色空间可以提供更好的颜色选项和视频质量,但在使用时需要注意一些问题。请确保您的目标受众支持这些颜色空间,并确保您的图像和视频也使用这些颜色空间。如果您需要更好的图像和视频质量,请考虑使用这些颜色空间。色彩是人类视觉中不可或缺的一部分,但是基于RGB标准的色彩空间无法完全描述人类视觉所能感知到的所有颜色。相比之下,基于CIE标准的色彩空间可以更好地覆盖人类视觉所能感知到的所有颜色。CSS Color 4新标准新增了对于CIE标准色域的支持,下面将介绍基于CIE的四种取色新方法:lab()、lch()、oklab()、oklch()。首先,让我们来看看lab()方法。lab()方法描述的是基于CIE标准的色彩空间中的颜色,能够覆盖人眼所能看到的全色域。与基于RGB来描述色彩的维度不同,lab使用的维度分别为L、A、B。
其中L代表亮度,取值范围为0~100或0%~100%。A代表红-绿两个色轴之一,取值范围均为-125~125或-100%~100%。当A为正值时,更偏红色;为负值时,更偏绿。B代表蓝-黄两个色轴之一,取值范围均为-125~125或-100%~100%。当值为正时,更偏黄;为负时,更偏蓝。接下来是lch()方法。lch()方法同样是基于CIE标准的色彩空间,其中L代表亮度,取值范围为0~100或0%~100%。C代表色度,即颜色的强度或纯度,取值范围为0~100或0%~100%。H代表色相,即颜色在色轮上的位置,取值范围为0~360度或0~1弧度。oklab()方法是一种基于CIE标准的色彩空间,它的优势在于它可以更好地处理亮度、饱和度和对比度。它使用的维度与lab()方法相同,即L、A、B。最后,是oklch()方法。
oklch()方法同样是基于CIE标准的色彩空间,它使用的维度与lch()方法相同,即L、C、H。与lch()方法相比,它可以更好地处理亮度、饱和度和对比度。虽然这四种取色方法都是基于CIE标准的色彩空间,但它们各自有着不同的优势,可以根据具体需求进行选择。总之,基于CIE标准的色彩空间可以更好地覆盖人类视觉所能感知到的所有颜色,而lab()、lch()、oklab()、oklch()等取色新方法可以更好地描述和处理不同类型的颜色。在实际应用中,可以根据需求选择最合适的方法来取色。你认为基于CIE标准的色彩空间和这些取色新方法对于色彩呈现有哪些创新和改进?在你的工作或学习中,你有使用过这些新方法吗?欢迎在评论区分享你的经验和看法。编辑:通过CSS颜色的新特性实现更加精确的颜色控制随着CSS颜色的新特性的加入,我们可以更加精确地控制颜色的表现效果。
本文将介绍一些利用新特性实现颜色控制的方法。CSS颜色的新特性CSS的新特性中,我们可以使用lch()函数来定义颜色变量。这个函数使用的维度分别是亮度(L)、纯度(C)和色相(H),这个新特性提供了更加精确的颜色控制。利用lab()函数实现颜色控制在CSS中,我们可以使用lab()函数来实现颜色控制。
例如,我们可以定义一个名为valid-css-lab-colors的类,并在其中定义各种颜色变量,如下所示:```css.valid-css-lab-colors{ --percent-and-degrees:lab(58% -16 -30); --minimal:lab(58 -16 -30); --percent-opacity:lab(58% -16 -30 / 50%); --decimal-opacity:lab(58% -16 -30 / .5); /* 后两个参数为none是可表示纯灰度 */ --empty-channels-white:lab(100 none none); --empty-channels-black:lab(none none none);}```使用这些定义好的变量,我们可以在CSS代码中直接调用它们。
这样,我们就可以更加方便地控制颜色的表现效果了。总结通过CSS颜色的新特性,我们可以更加精确地控制颜色的表现效果。利用lab()函数定义颜色变量,可以让我们更加方便地控制各种颜色的表现效果。我们相信,在今后的Web开发中,更加精确的颜色控制一定可以为我们的工作带来更多的便利和效率。思考题:你觉得CSS的新特性对于Web开发者来说有哪些好处?在你的Web开发工作中,你有没有使用到这些新特性?欢迎在评论区留言分享你的看法。CSS颜色空间新增支持LCH和OKLabCSS中新增支持LCH和OKLab颜色空间,这些新增的颜色函数提供了更准确的颜色处理,也更好地支持渐变优化。LCH颜色空间是由Luminance、Chroma和Hue三个维度组成的颜色空间,比HSL和HSV更直观地描述了颜色的亮度、饱和度和色相。
而OKLab是校正版的LAB颜色空间,它消除了色相偏移,提供更加准确的颜色转换和图像处理。
下面列出了一些有效的CSS LCH和OKLab颜色的示例:使用LCH颜色:.valid-css-lch-colors{ --percent-and-degrees:lch(58% 32 241deg); --just-the-degrees:lch(58 32 241deg); --minimal:lch(58 32 241); --percent-opacity:lch(58% 32 241 / 50%); --decimal-opacity:lch(58% 32 241 / .5); --empty-channels-white:lch(100 none none); --empty-channels-black:lch(none none none);}使用OKLab颜色:.valid-css-oklab-colors{ --perc
ent-and-degrees:oklab(64% -.1 -.1); --minimal:oklab(64 -.1 -.1); --percent-opacity:oklab(64% -.1 -.1 / 50%); --decimal-opacity:oklab(64% -.1 -.1 / .5); --empty-channels-white:oklab(100 none none); --empty-channels-black:oklab(none none none);}这些新增的CSS颜色函数为开发者提供了更多的颜色处理选项,更好地支持渐变优化和图像处理。
"OKLCH: The Updated Color Model for Precise Color Selection"Have you ever struggled to find the perfect color for your design or artwork With the advancement of technology, new color models have been developed to provide more precise and flexible color selection options. One such model is OKLCH, which is an improved version of LCH. Similar to HSL, OKLCH allows you to choose a hue from a color wh
eel and adjust the brightness and saturation to achieve the desired color. In this article, we will explore the features of OKLCH and how it can enhance your color selection process.OKLCH, also known as the Oklab color model, is a perceptually uniform color space that aims to mimic how humans perceive color. Created by Bj?
rn Ottosson, OKLCH offers a more accurate representation of color compared to traditional color models like RGB and CMYK. But what sets OKLCH apart is its intuitive color selection logic, which is similar to HSL. By selecting an angle on a circular color wheel, you can easily choose the desired hue. Then, by adjusting the brightness and saturation, you can fine-tune the color to your liking.Unli
ke traditional color models, OKLCH provides a more simplified way of adjusting color. In HSL, you have to manipulate the hue, saturation, and lightness separately. But in OKLCH, the saturation and purity can be considered equivalent, with the difference lying in how the adjustments are made. Typically, the adjustments of purity and brightness are done simultaneously to prevent the purity from exce
eding the desired color range. This synchronization ensures that the resulting color remains within the target color gamut.To illustrate the application of OKLCH, there is a color picker tool available that allows you to experience its capabilities. With this tool, you can input the desired values for percentage, decimal, opacity, and channels. For example, you can try out values like OKLCH(64%
.1 233deg), OKLCH(64 .1 233deg), OKLCH(64 .1 233), OKLCH(64% .1 233 / 50%), OKLCH(64% .1 233 / .5), OKLCH(100 none none), and OKLCH(none none none). These examples showcase the flexibility and versatility of OKLCH in color selection.In addition to the improved color selection methods, the new color standard also introduces a color mixing function. This function allows you to blend colors from di
fferent color spaces and create new color variations. For instance, you can use the color-mix() function to combine LCH colors like plum and pink. By specifying the color space (in this case, LCH) and the desired percentages, you can achieve the desired blend. Similarly, you can use the color-mix() function with other color spaces like sRGB and HSL to create unique color combinations.To further
demonstrate the color mixing capability, let's take a look at some examples. Using the color-mix() function with LCH colors, you can create blends such as color-mix(in LCH, plum, pink) or color-mix(in LCH, plum 40%, pink). Alternatively, you can mix colors using different color spaces, such as color-mix(in sRGB, #34c9eb 20%, white) or color-mix(in HSL longer hue, HSL(120 100% 50%) 20%, white). The
se examples highlight the versatility of the color-mix() function in generating various color combinations.In conclusion, the OKLCH color model is a powerful tool for precise color selection and blending. By incorporating the intuitive logic of HSL and the improved accuracy of LCH, OKLCH offers a more user-friendly and visually appealing approach to choosing colors. With the added feature of the
color-mix() function, you can now easily create unique color blends with different color spaces. Whether you are a graphic designer, artist, or simply someone who appreciates the beauty of colors, OKLCH can greatly enhance your creative process. Try it out and unleash your imagination with the endless possibilities of OKLCH!What are your thoughts on the OKLCH color model Have you tried it out i
n your design projects How do you think it compares to other color models Share your experiences and insights in the comments below!如何使用高清色彩:优雅降级和渐进增强随着技术的不断发展,色彩在我们的网页设计中也变得越来越重要。高清色彩凭借其更广的色域和更高的色彩精度,为我们呈现更加真实、生动的色彩,为视觉体验提供了更多的可能性。本文将介绍高清色彩的基本概念及其在网页设计中的应用方法。一、高清色彩的基本概念高清色彩是指比传统sRGB色彩更宽广的色域,以及更高的色彩精度。在sRGB色域内,我们只能使用有限的颜色来呈现图像。而在高清色彩下,我们可以使用更多的颜色来呈现图像,从而使图像更加真实、生动。
在CSS中,我们可以使用多种色彩空间来定义颜色,包括sRGB、sRGB线性、Lab、OkLab、XYZ、XYZ-D50、XYZ-D65、HSL、HWB、LCH、或OkLCH。在使用高清色彩时,我们可以选择合适的色彩空间来定义颜色。二、优雅降级当我们使用一项新的语法时,我们通常会有两种策略:优雅降级和渐进增强。优雅降级指的是在同时使用新旧语法的情况下,让浏览器自动判断展示哪种语法。这种实施起来比较简单,只需要同时使用新旧语法即可。例如,在使用高清色彩时,我们可以同时使用sRGB和sRGB线性两种语法来定义颜色:color: red; /* 这里使用传统的sRGB语法 */color: color(display-p3 1 0 0); /* 这里使用新的sRGB线性语法 */如果浏览器不支持sRGB线性语法,则会只解析第一行;如果浏览器支持,则会最终使用第二行。
这样,我们就可以优雅地降级处理,确保无论用户使用什么浏览器,都能正确显示颜色。三、渐进增强除了优雅降级,我们还可以使用渐进增强的方法来使用高清色彩。在使用渐进增强的方法时,我们首先判断当前浏览器是否支持新的色域标准,并在条件的情况下提供新的色值。这可以通过@supports和@media来实现。例如,我们可以使用@supports来判断当前浏览器是否支持sRGB线性语法:@supports (color: color(display-p3 1 0 0)) { .box { color: color(display-p3 1 0 0); }}在这个例子中,我们使用@supports来判断浏览器是否支持sRGB线性语法,如果支持,则给.box元素设置sRGB线性颜色;如果不支持,则不作处理。
除了@supports,我们还可以使用@media来判断浏览器是否支持高清色彩。具体来说,我们可以使用色域媒体查询来判断当前硬件设备是否支持高清、高对比度、高色彩精度。但需要注意的是,这种方法判断的比较笼统,并不能准确判断浏览器是否支持新色域和色彩空间。四、总结高清色彩为我们的网页设计提供了更加丰富的色彩表现力,但在使用高清色彩时,我们需要注意浏览器的兼容性问题。为了让所有用户都能正确地看到颜色,我们可以使用优雅降级和渐进增强两种方法来处理。优雅降级的方法比较简单,适合处理一些简单的场景;而渐进增强则更加灵活,适合处理一些复杂的场景。在实际使用中,我们可以根据具体情况选择合适的方法来使用高清色彩。你认为在网页设计中,高清色彩的使用有哪些注意事项呢?欢迎在评论区留言分享你的看法。
文章标题:探索高动态范围颜色和广色域在CSS中的应用段落1:引入主题,介绍高动态范围颜色和广色域的概念,并提出问题。现代设备的显示技术不断进步,给我们带来了更丰富、更真实的视觉体验。其中,高动态范围颜色和广色域技术在提升图像质量方面起到了重要作用。那么,在CSS中如何应用这两种技术呢?本文将探索高动态范围颜色和广色域在CSS中的应用,带您领略更精彩的视觉效果。段落2:介绍在CSS中使用媒体查询判断设备是否支持高动态范围颜色。在CSS中,我们可以使用媒体查询来判断设备是否支持高动态范围颜色。通过@media规则和dynamic-range属性,我们可以根据设备的色域来选择合适的颜色。例如,当设备支持高动态范围颜色时,我们可以使用display-p3颜色来呈现更丰富的色彩。通过这种方式,我们可以确保在支持高动态范围颜色的设备上获得更好的视觉效果。
段落3:介绍在CSS中使用媒体查询判断设备是否支持广色域。除了判断设备是否支持高动态范围颜色,我们还可以使用媒体查询来判断设备是否支持广色域。通过@media规则和color-gamut属性,我们可以根据设备的色域来选择合适的颜色。例如,当设备支持Display P3色域时,我们可以使用相应的颜色来呈现更广阔的色彩范围。这种技术可以让我们的网页在支持广色域的设备上展现出更加绚丽的色彩。段落4:介绍在JavaScript中使用window.matchMedia()方法进行媒体查询。除了在CSS中使用媒体查询,我们还可以在JavaScript中使用window.matchMedia()方法进行媒体查询。通过调用这个方法,并传入相应的媒体查询条件,我们可以判断设备是否支持高动态范围颜色和广色域。
例如,我们可以通过判断window.matchMedia('(dynamic-range: high)').matches的返回值来确定设备是否支持高动态范围颜色。这种方法可以让我们在JavaScript中动态地根据设备的特性调整网页的呈现方式。段落5:总结全文,提出个人观点和建议,并引导读者提出评论。总之,高动态范围颜色和广色域技术在提升网页图像质量方面具有巨大潜力。在CSS中,我们可以通过媒体查询来判断设备是否支持这两种技术,并选择合适的颜色呈现方式。同时,在JavaScript中使用window.matchMedia()方法也可以实现相同的效果。未来,随着设备技术的不断发展,我们可以期待更多使用高动态范围颜色和广色域的创新应用。您对高动态范围颜色和广色域技术在CSS中的应用有何看法?欢迎留下您的评论。
使用@supports判断CSS属性支持情况当开发者想要使用一些新的CSS属性或方法时,往往会担心会不会出现兼容性问题。为此,CSS3提供了一个新的功能——@supports。这个功能可以帮助开发者判断当前运行环境是否支持某个CSS属性或方法,从而避免出现兼容性问题。如何使用@supports使用@supports的语法非常简单,只需要将需要检查的属性名和属性值作为参数传递给@supports即可,例如:```css@supports(background: rgb(0, 0, 0)) { /* 环境支持rgb颜色空间 */}```上面的代码中,如果当前运行环境支持rgb颜色空间,则会执行对应的代码块。
如果需要判断多个属性或值是否被支持,可以使用逗号将它们分隔开来,例如:```css@supports(background: rgb(0, 0, 0), color: hsl(0, 0%, 100%)) { /* 环境同时支持rgb和hsl颜色空间 */}```当然,@supports也支持嵌套使用,例如:```css@supports(display: grid) { .container { display: grid; }}```在上述代码中,如果当前运行环境支持CSS Grid布局,则会将.container元素的display属性设置为grid。判断颜色空间是否被支持颜色空间是CSS3新增的一个重要功能,它可以帮助开发者更加精细地控制颜色的呈现效果。
在使用颜色空间时,开发者需要先检查当前运行环境是否支持对应的颜色空间,然后再进行相关的操作。下面是一些常用的颜色空间查询方法:- RGB颜色空间:支持范围广泛,可以用于几乎所有的设备和应用程序中。- Display-P3颜色空间:适用于Apple设备和部分支持W3C推荐的设备。- Oklch颜色空间:比较新的颜色空间,支持范围较窄。
使用@supports判断颜色空间是否被支持的方法:```css@supports(background: rgb(0 0 0)){ /* rgb颜色空间被支持 */ background: rgb(0 0 0);}@supports(background: color(display-p3 0 0 0)){ /* Display-P3颜色空间被支持 */ background: color(display-p3 0 0 0);}@supports(background: oklch(0 0 0)){ /* Oklch颜色空间被支持 */ background: oklch(0 0 0);}```通过上述方法,可以判断当前运行环境是否支持RGB、Display-P3和Oklch颜色空间,并根据支持情况设置对应的background属性。
应用实例在实际应用中,通常需要兼容新旧标准。
下面是一个兼容新旧标准的实例:```css:root { --neon-red: rgb(100%, 0, 0); --neon-blue: rgb(0, 0, 100%);}/* 判断设备是否支持高清展示 */@media (dynamic-range: high) { /* 判断浏览器是否支持display-p3颜色空间 */ @supports (color: color(display-p3 0 0 0)) { /* 在支持的情况下使用display-p3颜色空间 */ --neon-red: color(display-p3 1 0 0); --neon-blue: color(display-p3 0 0 1); }}```上述代码中,我们定义了两个颜色变量--neon-red和--neon-blue,并且在@m
edia查询中使用@supports判断设备是否支持高清展示和浏览器是否支持display-p3颜色空间,如果支持则使用display-p3颜色空间,否则使用RGB颜色空间。开发调试在开发调试过程中,@supports也可以帮助开发者更好地定位兼容性问题。例如,当某个CSS属性在某些浏览器中不被支持时,可以使用@supports将其排除在某些特定的浏览器之外,以确保在这些浏览器中不会出现兼容性问题。总结@supports是CSS3提供的一个非常有用的功能,它可以帮助开发者判断当前运行环境是否支持某个CSS属性或方法,从而避免出现兼容性问题。在实际应用中,还可以结合颜色空间和@media查询等功能,实现更加灵活和兼容的CSS样式。
新版Chrome浏览器增强了DevTools里的拾色器功能,支持CSS Color 4中的新语法,提供了更多的色彩空间和方法,让开发者更方便地处理颜色属性。点击页面元素中的颜色属性,在弹出的拾色器中,中间色值右侧的箭头出现下拉框,可以看到新增的色彩空间和方法。选择不同的色彩空间后,色彩的可调参数也会改变,有助于开发者分辨高清色与非高清色。当选择非sRGB色域的色值后,展示一条sRGB的分界线,帮助开发者清晰地看出当前选择的颜色所在的色域。而当选择一个超出sRGB范围的颜色后,会在sRGB色域下的色值后边会带上一个三角叹号,提示当前色值已超出了sRGB所能描述的范围,只能使用相近的颜色作为替代。未来的设计和开发在H5动画、游戏、3D图像等方面,对于色彩显示的要求不会永远停留在sRGB阶段,因此了解不同的色彩空间和方法,以及如何处理超出sRGB范围的颜色,对于开发者来说是必要的。
有关Chrome DevTools更多关于高清颜色的更新,可以参阅官方文档。总之,随着web端的发展,色彩显示也会不断地更新和进化。希望本文的介绍能够让更多的开发者了解一些关于色彩的知识。如有错误或疏漏,欢迎指正讨论。颜色值是网页设计中一个非常重要的部分,能够起到突出重点、美化页面的作用。在CSS中,我们可以使用多种方式来定义颜色值。本文将对CSS中颜色值的不同定义方式进行详细介绍。一、关键字定义在CSS中,我们可以使用关键字来定义颜色值。这些关键字是预定义的,表示一种特定的颜色。比如,我们可以使用red关键字来表示红色。CSS中预定义了140个颜色关键字,这些关键字可以直接用于颜色值的定义。二、十六进制表示法另一种常用的颜色值定义方式是使用十六进制表示法。这种表示法用6个十六进制数字来表示一个颜色值,每两个数字表示红绿蓝三个颜色通道中的一个。
比如,#FF0000表示红色,#00FF00表示绿色,#0000FF表示蓝色。在十六进制表示法中,每个颜色通道的取值范围是0到255,因此总共有16777216种可能的颜色值。三、RGB表示法RGB表示法也是一种常用的颜色值定义方式。在这种表示法中,我们使用三个数值来表示红绿蓝三个颜色通道中的颜色值。比如,rgb(255, 0, 0)表示红色,rgb(0, 255, 0)表示绿色,rgb(0, 0, 255)表示蓝色。在RGB表示法中,每个颜色通道的取值范围是0到255,因此总共有16777216种可能的颜色值。四、RGBA表示法RGBA表示法是在RGB表示法的基础上增加了一个alpha通道,用来表示颜色的透明度。在RGBA表示法中,我们需要使用四个数值来表示颜色值和透明度。
比如,rgba(255, 0, 0, 0.5)表示半透明的红色,其中alpha通道的值为0.5,取值范围是0到1。五、HSL和HSLA表示法HSL表示法使用色相(Hue)、饱和度(Saturation)和亮度(Lightness)三个值来表示一个颜色。色相表示颜色在色轮上的位置,饱和度表示颜色的纯度,亮度表示颜色的明暗程度。HSLA表示法在HSL表示法的基础上增加了一个alpha通道,用来表示颜色的透明度。总结本文详细介绍了CSS中颜色值的不同定义方式,包括关键字定义、十六进制表示法、RGB表示法、RGBA表示法和HSL/HSLA表示法。不同的颜色值定义方式各有优缺点,在实际开发中需要根据需要进行选择。同时,我们还可以使用渐变、透明度等技巧来进一步美化页面,提高用户体验。作为开发者,我们需要熟练掌握各种颜色值的定义方式,并灵活运用于实际开发中。
通过巧妙运用颜色值,可以使页面更加生动、美观、易于理解。
铁子们大家好
我是泥萌挖掘师9妹
想知道有多少小伙伴
天天蹲点等9妹的推文
毕竟每次都能知道你所想所需
像9妹这样贴心的女孩不多了
不接受反驳的声音
经过这段时间的密切观察
发现你们都在问一个样式
“ 这种点亮效果怎么做到的 ”
“ 怎么才能实现图片点亮 ”
那就是下图这类
这么美这么高大上的效果
是如何制作出来的
很多小伙伴都非常的费解
别怕
9妹专治各种疑难杂症
真的非常非常简单
操作步骤来了
小板凳坐好小本子准备记笔记
第一步
找一张你想点亮的任何图片
在编辑器内上传图片
选中图片后在工具条中选择美图
点开美图后会看到很多滤镜
选择黑白画映后点击确定
这张图片在编辑器内
就是呈现灰色的效果了
双击灰色图片
复制地址栏的地址
第二步
编辑器内搜索样式编号
「 23843 」
添加到编辑器内
我们需要利用这个素材实现点亮样式
点击HTML
选中的代码就是原图片地址
把刚才复制的灰色图片地址
粘贴在选中的位置
点击HTML返回编辑器内
因为彩色的原图
已经上传过编辑器内了
可直接在我的图片内
再次点击添加编辑器内
再次双击图片复制地址
然后回到HTML里面
把地址粘贴在阴影处替换掉
再次点击HTML
返回编辑器内就完成啦
点击下方查看效果图
因为是长方形的图片
与下方的文字会有一大段的留白
也是需要在HTML里面修改
若插入的图片显示不全或后面留白太多
请修改「 858 」的值
留白在代码里调整后的效果图
完整的点亮图片
就这样完成啦
点击下方查看效果图
动手动手动手操作
多操作几遍就会啦
以上就是针对点亮样式
教程的介绍啦
如果还有其他的疑问
可直接留言告诉9妹
*请认真填写需求信息,我们会在24小时内与您取得联系。