F9y4ng / GreasyFork-Scripts

The open source code of this project is used for userscripts (油猴脚本) for desktop browsers, including Font Rendering (Customized) (字体渲染(自用脚本)- Font Rendering.user.js), and Search Engine Assistant (优雅的搜索引擎助手 - Google & Baidu Switcher.user.js), etc.
https://f9y4ng.github.io/GreasyFork-Scripts/
GNU General Public License v3.0
919 stars 45 forks source link

使用阴影开启渲染的时候选定字体会有加粗字体的现象,但是我不确定这是否是刻意设计 #354

Closed jehovlo closed 1 month ago

jehovlo commented 1 month ago

我选用的字体是自定义添加的 鸿蒙黑体light(HarmonyOS Sans SC Light),后来尝试了 微软雅黑light(Microsoft YaHei Light) 在大部分网站都会出现,选定字体,同一行的字体会加粗一点点,但是同一段的另一行的字体无变化,除非选定的部分涉及到了那一行。 当关闭字体阴影时,大部分网站的这一现象会消失。 但是少部分黑底白字的页面白字在关闭字体阴影后,被选定的一行也会加粗,即表现为亮度稍稍提高了部分(相对于未选定的行)。 我并不确定这是否算一个BUG,或许是作者刻意设计的。在使用中也并无不适,有时甚至算是一个优势,突出了我正在看的那一行。

最后我得说感谢作者,这个工具帮了大忙了,非常感谢!

jehovlo commented 1 month ago

补充一下情况出现时的详细设定, 字体是自定义添加的,鸿蒙黑体Light或者微软雅黑Light; 字体重写和字体平滑均开启; 字体比例缩放1.01 描边0.1; 阴影0.1; 阴影颜色#666666FF。

F9y4ng commented 1 month ago

这是Bilnk/Gecko/Webkit内核浏览器的一个Bug(实际上也不算是Bug,因为W3C标准不存在对应属性。而且是在较新版本浏览器上出现的描边/阴影的渲染问题,比如Chrome96+):对于选中的伪元素::selection的样式定义中并没有定义字体阴影和描边的设置,就会出现选中后字体变粗了的情况(因为有描边和阴影的样式叠加)。但,由于上面提到的原因(::selection没有text-shadow,text-stroke属性),它无法被修正。