惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
爱范儿
爱范儿
罗磊的独立博客
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
U
Unit 42
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
H
Help Net Security
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
CSS @supports规则又新增font-tech,font-format判断 « 张鑫...
张鑫旭,zhangxinxu · 2025-03-09 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11531
本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。

封面占位图

继续关注Web前端前沿新特性,这次快速介绍CSS @supports规则新增加的两个特性判断,一个是font-tech(),另外一个是font-format()函数,都来看看是什么作用吧。

一、font-tech()的功能

font-tech()函数可以检查浏览器是否支持用于布局和渲染的指定字体技术。

例如,下面这段CSS代码可以判断浏览器是否支持COLRv1字体(一种彩色字体技术)技术。

@supports font-tech(color-COLRv1) {}

下表展示了可以作为font-tech()函数的参数,数据源自MDN文档。

5年前的这篇文章“关于CSS emoji字体和OpenType-SVG我所知道的一些事”对其中一些字体技术有过简单的介绍,有兴趣的可以了解下。

技术 描述
彩色字体技术
color-colrv0 COLR 版本 0 彩色字体
color-colrv1 COLR 版本 1 彩色字体
color-svg SVG 彩色字体
color-sbix 标准位图图形字体
color-cbdt 彩色位图数据
字体特征技术
features-opentype OpenType GSUB 以及 GPOS技术
features-aat TrueType morx 以及 kerx 技术
features-graphite 石墨特征,即 Silf, Glat, Gloc, Feat 以及 Sill
其他字体技术值
incremental-patch 使用补丁子集方法进行增量字体加载
incremental-range 使用范围请求方法增量加载字体
incremental-auto 使用自动协商方法的增量字体加载
variations TrueType和OpenType字体中的字体变化,用于控制字体轴、粗细、字形等。
palettes 字体调色板技术,也就是通过font-palttle选择字体中的许多调色板之一

二、font-format()的作用

font-format()这个比较好理解,是检测浏览器是否支持制定的字体格式的。

同样支持的参数值和对应的字体格式如下表所示:

格式 描述 文件后缀
collection OpenType集合 .otc, .ttc
embedded-opentype 嵌入式OpenType .eot
opentype OpenType .ttf, .otf
svg SVG字体 (已废弃) .svg, .svgz
truetype TrueType .ttf
woff WOFF 1.0 (Web Open Font Format) .woff
woff2 WOFF 2.0 (Web Open Font Format) .woff2

使用示意:

@supports font-format(woff2) {
  /* 浏览器支持woff2字体 */
}

三、鑫辣点评这两个特性

好,这两个字体相关的检测函数算是介绍完了,下面过来点评下。

直接说结论:没用的废物特性!

但两者的废物之处各有不同。

font-tech()是检测字体技术的,这个对于中文场景就是鸡肋特性,因为中文字体是不会使用这类技术的,无他,成本太高。

英文字体就一些字母和数字,你里面搞彩色字体,变体之类的,成本是可控的。

但是中文字体,少说几千个,里面再造字体特征,变形之类的,是多么浩大的工程,所以,目前业界,至少到现在为止,我是没有看到一块有彩色字体或者字体特征的中文字体的,日文字体倒是有。

font-format()函数的问题在于出现的太晚了。

例如woff2字体的检测,这个所有现代浏览器都已经支持了,还有检测的必要吗,没了,没有意义了,就好像都已经射完了,才从抽屉里翻出一个套。

所以啊,大家看看,了解下有这么个东西就好了。

但是,如果抛开其原本作用……

CSS这门语言很神奇,就是很多CSS属性大行其道并不是因为其原本的设计初衷,而是其衍生的特性。

所以,这里这两个函数,如果抛开其原本作用,倒不是没有价值可言。

例如,我们可以利用此函数判断当前浏览器是不是Safari浏览器,例如color-colrv1彩色字体技术Safari是不支持的,我们可以借此判断当前浏览器。

@supports not font-tech(color-COLRv1) {
  /* Safari浏览器 */
}

兼容性截图示意:

v1算法兼容性

是不是还挺有趣的?

好,就扯这么多。

🥱😴🤤

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:https://www.zhangxinxu.com/wordpress/?p=11531

(本篇完)