在 Windows 上使用 ClearType 使 CSS3 @font-face 字体渲染效果很好

     2023-03-15     95

关键词:

【中文标题】在 Windows 上使用 ClearType 使 CSS3 @font-face 字体渲染效果很好【英文标题】:Making CSS3 @font-face font rendering play nice with ClearType on Windows 【发布时间】:2011-07-02 11:11:29 【问题描述】:

首先是一些背景信息。

似乎使用 CSS3 @font-face 规则可以在任何浏览器、任何版本的 Windows(XP 及更高版本)上以意想不到的方式与 ClearType 字体呈现交互。

当我遇到它时,我首先将其记录为Google Font Directory bug。进一步的研究似乎产生了相互矛盾的信息;启用或禁用 ClearType 可能有助于或损害 @font-face 字体在 Windows 中的任何 Web 浏览器中的呈现方式。 ClearType 是帮助还是伤害似乎完全取决于所使用的字体,以及其中内置的提示类型。

例如,thread on TypeKit's support site 似乎表明 ClearType 禁用时出现字体渲染问题。但是,开发了jQuery plug-in 以在启用 ClearType 时改进字体呈现,但该插件仅适用于 Internet Explorer。有趣的是,插件演示页面上使用的字体在启用 ClearType 时渲染效果不佳,但在禁用它时,两个演示页面的渲染相同/正确。

因此,鉴于所有这些背景信息和先前的研究,我的问题是:

无论 Windows ClearType 设置如何,确保在所有平台上为现代浏览器提供良好字体渲染的最佳方式/折衷方案是什么?

我的第一个想法是使用默认包含@font-face 字体的样式表。 JavaScript 可以检测用户的操作系统,如果检测到 Windows,可以通过编程方式修改样式表类以使用不包含 @font-face 字体的字体系列,从而使用系统原生的后备字体。后来我意识到,其他人也想到了this。不过,这是一个笨拙且不雅的解决方案。理想情况下,我希望我的网络字体无论平台如何都可以使用,而不依赖于 sIFR 或 Cufon 之类的东西。

有没有人有指点或更好的想法?

【问题讨论】:

我患有同样的疾病。还没有找到治愈方法... :) Same question & fixes here 我写了一个blog post with lot's of screenshots and solutions here 【参考方案1】:

这是一个大问题,并且是自 2012 年 7 月以来 Google Chrome 中的一个官方错误。在 2013 年 8 月,这似乎在大多数情况下得到了修复。然而,仍有一些字体看起来前卫和像素化的例子。

解决办法:

给元素一个体面的文字笔触:

// try around, find the setting that fits your font-size
webkit-text-stroke: 0.6px; 

// alternative RGBa syntax, allows finer settings with alpha-transparency
-webkit-text-stroke: 1px rgba(0, 0, 0, 0.1);

更多信息:

我已经写了一篇关于这个主题的大博客文章,包括很多截图和 4 个不同的解决方案来解决这个问题:看看这里:

How to fix the ugly font rendering in Google Chrome

【讨论】:

【参考方案2】:

这里有一个类似的问题:Font-face embedded fonts look fuzzy in Windows 7 browsers 得到的答案为我解决了同样的问题。

fontsquirrel 字体生成器http://www.fontsquirrel.com/fontface/generator 优化字体并添加提示/渲染信息,帮助 Windows 字体渲染引擎更好地渲染它们。它还会生成更小的文件,下载速度更快。

【讨论】:

【参考方案3】:

查看这篇关于几乎相同内容的文章:

IE7 & 8 字体平滑:http://allcreatives.net/2009/12/05/smoother-font-face-embedding-in-ie-7-8/

在 cmets 中也有很多关于它的内容。我最近一直在寻找类似的支持,没有太多的快乐。我不得不在一个项目中使用 Cufon,因为客户想要一种非常特殊的字体。有时,sIFR 和 Cufon 是唯一的解决方案,但老实说,我会远离 sIFR。

希望这会有所帮助。

【讨论】:

我发现无论使用什么浏览器(甚至是非 IE 浏览器),ClearType 都会让我所有的自定义字体看起来像垃圾。 我遇到了与 BoltClock 相同的问题。我在原始帖子中链接到另一个 allcreatives.net 页面。虽然有一些让 IE 正常运行的技巧,但我很好奇 Windows 中其他浏览器的解决方案。

如何使 APK 在 WINDOWS 上独立于 Kivy 和 python?

】如何使APK在WINDOWS上独立于Kivy和python?【英文标题】:HowtomakeAPKstandalonefromKivyandpythononWINDOWS?【发布时间】:2017-05-2205:23:11【问题描述】:如何从Kivy和python制作APK文件?我知道可以使用buildozer和python-for-android,但只能在Linux操作... 查看详情

使用 Internet Explorer 过滤器和 ClearType

】使用InternetExplorer过滤器和ClearType【英文标题】:UsingInternetExplorerfiltersandClearType【发布时间】:2011-07-0713:24:46【问题描述】:我已经详细阅读了有关IE在使用过滤器时禁用ClearType的问题,我希望我的结论是错误的。在应用过滤... 查看详情

在 IE9 中禁用 Cleartype(文本抗锯齿)

】在IE9中禁用Cleartype(文本抗锯齿)【英文标题】:DisableCleartype(textanti-aliasing)inIE9【发布时间】:2011-07-2214:08:34【问题描述】:有据可查(例如here)IE9忽略了操作系统范围的字体平滑设置(也称为抗锯齿)。即使在Windows中禁用... 查看详情

如何使端口 80 可用?在 Windows 7 上安装 xampp 1.7.7?

】如何使端口80可用?在Windows7上安装xampp1.7.7?【英文标题】:Howtomakeport80available?Installingxampp1.7.7onwindows7?【发布时间】:2012-06-1014:28:47【问题描述】:我正在尝试在Windows7上安装/运行xampp,但它失败了,因为它说端口80正在使用... 查看详情

在不注销的情况下启用/禁用 ClearType

】在不注销的情况下启用/禁用ClearType【英文标题】:Enable/disableClearTypewithoutloggingout【发布时间】:2011-08-0607:32:05【问题描述】:我需要通过cmd(或任何脚本,如VBS/JS)或从注册表启用/禁用ClearType(或“调整Windows的外观和性能&g... 查看详情

如何使执行别名在 Windows Server 2019 上工作?

】如何使执行别名在WindowsServer2019上工作?【英文标题】:HowdoImakeanexecutionaliasworkonWindowsServer2019?【发布时间】:2021-08-0208:23:56【问题描述】:我将一个Win32控制台应用打包到一个MSIX包中。在Win10上一切正常。我也可以在WindowsServe... 查看详情

在 Windows 上使用 Clang 链接 SDL2 时出错“LNK1561:必须定义入口点”

】在Windows上使用Clang链接SDL2时出错“LNK1561:必须定义入口点”【英文标题】:ErrorwhenLinkingSDL2usingClangonWindows"LNK1561:entrypointmustbedefined"【发布时间】:2017-02-1317:54:26【问题描述】:我正在尝试在Windows上使用clang来编译和链... 查看详情

IE 正在丢失 ClearType

】IE正在丢失ClearType【英文标题】:IEislosingClearType【发布时间】:2010-09-2911:46:44【问题描述】:我正在经历一些非常奇怪的事情!我有一个用JS(jQuery)隐藏的div。像这样:$(\'#myDiv\').hide();然后当我像这样进行淡入时:$("#myDiv").fadeI... 查看详情

如何使 CreateFile 尽可能快

...件的内容。在linux上,只使用fopen和阅读速度非常快。在Windows上,这发生得非常缓慢。我已切换到使用ReadFileEx使用重叠I/O(异步I/O),当数据准备好读取时,Windows会执行回调。但是,实际上对Cre 查看详情

C# - 使用鼠标在 Windows 窗体上调整文本框的高度

】C#-使用鼠标在Windows窗体上调整文本框的高度【英文标题】:C#-AdjustheightofTextBoxonWindowsFormusingMouse【发布时间】:2013-11-1506:52:09【问题描述】:我需要为Windows窗体中的TextBox实现一个功能(使用.NET2.0),这样用户应该能够使用鼠... 查看详情

在启用 Aero 的 Windows 7 上运行 .NET 2.0 应用程序窗体应用程序会导致菜单交互使应用程序崩溃

】在启用Aero的Windows7上运行.NET2.0应用程序窗体应用程序会导致菜单交互使应用程序崩溃【英文标题】:Runninga.NET2.0appwindowsformapponWindows7withAeroenabledcausesmenuinteractionstocrashtheapplication【发布时间】:2011-06-1422:22:16【问题描述】:我... 查看详情

如何使 Windows 商店应用程序与 TLS 1.2 一起使用?

】如何使Windows商店应用程序与TLS1.2一起使用?【英文标题】:HowtomakewindowsstoreappworkwithTLS1.2?【发布时间】:2015-09-0105:57:21【问题描述】:有一个通过WCF连接到Web服务的Windows商店应用程序8.1。最近在服务器上设置了TLS1.2,因此应... 查看详情

使 ListView 在垂直方向上可滚动

...时间】:2011-01-1912:35:42【问题描述】:我正在使用System.Windows.Forms.ListView和checkboxes=true。我可以看到,当列表项超出容量时,我会得到一个水平滚动条。我试图找到任何属性来更改滚动条方向。有什么办法可以让它在垂直方向上... 查看详情

如何在 Windows 上安装 docker 套接字?

】如何在Windows上安装docker套接字?【英文标题】:HowdoyoumountthedockersocketonWindows?【发布时间】:2019-12-1908:25:05【问题描述】:我正在尝试使仅在Unices上开发的应用程序在Windows上运行。它都是dockerized并且它使用traefik负载均衡器。... 查看详情

在 Windows 10 上安装 pymssql 时出错

】在Windows10上安装pymssql时出错【英文标题】:Errorwhileinstallingpymssqlonwindows10【发布时间】:2018-01-0707:56:22【问题描述】:我收到“系统找不到指定的路径”错误。谁能给我一些关于如何使路径正确的提示?我在使用pip时从未遇到... 查看详情

如何使 UWP 应用程序与 Windows 8.1 兼容

】如何使UWP应用程序与Windows8.1兼容【英文标题】:HowtomakeUWPappscompatiblewithwindows8.1【发布时间】:2017-11-0423:01:09【问题描述】:我已经安装了VisualStudio2017和VisualStudio2015。使用VisualStudio2015我能够创建Xamarin.winphone项目,并且能够在... 查看详情

如何使 WPF 应用程序在 Windows 经典风格和 Windows XP 风格中都一样?

】如何使WPF应用程序在Windows经典风格和WindowsXP风格中都一样?【英文标题】:HowtomakeaWPFapplicationthesameinbothWindowsclassicstyleandwindowsXPstyle?【发布时间】:2011-09-2503:39:22【问题描述】:我在WPF中编写了一个应用程序。我正在为我的应... 查看详情

windows基本设置windows系统的几个基本设置

...进行显示颜色校准;11、在“显示”窗口,我们可以调整ClearType文本,使屏幕上的文本便于阅读;12、在“显示”窗口,我们还可以设置自定义文本大小(DPI)。 查看详情