重新设计的现代风格 CSS 现已正式发布(2023.10.20更新)

在使用可变字体的过程中,我也遇到了这些问题。
把它分享出来,这样或许你们也可以少走一些弯路。

在 CSS 中启用可变字体

@font-face{
    
    font-weight: 200 700;
    src: url("./Inter.ttf");
    font-style: normal;
}

html, body {
    font-family: "Inter", "SF Pro", sans-serif;
    font-weight: 600;
    font-variation-settings: "slnt"1, "opsz"17;  
    /* 	Inter 还不支持 slnt,这里只是举个例子说明
    	可变字体的可变属性应该怎么设置。 
    */
    
    font-optical-sizing: auto;
    font-feature-settings: "cv11" on, "ss07" on;
}
  1. 其中,字重可以不必在 font-weight-settings 里面设置 "wght"700,直接使用 font-weight: 700 即可。

  2. @font-face 内部必须指明可变字体的字重范围 font-weight: 100 1000,否则浏览器不会以为这是可变字体,只会使用一种字重,对于更粗的字重,将使用浏览器自己的算法加粗字体(可以理解为机械地描边),使得显示出来的字体并不那么美观。毕竟字体设计需要经过专门的美学微调,简单粗暴的算法是无法完美地解决不同字重的问题的。

    In this example, we set a font weight of 200 to 700. Once our range is defined, we can choose any number within that range as our font weight, for example 658. Importantly if you set your font weight range as 200 to 700 and then try to define a weight of 900, even if the font has a 900 weight defined in its axis you will not be able to use it. The range defines what you have access to in your CSS.

  3. 光学尺寸:推荐在具体使用的过程中使用 font-optical-sizing: auto 属性,自动设置光学尺寸。

  4. font-feature-settings: "cv11" on, "ss07" on

    这是 OTF 的字体特性设置,可以激活不同样式的部分字符特性。

    比如双层 a 与单层 a。

    Inter 的单层 a 特性的代码是 “cv11”,SF Pro 的单层 a 系列的特性的代码是 “ss07”。

3 个赞

1.6 这次灰块确实没了,完美解决,旗子居然也跳出来了,不知道昨晚是啥情况

不过手机版欧路还是没旗子,也没渐变,可能跟我的系统有关系吧,手机安卓版已更新最新的8.2.2(20251),系统是安卓12

好奇怪啊,我的手机也是 Android 12,但能够正常显示国旗。


变这样了。1.5是正常的。

那不知道为何了,我一直都没正常显示过旗子呢。我是MI10Pro,MIUI13稳定版

ios的小鸟也不见了。

可以对你的手机词典界面截个图么?
我估计有可能是 JS 中的替换函数的执行时间不对,稍后还要再研究一下 JS 函数的执行时间。

2 个赞


可以,现在是都没有显示的,我直接下载的1.6覆盖以后清过缓存查询了两次,都没有旗子

看你的截图,应该还是 JS 中的替换函数未被执行。
看来欧路的兼容性也堪忧啊,明明浏览器一次都没出过问题。
之后我会试试修改执行时机,或者直接向欧路词典报告问题。
你试试 App Store 的 MDict AD 软件能不能正常显示呢?

报告个小问题,移动端欧路词典黑暗模式无法显示。

1 个赞

:joy: 因为我暂未考虑适配暗黑模式。
可能得等到 1 月才会有时间考虑适配。

1 个赞

用上新css和js后,有些地方没有左对齐:

1 个赞

mdict可以正常显示。

2 个赞

这次给欧路词典反馈的 bug,我甚至都做成了 PDF :rofl:

1 个赞

这么说我手机不显示旗子是欧路软件自身的缺陷了?奇怪你的居然可以显示,是因为用的开发版系统吗?

肯定不是,因为浏览器也能正常显示,MDict 与 GoldenDict 也可以。

:joy:我解决了。都可以正常显示了。有个中文名的css没删 :joy:

2 个赞

国旗也出来了

1 个赞

原来是我自己的问题

跟中文名有关?我的mdx和mdd都是含中文名的

那为什么我PC端现在用相同文件是可以正常的呢

3 个赞