<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jjgod / blog &#187; CSS</title>
	<atom:link href="http://blog.jjgod.org/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jjgod.org</link>
	<description>Random notes &#38; thoughts by Jiang Jiang.</description>
	<lastBuildDate>Mon, 16 Jan 2012 11:08:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>浏览器如何渲染文本</title>
		<link>http://blog.jjgod.org/2011/04/09/how-do-browsers-render-text/</link>
		<comments>http://blog.jjgod.org/2011/04/09/how-do-browsers-render-text/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 11:39:54 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[gecko]]></category>
		<category><![CDATA[harfbuzz]]></category>
		<category><![CDATA[icu]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://blog.jjgod.org/?p=763</guid>
		<description><![CDATA[浏览器是我们最常用的软件之一，文本又是网页中最主要的元素，在浏览器显示文本的过程中有许多有趣的细节，值得展开来讲讲，或许能减少一些误解。这是一个比较粗略的，概括性的介绍，尽可能不涉及过多的技术细节和具体实现，而立足于给 Web 开发者和设计师提供一些正确的概念。 下面的介绍主要根据我对 WebKit 和 Gecko (Firefox) 的印象来谈，其他的浏览器也大致相同，如有阙漏之处欢迎指出。 解码 当浏览器收到来自 Web 服务器的网页数据之后，第一步是要把它解码成可以阅读的文本，因为历史原因，不同区域和语言的网页可能会使用不同的编码方式，而浏览器判断编码主要是依据以下方法： Web 服务器返回的 HTTP 头中的 Content-Type: text/html; charset= 信息，这一般有最高的优先级； 网页本身 meta header 中的 Content-Type 信息的 charset 部分，对于 HTTP 头未指定编码或者本地文件，一般是这么判断； 假如前两条都没有找到，浏览器菜单里一般允许用户强制指定编码； 部分浏览器 (比如 Firefox) 可以选择编码自动检测功能，使用基于统计的方法判断未定编码。 分段 编码确定后，网页就被解码成了 Unicode 字符流，可以进行进一步的处理，比如 HTML 解析了，不过我们这里跳过 HTML/XML 解析的细节，单讲得到了解析后的文本元素之后该怎么处理。 因为我们得到的文本可能是很多种语言混杂的，里面可能有中文、有英文，它们可能要用不同的字体显示；也可能有阿拉伯文、希伯来文这种从右到左书写的文字；也有可能涉及印度系文字这样涉及复杂布局规则的文字；另外，还可能有网页内自己指定的文本语言，比如 &#60;span lang="jp"&#62;日本语&#60;/span&#62; 这样的标记，使得日文汉字可以使用日文字体显示 (因为 Han Unification 导致这些汉字和中文里的汉字使用同样的代码点，尽管很多写法不同)，"lang" 属性也可以在 HTTP 头、&#60;meta&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>浏览器是我们最常用的软件之一，文本又是网页中最主要的元素，在浏览器显示文本的过程中有许多有趣的细节，值得展开来讲讲，或许能减少一些误解。这是一个比较粗略的，概括性的介绍，尽可能不涉及过多的技术细节和具体实现，而立足于给 Web 开发者和设计师提供一些正确的概念。</p>

<p>下面的介绍主要根据我对 WebKit 和 Gecko (Firefox) 的印象来谈，其他的浏览器也大致相同，如有阙漏之处欢迎指出。</p>

<h4>解码</h4>

<p>当浏览器收到来自 Web 服务器的网页数据之后，第一步是要把它解码成可以阅读的文本，因为历史原因，不同区域和语言的网页可能会使用不同的编码方式，而浏览器判断编码主要是依据以下方法：</p>

<ol>
<li>Web 服务器返回的 HTTP 头中的 <a href="http://www.w3.org/International/O-HTTP-charset"><code>Content-Type: text/html; charset=</code></a> 信息，这一般有最高的优先级；</li>
<li>网页本身 <code>meta</code> header 中的 <a href="http://www.w3.org/International/questions/qa-html-encoding-declarations#html5charset">Content-Type</a> 信息的 <code>charset</code> 部分，对于 HTTP 头未指定编码或者本地文件，一般是这么判断；</li>
<li>假如前两条都没有找到，浏览器菜单里一般允许用户强制指定编码；</li>
<li>部分浏览器 (比如 Firefox) 可以选择编码自动检测功能，使用<a href="http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html">基于统计的方法</a>判断未定编码。</li>
</ol>

<h4>分段</h4>

<p>编码确定后，网页就被解码成了 Unicode 字符流，可以进行进一步的处理，比如 HTML 解析了，不过我们这里跳过 HTML/XML 解析的细节，单讲得到了解析后的<a href="https://developer.mozilla.org/en/DOM/Text">文本元素</a>之后该怎么处理。</p>

<p>因为我们得到的文本可能是很多种语言混杂的，里面可能有中文、有英文，它们可能要用不同的字体显示；也可能有阿拉伯文、希伯来文这种从右到左书写的文字；也有可能涉及<a href="http://en.wikipedia.org/wiki/Indic_scripts">印度系文字</a>这样涉及复杂布局规则的文字；另外，还可能有网页内自己指定的文本语言，比如 <code>&lt;span lang="jp"&gt;日本语&lt;/span&gt;</code> 这样的标记，使得日文汉字可以使用日文字体显示 (因为 <a href="http://en.wikipedia.org/wiki/Han_unification">Han Unification</a> 导致这些汉字和中文里的汉字使用同样的代码点，尽管很多写法不同)，<code>"lang"</code> 属性也可以在 HTTP 头、<code>&lt;meta&gt;</code> 或者 <code>&lt;html&gt;</code> 出现，用于标记整个文档的<a href="http://www.w3.org/International/tutorials/language-decl/#Slide0090">全局语言</a>，通常这是一种好的习惯，方便浏览器进行字体匹配。</p>

<p>为了统一处理所有这些复杂的情况，我们要将文本分为由不同语言组成的小段，在有的文本布局引擎里，这个步骤称为“itemize”，分解后的文本段常被称作“text run”，但是具体划分的规则可能根据不同的引擎有所区别，比如 <a href="http://www.freedesktop.org/wiki/Software/HarfBuzz">HarfBuzz</a> 和 <a href="http://site.icu-project.org/">ICU</a> 一般是根据要使用的不同排版类来划分 (常称作“shaper”)，比如英语和法语可能使用同一个 shaper 排版，那么相邻的英语和法语文本就会划分到同一个 run 里，而希伯来文需要另一个 shaper，就划分到它自己的 run 里，以 HarfBuzz 为例，它有这样一些 shaper：</p>

<ul>
<li>通用的 (适用于中文、英文等等大多数布局规则简单的语言)</li>
<li><a href="http://en.wikipedia.org/wiki/Arabic_language">阿拉伯文</a></li>
<li><a href="http://en.wikipedia.org/wiki/Hebrew_language">希伯来文</a></li>
<li><a href="http://en.wikipedia.org/wiki/Indic_scripts">印度系文字</a></li>
<li><a href="http://en.wikipedia.org/wiki/Khmer_language">高棉文</a></li>
<li><a href="http://en.wikipedia.org/wiki/Burma#Language">缅文</a></li>
<li><a href="http://zh.wikipedia.org/zh-cn/諺文">谚文</a></li>
</ul>

<p>不少浏览器还会在这个划分下面，在确定具体使用的字体之后，根据使用字体的不同划分更细的 run，这种 run 可能称作“SimpleTextRun”，每个都会使用和相邻不同的字体，最后把它们逐一交给 shaper 进行排版得到要绘制的字形，这样一来，shaper 的工作就被简化为<strong>在确定的语言、确定的字体下排版确定的文本，生成对应的字形和它们应该放置的位置、占用的空间</strong>。下面先详细说说确定字体的步骤。</p>

<h4>字体</h4>

<p>说到字体，首先必须提到的就是 CSS 里的 <a href="http://www.w3.org/TR/css3-fonts/"><code>font</code></a> 和 <code>font-family</code> 等规则。比如这样的规则：</p>

<pre><code>p { font-family: Helvetica, Arial, sans-serif; }
strong { font-weight: bold; }
</code></pre>

<p>如果对于这样一段文本：</p>

<pre><code>&lt;p&gt;A quick brown fox &lt;strong&gt;jumps&lt;/strong&gt; over the lazy dog.&lt;/p&gt;
</code></pre>

<p>表示这个段落里优先使用 Helvetica 这个 family 的字体，如果找不到，就找 Arial，如果还是找不到，就用浏览器设置的默认非衬线字体 (有的浏览器，比如 Safari 只给你一个设置，有的像 Firefox 则允许根据不同语言设置，这时可以根据前面分析得到的文本 run 语言信息来判断该用哪个)，这个过程非常简单，大家都很好理解。稍微复杂一点的是“jumps”，它应该继承父元素的 <code>font-family</code>，也用 Helvetica，但不用默认的 Regular，而用 Bold 版本，假如找不到 Helvetica Bold，就找 Arial Bold，否则就找浏览器设置的那个字体的 Bold 版本，假如都没有呢？就要考虑用人工伪造的方式来显示粗体了，这个且按下不谈，先看对于中文常见的情况：CSS 指定的字体没有覆盖我们需要的文本时，该怎么做。比如还是上面的 CSS 规则，但对这样的文本：</p>

<pre><code>&lt;p&gt;一只敏捷的狐狸...&lt;/p&gt;
</code></pre>

<p>这里的“一只敏捷的狐狸”该用什么字体呢？假设 CSS 里具体指定了中文字体，比如 <code>Helvetica, STHeiti, sans-serif</code>，那很简单，按照英文字体一样的规则来判断：逐个字符尝试当前的字体是否提供了针对该字符的字形，如果没有则尝试下一个，要是到了最后都没找到匹配的字体呢？CSS 规范里只简单的说执行“system font fallback”，但这个过程在不同的浏览器下可能很不一样，比如 WebKit 会使用 <code>font-family</code> 列表里的<strong>第一个</strong>字体和这段文本所属的语言来寻找 fallback 字体，像 Times 这样的 serif 字体对应的中文 fallback 字体，在 Mac OS X 下是华文宋体 (STSong)；而 Firefox 则会根据 <code>sans-serif</code> 这样的通用 font family 和对应的语言匹配到设置中针对对应语言的默认字体，比如在 Mac OS X 默认的中文非衬线字体是华文黑体 (STHeiti)。Linux 下一般通过 <a href="http://fontconfig.org">fontconfig</a> 去根据语言、风格等参数来选择 fallback，但不同浏览器的实现还可能有区别；Windows 下则一般会使用系统的 Font Linking 机制，根据注册表内的 <a href="http://technet.microsoft.com/en-us/library/cc757457(v=ws.10).aspx">FontSubstitutes</a> 信息来寻找。因为在这里不同的浏览器可能有不同的行为，所以建议<strong>在 CSS 中写明对应平台该用的字体</strong>。</p>

<p>具体的字体选择还有一些不太容易注意的细节，也是各个浏览器差异比较大的一点，可能会出现这样一些问题：</p>

<ul>
<li>是否支持用字体的 PostScript name 选择：如 STHeiti 的 Light 版本又称作 <code>STXihei</code>，或者是否能用 full name 选择：有的浏览器不能正确地将 CSS 里对字体的 <code>font-weight</code> 或者 <code>font-style</code> 等要求映射到特定的字体上，尤其是在字体使用了非标准的 style 命名的情况下，考虑到很多厂商有自己的字体命名规则，这其实很容易出现，像 Helvetica Neue 的 UltraLight, Light, Regular, Medium, Bold 这些不同的 weight，是怎么对应到 CSS <a href="http://www.w3.org/TR/css3-fonts/#descdef-font-weight"><code>font-weight</code></a> 的 100 到 900 数值上的？这就是特别容易出现 bug 的地方。 </li>
<li>是否支持按 localized name 选择：比如能不能用 <code>"宋体"</code> 来代表 <code>"SimSun"</code>。以 Mac OS X 下的浏览器为例，Firefox 支持这样的写法，但基于 WebKit 的浏览器一般不支持，这样的问题 CSS 规范没有限定，所以无论哪种情况都是允许的。</li>
</ul>

<p>总的说来，如果要保证最大限度的兼容性，在 CSS 书写的时候应该<strong>尽可能选择明确、不容易出错的写法，尽量少隐式地让浏览器自己确定</strong> (be explict instead of implict)，虽然隐式写法通常比较简洁，但除非你 100% 确定想支持的浏览器在你想支持的平台下都能支持这个写法，否则还是不应该轻易用。</p>

<p>CSS3 新增的 <code>@font-face</code> 规则则是对于现有规则的扩展，提供了 web fonts 功能，但字体匹配算法的逻辑并没有改变，详细的算法可以看 <a href="http://www.w3.org/TR/css3-fonts/#font-matching-algorithm">CSS 规范里的说明</a>。</p>

<h4>渲染</h4>

<p>当确定了字体以后，就可以将文本、字体等等参数一起交给具体的排版引擎，生成字形和位置，然后根据不同的平台调用不同的字体 rasterizer 将字形转换成最后显示在屏幕上的图案，一般浏览器都会选择平台原生的 rasterizer，比如 Mac OS X 下用 Core Graphics，Linux/X11 下用 FreeType，Windows 下用 GDI/DirectWrite 等等。关于这个步骤，typekit 的这篇 <a href="http://blog.typekit.com/2010/10/15/type-rendering-operating-systems/">blog</a> 可以作为参考。各个浏览器的差异主要来自使用的排版引擎可能对不同的语言支持有差异，调用 rasterizer 使用的参数可能有差异 (比如是否启用 subpixel rendering、使用的 hinting 级别等等)，但在同一个操作系统下的效果差别不会很大。</p>

<h4>建议</h4>

<p>基于以上的介绍，可以尝试提出一个在现有浏览器下，针对中文用户的，书写 CSS 字体选择规则的建议，如下：</p>

<ol>
<li>首先确定要选择字体的元素应该使用的字体风格，比如是衬线字体、非衬线字体还是 cursive、fantasy 之类的；</li>
<li>确定了风格之后，先选择西文字体，优先把平台独特的、在该平台下效果更好的字体写上，比如 Mac OS X 下有 Helvetica 也有 Arial，但 Helvetica (可能) 效果更好，Windows 下则一般只有 Arial，那么写 <code>Helvetica, Arial</code> 就比 <code>Arial, Helvetica</code> 或者只有 <code>Arial</code> 更好；</li>
<li>然后列出中文字体，原则相同，多个平台共有的字体应该尽量放在后边，独有的字体放在前面，还需要照顾到 Mac OS X/Linux 下一般用户习惯用(细)黑体作为默认字体，Windows 下习惯以宋体作为默认字体的情况，比如 <code>STXihei, SimSun</code> 这样的写法比较常见，如果写作 <code>SimSun, STXihei</code>，但 Mac OS X 上装了 SimSun 效果就不会太好看。</li>
<li>最后还是应该放上对应的 generic family，比如 <code>sans-serif</code> 或者 <code>serif</code>。</li>
<li>尽量用字体的基本名称 (比如 English locale 下显示的)，而不要用本地化过的名称。除非特殊情况 (Windows 下“某些”浏览器在特定编码下只能支持本地化的字体名称)。Mac OS X 下字体名称可以用 Font Book 查到 (菜单 Preview -> Show Font Info)，Windows 下字体信息在微软的<a href="http://www.microsoft.com/typography/fonts/product.aspx">网站</a>可以得到，Linux/X11 下可以使用 <code>fc-list</code> 命令查到。</li>
<li>字体名称中包含空格时记住用引号扩起，比如 <code>"American Typewritter"</code> 和 <code>"Myriad Pro"</code>。</li>
<li>文档开头最好指明语言，比如 <code>&lt;html lang="zh-CN"&gt;</code>，可以使用的语言标记参见 <a href="http://www.w3.org/International/articles/language-tags/">W3C 的说明</a>。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2011/04/09/how-do-browsers-render-text/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>网页 CJK 竖排的最新进展</title>
		<link>http://blog.jjgod.org/2010/12/28/new-css3-writing-modes/</link>
		<comments>http://blog.jjgod.org/2010/12/28/new-css3-writing-modes/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 15:13:25 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[vertical]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://blog.jjgod.org/?p=732</guid>
		<description><![CDATA[上个月关于 CSS 的一个重要的新闻是 WebKit 开始支持 CJK 竖排 (通过 -webkit-writing-mode)，而且时隔七年之后 (上一个版本还是 2003 年制定的)，W3C 的 CSS 工作组也发布了新的 CSS Writing Mode Level 3 工作草案，和以前的版本有较大的区别，WebKit 现在就是按照这个草案实现的竖排支持，虽然它的实现还不完整。下面简单介绍一下新草案的变化。 在原有草案中，writing-mode 属性是 direction 和 block-flow 属性的合成，你可以交叉地组合这两个属性，构成 writing-mode：比如 lr-tb 表示文字从左到右，块排列从上到下。而在新草案里，block-flow 不再是一个独立的概念，被并入了 writing-mode 中，新的 writing-mode 有以下几种选择： horizontal-tb: 默认情况，从上到下，从左到右的横排书写形式。 vertical-rl: 块按从右到左排列，文字则从上到下，这是典型的直排情况。 vertical-lr: 虽然是竖排，但块则从左到右排列。这主要用于内蒙古使用的蒙古语和满语。 还可以注意到经过讨论，非常少用的从下往上横排书写形式 (horizontal-bt) 被去除了。 保留了 direction 属性，但它和 CSS2.1 中的效果一样，仍然用于控制文本在行内是从左到右还是从右到左书写，以及 Unicode BIDI 双向混合文字的情况。 同时，新增了一个 text-orientation [...]]]></description>
			<content:encoded><![CDATA[<p>上个月关于 CSS 的一个重要的新闻是 <a href="http://blog.timc.idv.tw/posts/han-vertical-writing-in-css3-and-javascript/">WebKit 开始支持 CJK 竖排</a> (通过 <code>-webkit-writing-mode</code>)，而且时隔七年之后 (上一个版本还是 2003 年制定的)，W3C 的 CSS 工作组也发布了新的 <a href="http://www.w3.org/TR/css3-writing-modes/">CSS Writing Mode Level 3 工作草案</a>，和以前的版本有较大的区别，WebKit 现在就是按照这个草案实现的竖排支持，虽然它的实现还不完整。下面简单介绍一下新草案的变化。</p>

<p>在原有草案中，<code>writing-mode</code> 属性是 <code>direction</code> 和 <code>block-flow</code> 属性的合成，你可以交叉地组合这两个属性，构成 <code>writing-mode</code>：比如 <code>lr-tb</code> 表示文字从左到右，块排列从上到下。而在新草案里，<code>block-flow</code> 不再是一个独立的概念，被并入了 <code>writing-mode</code> 中，新的 <code>writing-mode</code> 有以下几种选择：</p>

<ul>
<li><p><code>horizontal-tb</code>: 默认情况，从上到下，从左到右的横排书写形式。
<div class="wp-caption aligncenter" style="width: 229px"><img class="centered" alt="horizontal-tb" src="http://www.w3.org/TR/css3-writing-modes/horizontal.png" title="horizontal-tb" width="219" height="300" /><p class="wp-caption-text">horizontal-tb</p></div></p></li>
<li><p><code>vertical-rl</code>: 块按从右到左排列，文字则从上到下，这是典型的直排情况。
<div class="wp-caption aligncenter" style="width: 307px"><img class="centered" alt="vertical-rl" src="http://www.w3.org/TR/css3-writing-modes/vertical-rl.png" title="vertical-rl" width="297" height="191" /><p class="wp-caption-text">vertical-rl</p></div></p></li>
<li><p><code>vertical-lr</code>: 虽然是竖排，但块则从左到右排列。这主要用于内蒙古使用的<a href="http://zh.wikipedia.org/zh/蒙古语字母">蒙古语</a>和<a href="http://zh.wikipedia.org/zh/满语">满语</a>。
<div class="wp-caption aligncenter" style="width: 310px"><img class="centered" alt="vertical-lr" src="http://www.w3.org/TR/css3-writing-modes/vertical-lr.png" title="vertical-lr" width="300" height="191" /><p class="wp-caption-text">vertical-lr</p></div></p></li>
</ul>

<p>还可以注意到经过讨论，非常少用的从下往上横排书写形式 (<code>horizontal-bt</code>) 被去除了。</p>

<p>保留了 <code>direction</code> 属性，但它和 CSS2.1 中的效果一样，仍然用于控制文本在行内是从左到右还是从右到左书写，以及 Unicode BIDI 双向混合文字的情况。</p>

<p>同时，新增了一个 <code>text-orientation</code> 属性用于控制行内字符的旋转，例如在典型的中文竖排文稿中，拉丁字符应该顺时针旋转 90 度。目前的草案规定了以下这些模式：</p>

<ul>
<li><code>vertical-right</code>: 默认的情况，将非文本语言的字符 (比如汉字中间嵌入的拉丁字符) 顺时针旋转 90 度，其他字符不变。</li>
<li><code>upright</code>: 不旋转上述字符，保持和其他字符一样的方向。(这是目前 WebKit 实现的做法，等于什么都没处理)</li>
<li><code>rotate-right</code>: 把所有字符都顺时针旋转 90 度。</li>
<li><code>rotate-left</code>: 把所有字符都逆时针旋转 90 度。</li>
<li><code>rotate-normal</code>: 在 <code>vertical-rl</code> 书写模式中等于 <code>rotate-right</code>，在 <code>vertical-lr</code> 中等于 <code>rotate-left</code>。</li>
<li><code>auto</code>: 除了对 SVG1 的 glyph orientation mode 支持以外，其他情况下等于 <code>vertical-right</code>。</li>
</ul>

<p>下图中左侧是 <code>vertical-right</code>/<code>auto</code> 的效果，右侧是 <code>upright</code> 的效果：
<img class="centered" alt="" src="http://www.w3.org/TR/css3-writing-modes/vert-latin-layouts.png" title="text-orientation" class="alignnone" width="104" height="205" /></p>

<p>最后，新增了 <code>text-combine</code> 属性用于控制在竖排时同一行内要塞进多个非 CJK 字符的情况，在日文排版中称为“縦中横”。它有两个选择：</p>

<ul>
<li><code>none</code>: 不做特殊处理。</li>
<li><code>horizontal</code>: 在竖排情况下，首先浏览器应该尝试用对应字体中提供的专门的合并后的字形替代，如果没有，则浏览器可以尝试缩小这些字符以适应宽度，或者放弃合并。效果如图：
<div class="wp-caption aligncenter" style="width: 131px"><img class="centered" alt="縦中横" src="http://www.w3.org/TR/css3-writing-modes/tate-chu-yoko.png" title="縦中横" width="121" height="326" /><p class="wp-caption-text">縦中横</p></div></li>
</ul>

<p>不过这个属性目前还很不成熟，仅仅初步把概念规范化了，短期内估计不会有浏览器尝试实现。此外这份草案还没考虑行内割注 (日文中称为 warichu) 的情况：</p>

<div class="wp-caption aligncenter" style="width: 301px"><img alt="割注" src="http://www.w3.org/International/articles/css3-text/images/Slide0190b.gif" title="割注" width="291" height="59" /><p class="wp-caption-text">割注</p></div>

<p>目前在 Mac OS X 下 WebKit 已经完整实现了这一版草案的 <code>writing-mode</code>，大部分的 bug 也都已经扫除 (其他平台的实现情况参见 <a href="http://lists.w3.org/Archives/Public/public-html-ig-zh/2010Dec/0019.html">Koan-Sin Tan 的说明</a>)，但是<a href="https://bugs.webkit.org/show_bug.cgi?id=48540">还没开始实现</a> <code>text-orientation</code>，然而要保证可用的竖排效果，<code>text-orientation</code> 的支持是不可或缺的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2010/12/28/new-css3-writing-modes/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>State of The Art Web Typography</title>
		<link>http://blog.jjgod.org/2010/10/28/web-typography/</link>
		<comments>http://blog.jjgod.org/2010/10/28/web-typography/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 09:39:47 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://blog.jjgod.org/?p=709</guid>
		<description><![CDATA[We have reached the state that Web typography can be much better than it used to be. What kind of tools is in our hands? Hyphenator, with this JavaScript hyphenation support, reading justified text on your browser will no longer be a pain. Knuth and Plass Line Breaking in JavaScript, combining this and Hyphenator then [...]]]></description>
			<content:encoded><![CDATA[<p>We have reached the state that Web typography can be <strong>much</strong> better than it used to be. What kind of tools is in our hands?</p>

<ul>
<li><a href="http://code.google.com/p/hyphenator/">Hyphenator</a>, with this JavaScript hyphenation support, reading justified text on your browser will no longer be a pain.</li>
<li><a href="http://www.bramstein.com/projects/typeset/">Knuth and Plass Line Breaking</a> in JavaScript, combining this and Hyphenator then you will get beautiful typesetting like <a href="http://www.bramstein.com/projects/typeset/flatland/">this sample</a>.</li>
<li><a href="http://www.aestheticallyloyal.com/public/optimize-legibility/">optimizeLegibility</a>, CSS rule <code>text-rendering: optimizeLegibility;</code> will turn on cross browser kerning-pairs &amp; ligatures, which is also critical for good typography. It does have some drawbacks though.</li>
<li>Web fonts solutions like <a href="http://typekit.com/">TypeKit</a> and high quality free web fonts from websites like <a href="http://www.fontsquirrel.com/">Font Squirrel</a>, provided much more vivid user experience than standard web fonts like Verdana and Georgia, but they should be chosen very carefully, otherwise the results can be much worse.</li>
<li><a href="https://developer.mozilla.org/en/CSS/-moz-font-feature-settings">-moz-font-feature-settings</a>, this feature, although it&#8217;s Firefox 4 only, can be very fun to experiment with, since it opens an <a href="http://hacks.mozilla.org/2009/10/font-control-for-designers/">entire new world</a> of rich OpenType typography to the web. Combining this with web fonts solutions can make it even more useful.</li>
<li><a href="http://maxvoltar.com/archive/-webkit-font-smoothing">-webkit-font-smoothing</a>, when used in a clever way, can improve legibility (and some designers prefer grayscale antialiasing to subpixel antialiasing, that&#8217;s why it&#8217;s so popular nowadays). Unfortunately there are many existing websites abusing this CSS rule, including <a href="http://www.apple.com">Apple</a> and <a href="http://www.twitter.com">Twitter</a>. In general, I suggest leaving it alone unless it&#8217;s absolutely necessary.</li>
<li><a href="http://daringfireball.net/projects/smartypants/">SmartyPants</a> will convert ugly quotes, dashes and consecutive dots into beautiful punctuations that you really meant to use. It saves a lot of editing efforts.</li>
<li><a href="http://www.mathjax.org/">MathJax</a>, the only weakness of web typography comparing to <a href="http://en.wikipedia.org/wiki/TeX">TeX</a> is math equations, MathJax is so good that it totally eliminated this weakness.</li>
</ul>

<p>Think about it: what if we create an automatic web typesetting tool, combining all these efforts, how beautiful the result we will get? That&#8217;s what I am trying to do recently.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2010/10/28/web-typography/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web 字体的出路在哪里？</title>
		<link>http://blog.jjgod.org/2009/04/22/web-fonts/</link>
		<comments>http://blog.jjgod.org/2009/04/22/web-fonts/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 08:59:03 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[fonts]]></category>

		<guid isPermaLink="false">http://blog.jjgod.org/?p=407</guid>
		<description><![CDATA[浏览器直接可用的 Web 字体在去年被重新提起，可是没过一段时间就沉寂下去，最近一期 A List Apart 上 Jeffrey Zeldman 采访 David Berlow 的这篇 Real Fonts on the Web 又引起了新一轮的讨论，这里摘录一些有趣的话。 David Berlow: How important dynamically rendered type is to design and use on the web must now be clear. In addition, the only other option—that the type industry cede its intellectual property to the public without [...]]]></description>
			<content:encoded><![CDATA[<p>浏览器直接可用的 Web 字体在去年被重新提起，可是没过一段时间就沉寂下去，最近一期 <a href="http://www.alistapart.com/">A List Apart</a> 上 Jeffrey Zeldman 采访 David Berlow 的这篇 <a href="http://www.alistapart.com/articles/realfontsontheweb">Real Fonts on the Web</a> 又引起了新一轮的讨论，这里摘录一些有趣的话。</p>

<p>David Berlow:</p>

<blockquote>
  <p>How important dynamically rendered type is to design and use on the web must now be clear. In addition, the only other option—that the type industry cede its intellectual property to the public without permission—is not going to happen.</p>
</blockquote>

<p><a href="http://talleming.com/2009/04/21/web-fonts/">Tal Leming</a>:</p>

<blockquote>
  <p>There should be a new file extension for this. I propose “.wtf” &#8211; “WebType Font”.</p>
</blockquote>

<p><a href="http://diveintomark.org/archives/2009/04/21/fuck-the-foundries">Mark Pilgrim</a>:</p>

<blockquote>
  <p>&#8230; What he fails to mention is that <em>every font-consuming application on every platform on every computer on Earth</em> will need to be “upgraded” to “respect” this permissions table. Because otherwise they’re not really permissions, are they? They’re just useless bits taking valuable chunks out of my metered bandwidth plan. Like the <a href="http://en.wikipedia.org/wiki/Bozo_bit">bozo bit</a> without the bozo.</p>
</blockquote>

<p><a href="http://www.typography.com/">Jonathan Hoefler</a>:</p>

<blockquote>
  <p>All of the type designers I know desperately want to find a way to enable people to use fonts online, and not just because we’re capitalist stooges, but because we live our lives online.</p>
</blockquote>

<p><a href="http://www.schneier.com/crypto-gram-0108.html#7">Bruce Schneier</a>:</p>

<blockquote>
  <p>Truth be told, I don’t know. I feel rather like the physicist who just explained relativity to a group of would-be interstellar travelers, only to be asked: ‘How do you expect us to get to the stars, then?’ I’m sorry, but I don’t know that, either.</p>
</blockquote>

<p>总结起来，未来还是很黑暗。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2009/04/22/web-fonts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Markdown 的一点翻译</title>
		<link>http://blog.jjgod.org/2006/03/13/translate-markdown/</link>
		<comments>http://blog.jjgod.org/2006/03/13/translate-markdown/#comments</comments>
		<pubDate>Mon, 13 Mar 2006 15:01:46 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2006/03/13/translate-markdown/</guid>
		<description><![CDATA[Markdown 是 John Gruber 精心设计的一套文本标记系统，由 Michel Fortin 转换到 PHP 并提供了 WordPress 的插件。这两天抽空翻译了一下 Markdown 的基本功能以备学习。感谢 hlb 的指点，我想下面要做的大概是翻译完整的 syntax 文件和 PHP Markdown 的扩展功能。此外，MultiMarkdown 也是个有趣的东西。 噢对了，翻译后的文件在这儿。]]></description>
			<content:encoded><![CDATA[<p>Markdown 是 John Gruber 精心设计的一套文本标记系统，由 Michel Fortin 转换到 PHP 并提供了 WordPress 的插件。这两天抽空翻译了一下 <a href="http://daringfireball.net/projects/markdown/" title="Markdown">Markdown</a> 的<a href="http://daringfireball.net/projects/markdown/basics" title="Markdown Basics">基本功能</a>以备学习。感谢 <a href="http://hlb.yichi.org/blog" title="布丁长辈的 blog">hlb</a> 的指点，我想下面要做的大概是翻译完整的 <a href="http://daringfireball.net/projects/markdown/syntax" title="Markdown Syntax">syntax</a> 文件和 PHP Markdown 的<a href="http://www.michelf.com/projects/php-markdown/extra/" title="PHP Markdown Extra">扩展</a>功能。此外，<a href="http://fletcher.freeshell.org/wiki/MultiMarkdown" title="MultiMarkdown">MultiMarkdown</a> 也是个有趣的东西。</p>

<p>噢对了，翻译后的文件在<a href="http://opencjk.org/~jjgod/document/markdown/basics.php">这儿</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2006/03/13/translate-markdown/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>pt, px, DPI: 关于长度单位的误解</title>
		<link>http://blog.jjgod.org/2006/02/24/misleading-length-unit/</link>
		<comments>http://blog.jjgod.org/2006/02/24/misleading-length-unit/#comments</comments>
		<pubDate>Thu, 23 Feb 2006 23:51:05 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2006/02/24/misleading-length-unit/</guid>
		<description><![CDATA[在印刷排版中，“point”是一个绝对的单位，它等于 1/72 英寸，可以用尺子丈量的，物理的英寸。但在 CSS 中 pt 的含义却非如此，例如我们指定一个字体是 9pt，我们会以为按照 CSS 规范，它等于： 9 * 1/72 = 1/8 inch 这是一个误解，因为我们的显示器被分割为了一个个的像素，单个像素只能有一种颜色 (为了简化，这里暂不讨论次像素反锯齿技术)，要在屏幕上显示，必须先把以 pt 为单位的长度转换为以像素为单位的长度，这个转换的媒介，就是 DPI (事实上，这里的所谓的 DPI，是操作系统和浏览器中使用的术语，即为 PPI, pixels per inch，和扫描仪、打印机、数码相机中的 DPI 是不同的概念)。 例如，无论在哪个操作系统中，Firefox 浏览器默认的 DPI 都是 96，那么实际上 9pt = 9 * 1/72 * 96 = 12px。 所以，虽然“DPI”中的“I”和“1pt 等于 1/72 inch”中的“inch”，都不代表物理上的英寸，但这两个单位互相之间是相等的，也就在相乘中约掉了。 那么，真实的物理长度怎么计算呢？请拿出一把尺子，丈量你的显示器的可见宽度 (我这里是 11.2992 英寸)，除以横向分辨率 (我这里是 1024 像素)，得到的就是每个像素的物理长度。 现在我们可以回答这样一个问题，网页上 [...]]]></description>
			<content:encoded><![CDATA[<p>在印刷排版中，“point”是一个绝对的单位，它等于 1/72 英寸，可以用尺子丈量的，物理的英寸。但在 CSS 中 pt 的含义却非如此，例如我们指定一个字体是 9pt，我们会以为按照 <a href="http://www.w3.org/TR/CSS21/syndata.html#length-units">CSS 规范</a>，它等于：</p>

<p>9 * 1/72 = 1/8 inch</p>

<p>这是一个误解，因为我们的显示器被分割为了一个个的像素，单个像素只能有一种颜色 (为了简化，这里暂不讨论次像素反锯齿技术)，要在屏幕上显示，必须先把以 pt 为单位的长度转换为以像素为单位的长度，这个转换的媒介，就是 DPI (事实上，这里的所谓的 DPI，是操作系统和浏览器中使用的术语，即为 PPI, pixels per inch，和扫描仪、打印机、数码相机中的 DPI 是不同的概念)。</p>

<p>例如，无论在哪个操作系统中，Firefox 浏览器默认的 DPI 都是 96，那么实际上 9pt = 9 * 1/72 * 96 = 12px。</p>

<p>所以，虽然“DPI”中的“I”和“1pt 等于 1/72 inch”中的“inch”，都不代表物理上的英寸，但这两个单位互相之间是相等的，也就在相乘中约掉了。</p>

<p>那么，真实的物理长度怎么计算呢？请拿出一把尺子，丈量你的显示器的可见宽度 (我这里是 11.2992 英寸)，除以横向分辨率 (我这里是 1024 像素)，得到的就是每个像素的物理长度。</p>

<p>现在我们可以回答这样一个问题，网页上 9pt 的字体究竟占用了多宽的空间？答案是：</p>

<p>9 * 1/72 * 96 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米。</p>

<p>有兴趣的朋友可以自己查证一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2006/02/24/misleading-length-unit/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>说说 Prince</title>
		<link>http://blog.jjgod.org/2006/01/29/%cb%b5%cb%b5-prince/</link>
		<comments>http://blog.jjgod.org/2006/01/29/%cb%b5%cb%b5-prince/#comments</comments>
		<pubDate>Sun, 29 Jan 2006 10:13:31 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2006/01/29/%cb%b5%cb%b5-prince/</guid>
		<description><![CDATA[其实在 ALA 上 Printing a Book with CSS: Boom! 这篇文章出现的时候就想写篇文章说说这个东西了，拖到现在实在有点不好意思。 简单的说，Prince (可能这个网站在国内被封禁了) 是这么个工具，你可以在用简单的 (X)HTML 和 CSS 来描述自己的文档之后，把它转换成适合打印的 PDF。 乍看起来，Prince 是一个近乎完美的工具，优秀的 CSS 支持——它甚至已经 Pass 了 Acid 2，支持透明 PNG，能够自动探测并支持 HTML 和 XML 格式，对 CSS 3 Page Media 的创新性实现，Prince 对非营利的学术使用是免费的……等等。CSS 的创始者，Bert Bos 和 H&#229;kon Wium Lie 已经用这种方式完成了一本书。 那是不是它就没有缺陷了呢？正相反，缺陷也同样明显——对基本的印刷排版的支持还是太少，毕竟 CSS 相比书面排版，已经是一个简化而又简化的模型了，最大的问题是缺乏自动断字 (hyphening)，如果不能断字，左右对齐 (justify) 的文本中每个单词之间就会有过大的间隙，这是印刷排版中最致命的地方。(顺便说说，TeX 中最有趣的一个算法就是创新的断行算法，当时为了看这个算法专门复印了 70 来页的论文，555..) 此外还有边界出血、色彩使用等许多问题，导致 ALA [...]]]></description>
			<content:encoded><![CDATA[<p><a id="p109" rel="attachment" class="imagelink" href="http://jjgod.3322.org/2006/01/29/%cb%b5%cb%b5-prince/prince-uaoedhdh/" title="Prince 的运行"><img id="image109" src="http://jjgod.3322.org/wp-content/uploads/2006/01/Prince-1.png" alt="Prince 的运行" height="96" width="123" /></a></p>

<p>其实在 <a href="http://www.alistapart.com">ALA</a> 上 <a href="http://www.alistapart.com/articles/boom">Printing a Book with CSS: Boom!</a> 这篇文章出现的时候就想写篇文章说说这个东西了，拖到现在实在有点不好意思。</p>

<p>简单的说，<a href="http://www.princexml.com">Prince</a> (可能这个网站在国内被封禁了) 是这么个工具，你可以在用简单的 (X)HTML 和 CSS 来描述自己的文档之后，把它转换成适合打印的 PDF。</p>

<p>乍看起来，Prince 是一个近乎完美的工具，优秀的 CSS 支持——它甚至已经 Pass 了 Acid 2，支持透明 PNG，能够自动探测并支持 HTML 和 XML 格式，对 CSS 3 Page Media 的创新性实现，Prince 对非营利的学术使用是免费的……等等。CSS 的创始者，Bert Bos 和 H&#229;kon Wium Lie 已经用这种方式完成了一本书。</p>

<p>那是不是它就没有缺陷了呢？正相反，缺陷也同样明显——对基本的印刷排版的支持还是太少，毕竟 CSS 相比书面排版，已经是一个简化而又简化的模型了，最大的问题是缺乏自动断字 (hyphening)，如果不能断字，左右对齐 (justify) 的文本中每个单词之间就会有过大的间隙，这是印刷排版中最致命的地方。(顺便说说，TeX 中最有趣的一个算法就是创新的断行算法，当时为了看这个算法专门复印了 70 来页的论文，555..)</p>

<p>此外还有边界出血、色彩使用等许多问题，导致 ALA 上这篇文章的评论中纷纷表示“Not the right tool”。但作者的看法也有其道理：你可以创建这样的书，在支持绝大多数浏览器阅读的情况下，还有能力转换成 PDF 供纸上阅读，不是很方便的吗？对于不愿意深入了解 LaTeX 或其他专业排版工具的 CSS 专家们来说，这也是很趁手的工具，就像大家喜欢使用 S5 这样的幻灯片制作工具而宁愿放弃 PowerPoint 这样的专门工具一样。</p>

<p>总结起来，Prince 是两位 CSS 创始人作的非常有趣的尝试，它在易用性上已经远远超过 DocBook &#8211; XSL-FO &#8211; FOP 这种传统的由 XML 生成 PDF 的过程，虽然现在还不能和 TeX 的效果相比，假以时日，排版的效果必会更加出色。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2006/01/29/%cb%b5%cb%b5-prince/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS 分栏</title>
		<link>http://blog.jjgod.org/2005/10/05/css-multicols/</link>
		<comments>http://blog.jjgod.org/2005/10/05/css-multicols/#comments</comments>
		<pubDate>Wed, 05 Oct 2005 13:35:02 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/?p=93</guid>
		<description><![CDATA[在 9 月发布的 Firefox Beta 1 中我们已经可以看到 CSS3 分栏模式的部分支持，最近一期的 ALA 上 Cédric Savarese 介绍了他用 JavaScript 实现的分栏模式，尽管在屏幕上实现分栏是危险的，但也不失为一个选择。]]></description>
			<content:encoded><![CDATA[<p>在 9 月发布的 <a href="http://developer.mozilla.org/en/docs/CSS3_Columns">Firefox Beta 1</a> 中我们已经可以看到 CSS3 分栏模式的<a href="http://weblogs.mozillazine.org/roc/archives/2005/03/gecko_18_for_we.html">部分支持</a>，最近一期的 ALA 上 Cédric Savarese <a href="http://www.alistapart.com/articles/css3multicolumn">介绍</a>了他用 JavaScript 实现的<a href="http://www.csscripting.com/css-multi-column/">分栏模式</a>，尽管在屏幕上实现分栏是危险的，但也不失为一个选择。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2005/10/05/css-multicols/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>w3c&#8217;s presentations</title>
		<link>http://blog.jjgod.org/2005/08/07/w3cs-presentations/</link>
		<comments>http://blog.jjgod.org/2005/08/07/w3cs-presentations/#comments</comments>
		<pubDate>Sat, 06 Aug 2005 17:44:32 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2005/08/07/w3cs-presentations/</guid>
		<description><![CDATA[W3C 的东西太学究，估计大家都不喜欢，但世上有一物名幻灯片，特点是简洁明了，大家想必都不讨厌——此物最适合一个学期没看书，临时抱佛脚的偶们。 w3c 近期的一些 presentation，多为介绍技术的趋势，宣讲一些大家平时不大注意的东西，我选了几个不太酸的，有时间不妨看看： Tutorial: Ruby Markup and Styling, Ruby 标记的使用教程，International 工作组刚刚提供的一个教程，这个东西和汉语的关系也比较大，加上实用性较高，可以了解一下。 The device-independent browser: CSS and grid layout, 副标题叫做“CSS 布局的过去、现在与未来”，演讲者是 CSS 的创建者之一 Bert Bos，核心是介绍 CSS3 中的网格式布局 (grid layout) 方式。 An Introduction to Writing Systems, 多种书写系统的异同，及其带来的问题。这个演讲比较长，不过对东亚、拉丁、阿拉伯等各种书写系统在 Web 上的呈现有比较详尽叙述，也涉及一些 Unicode 的内容，与此有兴趣的朋友可以读读。 XHTML &#38; XForms, 这个演讲主要是介绍下一代的 XHTML 在语义表达方面的改进。]]></description>
			<content:encoded><![CDATA[<p><a href="http://w3.org">W3C</a> 的东西太学究，估计大家都不喜欢，但世上有一物名幻灯片，特点是简洁明了，大家想必都不讨厌——此物最适合一个学期没看书，临时抱佛脚的偶们。</p>

<p>w3c 近期的一些 presentation，多为介绍技术的趋势，宣讲一些大家平时不大注意的东西，我选了几个不太酸的，有时间不妨看看：</p>

<ul>
<li><a href="http://www.w3.org/International/tutorials/ruby/">Tutorial: Ruby Markup and Styling</a>, Ruby 标记的使用教程，International 工作组刚刚提供的一个教程，这个东西和汉语的关系也比较大，加上实用性较高，可以了解一下。</li>
<li><a href="http://www.w3.org/Talks/2005/0513-CSS-WWW2005/all.htm">The device-independent browser: CSS and grid layout</a>, 副标题叫做“CSS 布局的过去、现在与未来”，演讲者是 CSS 的创建者之一 Bert Bos，核心是介绍 CSS3 中的网格式布局 (grid layout) 方式。</li>
<li><a href="http://people.w3.org/rishida/scripts/tutorial/Overview.html">An Introduction to Writing Systems</a>, 多种书写系统的异同，及其带来的问题。这个演讲比较长，不过对东亚、拉丁、阿拉伯等各种书写系统在 Web 上的呈现有比较详尽叙述，也涉及一些 Unicode 的内容，与此有兴趣的朋友可以读读。</li>
<li><a href="http://www.w3.org/2005/Talks/10-03-steven-XHTML2-XForms/">XHTML &amp; XForms</a>, 这个演讲主要是介绍下一代的 XHTML 在语义表达方面的改进。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2005/08/07/w3cs-presentations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Recent News</title>
		<link>http://blog.jjgod.org/2004/12/12/recent-news/</link>
		<comments>http://blog.jjgod.org/2004/12/12/recent-news/#comments</comments>
		<pubDate>Sun, 12 Dec 2004 07:53:46 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM | Scripting]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2004/12/12/recent-news/</guid>
		<description><![CDATA[临近半个学期一度的考期，blog 的频率不得不降下来，好几天没上网，确实也出现了不少新的东西。 定位总是一个热门话题，近来，Tommy 的两篇文章：Relatively Absolute 和 Float Layouts 相信能给你一点启发。 Marek 的 CSS Workshop，介绍关于 CSS 的有趣实践，比如纯粹用 CSS 做一个 W3C 的验证标志，给水平线 &#60;hr /&#62; 设定样式等。 Roger 的 Quotations and citations: quoting text 是关于如何正确地在 (X)HTML 中引用别人的文本的一篇解释性文章，而他的 The alt and title attributes 则是就 alt 和 title 属性的正确使用这个老话题而写的。Dave Shea 说得不错，Roger 完全可以就如何正确使用标记写本书了。 最近一期 ALA 的 Invasion of the Body Switchers 是先前流行的 Paul [...]]]></description>
			<content:encoded><![CDATA[<p>临近半个学期一度的考期，blog 的频率不得不降下来，好几天没上网，确实也出现了不少新的东西。</p>

<p>定位总是一个热门话题，近来，Tommy 的两篇文章：<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/07/relatively-absolute">Relatively Absolute</a> 和 <a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating">Float Layouts</a> 相信能给你一点启发。</p>

<p>Marek 的 <a href="http://www.sovavsiti.cz/css/">CSS Workshop</a>，介绍关于 CSS 的有趣实践，比如纯粹用 CSS 做一个 W3C 的验证标志，给水平线 <code>&lt;hr /&gt;</code> 设定样式等。</p>

<p>Roger 的 <a href="http://www.456bereastreet.com/archive/200411/quotations_and_citations_quoting_text/">Quotations and citations: quoting text</a> 是关于如何正确地在 (X)HTML 中引用别人的文本的一篇解释性文章，而他的 <a href="http://www.456bereastreet.com/archive/200412/the_alt_and_title_attributes/">The alt and title attributes</a> 则是就 <code>alt</code> 和 <code>title</code> 属性的正确使用这个老话题而写的。Dave Shea 说得不错，Roger 完全可以就如何正确使用标记写本书了。</p>

<p>最近一期 ALA 的 <a href="http://www.alistapart.com/articles/bodyswitchers">Invasion of the Body Switchers</a> 是先前流行的 Paul Sowden  版本样式表切换器的一个更新版本，更关心与亲和力方面的应用。</p>

<p>来自 Mozilla 方面的消息，则是 <a href="http://www.mozilla.org/products/thunderbird/releases/">Thunderbird</a> 和 <a href="http://www.nvu.com/">Nvu</a> 分别发布了 1.0 版本和 0.6 版本，不过似乎 nvu 还没有成为 mozilla 的 HTML 编辑器的下一代版本，或许它更愿意作为一个独立软件提供？</p>

<p>时间有限，不得不在这里打住。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2004/12/12/recent-news/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

