text-rendering 详解
原文链接:http://www.feeldesignstudio.com/2013/05/text-rendering
Text-rendering 属性是一个非标准属性,主要用来告诉渲染引擎(rendering engine)渲染文字的时候如何来优化,浏览器根据这个属性来权衡速度、易读性、几何精度等方面。
暂时只有Gecko(Firefox)and WebKit(Safari 或 Chrome)支持这个属性。
注:
Gecko是套开放原始码的、以C++编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。
WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。
现在浏览器的内核引擎,基本上是四分天下:
Trident: IE 以Trident 作为内核引擎;
Gecko: Firefox 是基于 Gecko 开发;
WebKit: Safari, Google Chrome,傲游3 基于 Webkit 开发。
Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台–Opera mini
Text-rendering属性有如下取值:
|
取值 |
描述 |
|
auto |
浏览器为速度、易读性、几何精度等自动优化来绘制文本
在实践中,Gecko桌面浏览器(Firefox)如果字体大小为20 px或者更大,会使用optimizeLegibility;否则对于较小的文本使用optimizeSpeed |
|
optimizeSpeed |
绘制文本时速度优先,会禁用字距调整和连字 |
|
optimizeLegibility |
绘制文本时易读性优先,会启用字距调整和连字 |
|
geometricPrecision |
绘制文本时几何精度优先,暂时和optimizeLegibility相同 |
明显的效果是optimizeLegibility 在文字较小(20px以下)的时候,在一些特殊字体设定下(如Microsoft’s Calibri、Candara等)启用了连字(比如 ff、fi、fl)
下面是一些例子:
XHTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>text-rendering</title>
<style>
body {
text-rendering:auto;
}
p {
margin:20px0;
font-size:30px;
}
p.auto {
text-rendering:auto;
}
p.optimizeSpeed {
text-rendering:optimizeSpeed;
}
p.optimizeLegibility {
text-rendering:optimizeLegibility;
}
p.geometricPrecision {
text-rendering:geometricPrecision;
}
</style>
</head>
<body>
<p class="auto">Welcome to Feeldesign Studio <br>ligatures: ff, fi, fl, ffl</p>
<p class="optimizeSpeed">Welcome to Feeldesign Studio <br>ligatures: ff, fi, fl, ffl</p>
<p class="optimizeLegibility">Welcome to Feeldesign Studio <br>ligatures: ff, fi, fl, ffl</p>
<p class="geometricPrecision">Welcome to Feeldesign Studio <br>ligatures: ff, fi, fl, ffl</p>
</body>
</html>
注意下面的图片中顺序是:
- text-rendering: auto;
- text-rendering: optimizeSpeed;
- text-rendering: optimizeLegibility;
- text-rendering: geometricPrecision;
Chrome:

Firefox:

换个字体,小于20px:
CSS
p {
font:19px'DejaVu Serif',Constantia;
}
Chrome:

Firefox:

换个字体,大于20px:
CSS
|
1
2
3
|
p {
font:30px'DejaVu Serif',Constantia;
}
|
Chrome:

Firefox:

可以比较明显的看出,不同的text-rendering属性在Chrome下的区别比较明显,在Firefox下基本上没有区别。
text-rendering 详解的更多相关文章
- phaser学习总结之Text对象详解
前言 在phaser学习总结之phaser入门教程中,我们已经入门了phaser,对phaser也有所了解但是我们并没有对phaser中的每个对象的属性和方法进行详解,本章将对phaser中的Text ...
- jquery之html(),text()方法详解
一:html() html()函数用于设置或返回当前jQuery对象所匹配的DOM元素内的html内容. 该函数的用途相当于设置或获取DOM元素的innerHTML属性值. 该函数属于jQuery对象 ...
- Flutter Container 组件、Text 组件详解
Text 组件 textAlign 文本对齐方式(center 居中,left 左对齐,right 右对齐,justfy 两端对齐) textDirection 文本方向(ltr 从左至右 ...
- UITextView的使用详解
//初始化并定义大小 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)]; te ...
- 【转】UITextView的使用详解
//初始化并定义大小 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)]; te ...
- java爬取网页内容 简单例子(2)——附jsoup的select用法详解
[背景] 在上一篇博文java爬取网页内容 简单例子(1)——使用正则表达式 里面,介绍了如何使用正则表达式去解析网页的内容,虽然该正则表达式比较通用,但繁琐,代码量多,现实中想要想出一条简单的正则表 ...
- SUBLIME TEXT 2 设置文件详解
SUBLIME TEXT 2 设置文件详解 Preferences.sublime-settings文件: // While you can edit this file, it’s best to ...
- Sublime Text 设置文件详解
Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自 ...
- sublime text 3 build 3143 安装详解
sublime text 3 build 3143 安装详解 环境:ubuntu 16 (x64) 0x00 下载 官网下载地址 下载的文件是个压缩包,笔者解压之后将整个sublime-t ...
- 全网最详细的Sublime Text 3的安装Package Control插件管理包(图文详解)
不多说,直接上干货! 全网最详细的Windows里下载与安装Sublime Text *(图文详解) 全网最详细的Sublime Text 3的激活(图文详解) 全网最详细的Sublime Text ...
随机推荐
- crm plugin 未能加载文件或程序集“xxxx,”或它的某一个依赖项。系统找不到指定的文件。
plugin运行出错. 1 plugin文件如果是 注册到disk,应该是注册到 C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembl ...
- checkbox 选中个数
背景: 1 Choose1 全选checkbox ,选中此checkbox,子列表的checkbox全部为选中状态. 2 在子列表中如果去掉一个checkbox则Choose1 的全选状态也改为不选中 ...
- jquery.cookie.js 配置
一定要写入cookies路径 一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 jquery.c ...
- Mingyang.net:自定义FreeMarkerView
自定义FreeMarkerView的目的是为了放一些公共的变量到FreeMarker模版里面.spring-context.xml: <!-- ************************* ...
- 关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法
关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法 问题如下图所示,方法是去掉: <i ...
- NYOJ 123 士兵杀敌4-树状数组的插线求点
士兵杀敌(四) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编 ...
- Hibernate和JDBC、EJB比较
参考:http://m.blog.csdn.net/article/details?id=7228061 一.Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App S ...
- canvas-7globleCompositeOperation2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 浅谈如何使用代码为MP3文件写入ID3Tags
作者:郑童宇 GitHub:https://github.com/CrazyZty 1.前言 做了三年左右的Android开发,一直没写过博客,最近正好打算换工作,算是闲一些,就将以前开发所遇到的一些 ...
- VC获取并修改计算机屏幕分辨率(MFC)
//检测当前分辨率 int Width = GetSystemMetrics(SM_CXSCREEN); int Height = GetSystemMetrics(SM_CYSCREEN); DEV ...