码农网

网站首页> 前端开发> Html/CSS

text-rendering属性使用介绍

众衡网络科技

在使用typo时,发现在样式重置的时候有text-rendering: optimizelegibility; 这个样式,就查找了下相关资料。这里分享一下:

text-rendering告诉渲染引擎工作时如何优化显示文本。 浏览器会在渲染速度、易读性(清晰度)和几何精度方面做一个权衡。

我们知道,SVG-可缩放矢量图形(Scalable Vector Graphics)是由W3C制定的, 基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG严格遵从 XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率 无关的矢量图形格式。IE 9、Firefox、Opera、Chrome 以及 Safari 支持内联 SVG。IE 8或更早版本,可通过安装Adobe SVG Viewer以支持SVG。

而属性text-rendering正是一个SVG属性,目前尚没有任何的CSS标准对其进行定 义。

不过Gecko(for Firefox)和WebKit核心的浏览器已经允许你在 Windows/Mac/Linux系统的HTML/XML内容中应用该属性。

对于某些小于20px的字体来说,当你把该属性设为optimizeLegibility时,包含 诸如ff、fl、fi这种连字的文本会产生一个非常明显的效果,比如Microsoft’s Calibri, Candara, Constantia, Corbel和DejaVu类字体。如果你对连字不太理 解,可以参考维基百科的解释 http://en.wikipedia.org/wiki/Typographic_ligature

默认值:auto
适用于:文本元素
继承性:yes
媒介类型(Media Types):可视型(公认的媒介类型包括哪些?参见W3C文档 http://www.w3.org/TR/CSS2/media.html)

语法:

格式:text-rendering: auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit

值:

auto:

当绘制文本时,浏览器会进行智能识别,何时应该从速度、清晰度和几何精度方 面进行优化。关于各浏览器对该属性解释的差别,参见下面的兼容性表格。

optimizeSpeed:当绘制文本时,浏览器会着重渲染速度,而不是清晰度和几何精度。该属性值不 能用于字距调整和连字。Gecko默认开启该属性,Firefox 是默认20px以下开启该属性。

optimizeLegibility:当绘制文本时,浏览器会侧重文本的可读性(清晰度),而不是渲染速度和几何 精度。该属性值可以用于字距调整和连字。
使用CSS 3的@font-face来渲染文字的情况越来越多,易读性开始被关注和重视。尤其是小号的文字。由于目前还没有CSS属性控制显示在线字体的微妙细节,Safari 5,Chrome和Webkit系列浏览器支持text-rendering启用kerning 和 ligatures。
Gecko 和WebKit 浏览器处理这个属性的方式很不一样。前者默认启用这个特性, 而后者,你需要将其设置为optimizeLegibility。Firefox默认20px以上字体文本会开启该属性。
geometricPrecision:当绘制文本时,浏览器会着重几何精度,而不是清晰度和渲染速度。字体的某些 方面,比如字间距并不是按照线性比例进行渲染的,因此该属性可以使得设置为 这些字体的文本看起来很整洁。

在SVG中,当文本被放大或缩小,浏览器会计算文本的最终尺寸(即指定字体大小 和应用比例),然后按照计算出来的尺寸,从系统的字体库中请求一种合适的字 体。但是,如果你要求的字体大小,比如9px字号的140%的比例,产生的字号12.6 在字体库中并不存在,所以此时浏览器会将字号舍为12px。这导致了文本的阶梯 缩放。

不过,当渲染引擎完全支持几何精度属性时,你可以利用几何精度属性流畅地缩 放文本。对于比较大的缩放因子,你可能看不到特别完美的渲染效果,但显示字 号将会是你所期待的大小,既不会向上也不向下四舍五入Windows/Linux支持的字 号大小。

如果定义为geometricPrecision,Webkit精确应用定义的属性值,Gecko则将 geometricPrecision解释为optimizeLegibility,其表现与设置为 optimizeLegibility的表现是一样的.

拓展阅读:

Gecko核心浏览器注意事项:

属性值设为auto时有个20px的渲染阈值,这个阈值可以通过更改偏好设置browser.display.auto_quality_min_font_size这一项。(对于Firefox,首先在浏览器键入about:config回车即可进入,更多更改配置选项的方法参见这里http://kb.mozillazine.org/Editing_configuration),如果你想了解更多有关mozilla preference- browser.display.auto_quality_min_font_size的介绍可以查看官方文档http://kb.mozillazine.org/Browser.display.auto_quality_min_font_size。
optimizeSpeed选项在Gecko2.0(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)上无效。因为文本渲染的标准代码已经足够快,没有比它更快的代码路径。这是一个bug。参见bug 595688 .https://bugzilla.mozilla.org/show_bug.cgi?id=595688

text-rendering属性存在的问题:

混合使用optimizeLegibility和font-variant: small-caps会导致small-caps渲染失败。最糟糕的情况是文本不显示在Web页面上,在低配置的移动设备上可能导致页面无法正常加载。(问题bug原文http://code.google.com/p/chromium/issues/detail?id=51973)
对Safari 5,使用ex作为 margin, padding, border-width ,outline-width的度量单位,同时使用optimizeLegibility会导致浏览器崩溃。不过本人测试Safari 5.1.7(7534.57.2)中文版貌似已经修复了崩溃的问题。(测试页面地址http://quorning.net/safari_crash.htm)

text-rendering

本文地址:https://m.manongw.com/article/19.html

文章来源:转载于李大壮的博客,转载网址为http://www.lidazhuang.com/web/867.html

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

最近更新
热门素材
html5卡通章鱼素材,几何图形抽象设计

html5卡通章鱼素材,几何图形抽象设计

图片素材

html文字动画特效,文字虚线边框

html文字动画特效,文字虚线边框

文字特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

导航菜单

js+css3透明渐变风格导航菜单特效

js+css3透明渐变风格导航菜单特效

导航菜单

8款经典的css网站顶部导航栏样式

8款经典的css网站顶部导航栏样式

图片素材

js+css3网站顶部自适应导航栏菜单特效

js+css3网站顶部自适应导航栏菜单特效

图片素材

jQuery自定义添加删除表格行内容特效

jQuery自定义添加删除表格行内容特效

图片素材

jQuery+CSS3漂亮的下拉菜单选择框美化特效

jQuery+CSS3漂亮的下拉菜单选择框美化特效

css3实例

jQuery文字公告无限滚动轮播特效

jQuery文字公告无限滚动轮播特效

css3实例

jQuery+Layui省市区城市三级联动菜单选择特效

jQuery+Layui省市区城市三级联动菜单选择特效

css3实例