<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[HTML - 99css]]></title><description><![CDATA[HTML - 99css]]></description><link>https://www.99css.com/</link><image><url>https://www.99css.com/favicon.png</url><title>HTML - 99css</title><link>https://www.99css.com/</link></image><generator>Ghost 3.21</generator><lastBuildDate>Mon, 18 May 2026 23:50:23 GMT</lastBuildDate><atom:link href="https://www.99css.com/tag/html/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[[观点] H5 是个好名字]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>好久没写文章了，以我的性格也并不想参与这些「口水战」，今天我决定挑战下自己，把水搅浑。</p>
<p>在国内，HTML5 被简称为 「H5」，这却引起了一些人的不满，他们绝大部分是开发人员。下面我们来看看简化的优缺点：</p>
<h2 id>优点</h2>
<ol>
<li>便于沟通</li>
</ol>
<p>首先，读起来顺口，而 H T M L 读完舌头都要打结了，你造一群人在会议室里影响唇枪舌战 PK 时这么口吃般的说话多影响气势不？</p>
<p>其次，方便与人交流，从 BOSS 到产品经理、PM、设计师，一提到「H5」，他们脑子里立马能浮现一打微信里的营销页面--没有版权的背景音乐、不知道什么时候能划到头的翻页（有时候你可以试试倒着划），你要知道以前跟他们讲明白前端、后端、PHP、数据库什么的是有多么困难！</p>
<ol start="2">
<li>有利于 HTML5 的普及</li>
</ol>
<p>想想看，等卖面膜的妹纸们都要搞「H5」营销了，乃们离脱单的日子也就不远了</p>
<h2 id>缺点</h2>]]></description><link>https://www.99css.com/why-h5-is-a-good-name/</link><guid isPermaLink="false">6983728c0b74c7000133aef6</guid><category><![CDATA[HTML]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 07 Jul 2015 07:31:02 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>好久没写文章了，以我的性格也并不想参与这些「口水战」，今天我决定挑战下自己，把水搅浑。</p>
<p>在国内，HTML5 被简称为 「H5」，这却引起了一些人的不满，他们绝大部分是开发人员。下面我们来看看简化的优缺点：</p>
<h2 id>优点</h2>
<ol>
<li>便于沟通</li>
</ol>
<p>首先，读起来顺口，而 H T M L 读完舌头都要打结了，你造一群人在会议室里影响唇枪舌战 PK 时这么口吃般的说话多影响气势不？</p>
<p>其次，方便与人交流，从 BOSS 到产品经理、PM、设计师，一提到「H5」，他们脑子里立马能浮现一打微信里的营销页面--没有版权的背景音乐、不知道什么时候能划到头的翻页（有时候你可以试试倒着划），你要知道以前跟他们讲明白前端、后端、PHP、数据库什么的是有多么困难！</p>
<ol start="2">
<li>有利于 HTML5 的普及</li>
</ol>
<p>想想看，等卖面膜的妹纸们都要搞「H5」营销了，乃们离脱单的日子也就不远了</p>
<h2 id>缺点</h2>
<p>目前我想到的只有一个，会被一小撮开发人员鄙视，然并卵。为什么你能安心用着「然并卵」却在这里鄙视「H5」？</p>
<h2 id>鄙视的根源</h2>
<p>「H5」进入了他们的「鄙视链」，而「鄙视链」形成的原因是追求「优越感」，奥地利心理学家A·阿德勒认为：</p>
<blockquote>
<p>人的总目标是追求「优越性」，是要摆脱自卑感以求得到优越感。</p>
</blockquote>
<p>现在，知道我为什么写这篇文章了吧。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Google Fonts 中文字体在 Safari 中的显示 Bug]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="nginxgooglefonts">Nginx 反向代理 Google Fonts 以便国内访问</h2>
<p><a href="https://github.com/TryGhost/Ghost">Ghost</a> 博客系统的默认皮肤使用了 Google Fonts，由于被墙，所以采用了 Nginx 反向代理的方法来让国内访问，fons.99css.com.conf 配置如下：</p>
<pre><code>upstream google {
    server fonts.googleapis.com:80;
}

upstream gstatic {
    server fonts.gstatic.com:80;
}

server {
    listen 80;

    server_name fonts.99css.com;
    valid_referers server_name *.99css.com 99css.com; # 限制引用的域名。如果你想要做公益服务，</code></pre>]]></description><link>https://www.99css.com/chinese-g-fonts-bug-in-safari/</link><guid isPermaLink="false">6983728c0b74c7000133aeee</guid><category><![CDATA[Bug]]></category><category><![CDATA[HTML]]></category><category><![CDATA[Ghost]]></category><category><![CDATA[Google Fonts]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 10 Feb 2015 05:24:24 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="nginxgooglefonts">Nginx 反向代理 Google Fonts 以便国内访问</h2>
<p><a href="https://github.com/TryGhost/Ghost">Ghost</a> 博客系统的默认皮肤使用了 Google Fonts，由于被墙，所以采用了 Nginx 反向代理的方法来让国内访问，fons.99css.com.conf 配置如下：</p>
<pre><code>upstream google {
    server fonts.googleapis.com:80;
}

upstream gstatic {
    server fonts.gstatic.com:80;
}

server {
    listen 80;

    server_name fonts.99css.com;
    valid_referers server_name *.99css.com 99css.com; # 限制引用的域名。如果你想要做公益服务，可以将此行和下方的#if ($invalid_referer) {...}去掉。
    if ($invalid_referer) {
        return 404;
    }

    location /css {
        sub_filter 'fonts.gstatic.com' 'fonts.99css.com';
        sub_filter_once off;
        sub_filter_types text/css;
        proxy_pass_header Server;
        proxy_set_header Host fonts.googleapis.com;
        proxy_set_header Accept-Encoding '';
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://google;

        expires 7d;
        add_header Pragma public;
        access_log off;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host fonts.gstatic.com;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://gstatic;
    }
}
</code></pre>
<p>之后头部调用时改为自己的域名即可</p>
<pre><code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;//fonts.99css.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400&quot; /&gt;
</code></pre>
<h2 id="bug">中文字体显示 Bug</h2>
<p>刚说完苹果的坏话，报应就来了，刚才<a href="https://www.99css.com/why-apple-software-sucks/">这篇文章</a>在 Safari 中不堪入目</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1423545060/safari-bug_rtbyep.png" alt></p>
<p>Blockquote 中的斜体中文像 SJ 后的丁丁一样，怎么重振雄风呢？</p>
<p>解决方法就是指定页面语言为中文</p>
<pre><code>&lt;html&gt;
</code></pre>
<p>改为</p>
<pre><code>&lt;html lang=&quot;zh-CN&quot;&gt;
</code></pre>
<p>在 Ghost 目录中，找到这个文件 <code>/content/themes/casper/defaults.hbs</code> 进行上述修改，之后重启 Ghost 即可，正常显示如下：<br>
<img src="http://res.cloudinary.com/for99css/image/upload/v1423545060/safari_kwi5hv.png" alt></p>
<p>参考链接：</p>
<ul>
<li><a href="https://hjc.im/google-fonts-reverse-proxy/">https://hjc.im/google-fonts-reverse-proxy/</a></li>
<li><a href="http://www.keakon.net/2010/12/02/%E8%A7%A3%E5%86%B3Opera%E5%92%8CSafari%E4%B8%8B%E9%9A%BE%E7%9C%8B%E7%9A%84%E4%B8%AD%E6%96%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98">http://www.keakon.net/2010/12/02/解决Opera和Safari下难看的中文显示问题</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[HTML5 中的块级链接]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>英文叫做 “Block-level” links，我以为只有我厂那些鸟毛不知道，没想到不知道的还挺多，需要普及一下。</p>
<p>最近看了 kejun 的 PPT <a href="http://www.slideshare.net/kejun/ss-9015786">前端开发理论热点面对面：从怎么看，到怎么做？</a>，p21 引用了 <a href="http://line25.com/articles/10-html-tag-crimes-you-really-shouldnt-commit">10 HTML Tag Crimes You Really Shouldn’t Commit</a> 中的一条：</p>
<p><img src="http://line25.com/wp-content/uploads/2009/html-crimes/inline-block.png" alt></p>
<p>很遗憾，Web 标准中处处充满了打脸行为，这条规则现在已经失效了！在那篇文章发布一个月后，HTML5doctor 发表了 <a href="http://html5doctor.com/block-level-links-in-html-5/">“Block-level” links in HTML5</a>，引述一下，就是原先你要这么写：</p>
<pre><code>&lt;div class=&quot;story&quot;&gt;
&lt;h3&gt;&lt;a</code></pre>]]></description><link>https://www.99css.com/1442/</link><guid isPermaLink="false">6983728c0b74c7000133aecf</guid><category><![CDATA[HTML]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Mon, 15 Jul 2013 11:07:20 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>英文叫做 “Block-level” links，我以为只有我厂那些鸟毛不知道，没想到不知道的还挺多，需要普及一下。</p>
<p>最近看了 kejun 的 PPT <a href="http://www.slideshare.net/kejun/ss-9015786">前端开发理论热点面对面：从怎么看，到怎么做？</a>，p21 引用了 <a href="http://line25.com/articles/10-html-tag-crimes-you-really-shouldnt-commit">10 HTML Tag Crimes You Really Shouldn’t Commit</a> 中的一条：</p>
<p><img src="http://line25.com/wp-content/uploads/2009/html-crimes/inline-block.png" alt></p>
<p>很遗憾，Web 标准中处处充满了打脸行为，这条规则现在已经失效了！在那篇文章发布一个月后，HTML5doctor 发表了 <a href="http://html5doctor.com/block-level-links-in-html-5/">“Block-level” links in HTML5</a>，引述一下，就是原先你要这么写：</p>
<pre><code>&lt;div class=&quot;story&quot;&gt;
&lt;h3&gt;&lt;a href=&quot;story1.html&quot;&gt;Bruce Lawson voted sexiest man on Earth&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;story1.html&quot;&gt;&lt;img src=&quot;bruce.jpg&quot; alt=&quot;full story. &quot; /&gt;A congress representing all the planet's women unanimously voted Bruce Lawson as sexiest man alive.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;story1.html&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</code></pre>
<p>现在 HTML5 中可以这么写</p>
<pre><code>&lt;article&gt;
&lt;a href=&quot;story1.html&quot;&gt;
&lt;h3&gt;Bruce Lawson voted sexiest man on Earth&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;bruce.jpg&quot; alt=&quot;gorgeous lovebundle. &quot;&gt;A congress representing all the planet's women unanimously voted Bruce Lawson as sexiest man alive.&lt;/p&gt;
&lt;p&gt;Read more&lt;/p&gt;
&lt;/a&gt;
&lt;/article&gt;
</code></pre>
<p>从无障碍角度考虑仅仅增加了图片的 alt 描述文字（为读屏用户提供更详细的信息），而不需人为的制造辣么多个“冗余”的 a！HTML5 的思想中的一条就是务实，用现在的话说就是接地气，嗯哼~</p>
<p>虽然这种写法不向前兼容，但经过 HTML5 doctor 的<a href="http://www.brucelawson.co.uk/tests/anchors-wrapping-blocks.htm">测试</a>表明，主流浏览器都支持，也就是说：</p>
<p><strong>你和你的小伙伴们现在就可以在项目中使用啦！</strong></p>
<p>为了兼容 IE6/7 的手型 bug，需要在 reset.css 中加入诸如这样的代码：</p>
<p><code>a div, a h3, a p, ...{#cursor:hand}</code></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[HTML5]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419172693/File-id_ddrrtxb_1889tqt5d4cv_b_csckeq.png" alt></p>
<p>via <a href="http://www.slideshare.net/chillnc/html5-4237315">Html5</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://www.99css.com/504/</link><guid isPermaLink="false">6983728c0b74c7000133ae85</guid><category><![CDATA[HTML]]></category><category><![CDATA[看图]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 23 May 2010 18:14:52 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419172693/File-id_ddrrtxb_1889tqt5d4cv_b_csckeq.png" alt></p>
<p>via <a href="http://www.slideshare.net/chillnc/html5-4237315">Html5</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[IE8 X-UA-Compatible 失效？]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>现在维护的项目中使用了</p>
<pre><code>&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=EmulateIE7&quot; &gt;
</code></pre>
<p>来把IE8带入IE7标准，今天测试提出一个IE8下的小BUG，简单分析了一下，发现浏览器始终为IE8标准，并未切换到IE7标准（F12调出开发工具，文本模式自动勾选在IE8标准）</p>
<p>翻了下MSDN《<a href="http://msdn.microsoft.com/zh-cn/library/cc288325(VS.85).aspx">定义文档兼容性</a>》，里面有这么一句：</p>
<blockquote>
<p>X-UA-compatible 标头不区分大小写；不过，它必须显示在网页中除 <a href="http://msdn.microsoft.com/library/ms535910.aspx">title</a> 元素和其他 meta 元素以外的所有其他元素之前的标头（<a href="http://msdn.microsoft.com/library/ms535252.aspx">HEAD 节（可能为英文网页）</a>）中。</p>
</blockquote>
<p>MSDN有机器翻译的传统，再看下<a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">英文版</a>：</p>
<blockquote>
<p>The X-UA-compatible header is not case sensitive; however, it must appear in</p></blockquote>]]></description><link>https://www.99css.com/463/</link><guid isPermaLink="false">6983728c0b74c7000133ae80</guid><category><![CDATA[HTML]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Thu, 08 Apr 2010 23:51:37 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>现在维护的项目中使用了</p>
<pre><code>&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=EmulateIE7&quot; &gt;
</code></pre>
<p>来把IE8带入IE7标准，今天测试提出一个IE8下的小BUG，简单分析了一下，发现浏览器始终为IE8标准，并未切换到IE7标准（F12调出开发工具，文本模式自动勾选在IE8标准）</p>
<p>翻了下MSDN《<a href="http://msdn.microsoft.com/zh-cn/library/cc288325(VS.85).aspx">定义文档兼容性</a>》，里面有这么一句：</p>
<blockquote>
<p>X-UA-compatible 标头不区分大小写；不过，它必须显示在网页中除 <a href="http://msdn.microsoft.com/library/ms535910.aspx">title</a> 元素和其他 meta 元素以外的所有其他元素之前的标头（<a href="http://msdn.microsoft.com/library/ms535252.aspx">HEAD 节（可能为英文网页）</a>）中。</p>
</blockquote>
<p>MSDN有机器翻译的传统，再看下<a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">英文版</a>：</p>
<blockquote>
<p>The X-UA-compatible header is not case sensitive; however, it must appear in the Web page’s header (the <a href="http://msdn.microsoft.com/en-us/library/ms535252(v=VS.85).aspx">HEAD section</a>) before all other elements, except for the <a href="http://msdn.microsoft.com/en-us/library/ms535910(v=VS.85).aspx">title</a> element and other <strong>meta</strong>elements.</p>
</blockquote>
<p>而项目中是：</p>
<pre><code>&lt;head&gt;
&lt;script ...
&lt;link href=&quot;xxx.css&quot; ...
&lt;meta ...
</code></pre>
<p>杯具就这么发生了…</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Determining IE8's Document Mode]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419173078/File-id_ddrrtxb_1801f9vv7tc5_b_ovgmcx.png" alt></p>
<p>via <a href="http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx">How IE8 Determines Document Mode</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://www.99css.com/422/</link><guid isPermaLink="false">6983728c0b74c7000133ae7c</guid><category><![CDATA[HTML]]></category><category><![CDATA[看图]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Wed, 03 Mar 2010 09:54:30 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419173078/File-id_ddrrtxb_1801f9vv7tc5_b_ovgmcx.png" alt></p>
<p>via <a href="http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx">How IE8 Determines Document Mode</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Web标准中的特殊字符»]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>在最开始学习web标准的时候有这么一条：</p>
<blockquote>
<p>把所有&lt;和&amp;特殊符号用编码表示 :<br>
任何小于号（&lt;），不是标签的一部分，都必须被编码为&amp; l t ; 　　任何大于号（&gt;），不是标签的一部分，都必须被编码为&amp; g t ;<br>
任何与号（&amp;），不是实体的一部分的，都必须被编码为&amp; a m p;<br>
注：以上字符之间无空格。</p>
</blockquote>
<p>而在我们平时的工作中经常会遇到这种情况：</p>
<p>更多&gt;&gt;</p>
<p>国内的同行大多是写两个大于号<code>&amp;gt;&amp;gt;</code>或者干脆就写<code>&gt;&gt;</code>（更夸张的是有人为了追求和效果图完全一致的效果而单独对这里使用宋体），更合理的写法如下：</p>
<pre><code>&lt;style&gt;
a:after{content:</code></pre>]]></description><link>https://www.99css.com/286/</link><guid isPermaLink="false">6983728c0b74c7000133ae78</guid><category><![CDATA[HTML]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 24 Jan 2010 19:43:59 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>在最开始学习web标准的时候有这么一条：</p>
<blockquote>
<p>把所有&lt;和&amp;特殊符号用编码表示 :<br>
任何小于号（&lt;），不是标签的一部分，都必须被编码为&amp; l t ; 　　任何大于号（&gt;），不是标签的一部分，都必须被编码为&amp; g t ;<br>
任何与号（&amp;），不是实体的一部分的，都必须被编码为&amp; a m p;<br>
注：以上字符之间无空格。</p>
</blockquote>
<p>而在我们平时的工作中经常会遇到这种情况：</p>
<p>更多&gt;&gt;</p>
<p>国内的同行大多是写两个大于号<code>&amp;gt;&amp;gt;</code>或者干脆就写<code>&gt;&gt;</code>（更夸张的是有人为了追求和效果图完全一致的效果而单独对这里使用宋体），更合理的写法如下：</p>
<pre><code>&lt;style&gt;
a:after{content:'0BB';}
&lt;/style&gt;

&lt;a href=&quot;&quot;&gt;更多&lt;/a&gt;
</code></pre>
<blockquote>
<p>0BB — right double angle quote, unicode = » ( » )</p>
</blockquote>
<p>由于IE6/7不支持after伪类，退一步这样写也不错：</p>
<pre><code>&lt;a href=&quot;&quot;&gt;更多&amp;raquo;&lt;/a&gt;
</code></pre>
<p>最好的例子就是wordpress编辑器左下角的路径处：<br>
<img src="http://res.cloudinary.com/for99css/image/upload/v1419172945/File-id_ddrrtxb_1794hh2xcpcs_b_nuitxk.png" alt></p>
<p>而面包屑导航处经常被写为的大于号也不是&amp;lt;而应是<strong>&amp;rsaquo;</strong>根据wordpress后台的title写法：</p>
<pre><code>&lt;title&gt;添加新文章 &lt;strong&gt;&amp;amp;lsaquo;&lt;/strong&gt; 99css  &amp;amp;#8212; WordPress&lt;/title&gt;;
</code></pre>
<p>显示效果如下：</p>
<p>添加新文章 ‹ 99css — WordPress</p>
<p>把&amp;lsaquo;的l改成r就是右了</p>
<p>另看到aoao和怿飞在twitter上讨论空格，<a href="https://twitter.com/blankzheng/status/8107822420">怿飞</a>说：</p>
<blockquote>测试发现空格还是用 u0020 表示兼容性和语义最好</blockquote>
我也不是很认同，我的观点是：在html中使用<strong>&amp;nbsp;</strong>，而在css中使用<strong>20</strong>才是比较合理的做法:p
<p><strong>延伸阅读</strong></p>
<ul>
	<li><a href="http://www.webdesignerwall.com/tutorials/using-html-symbol-entities/">Using HTML Symbol Entities</a> 中文翻译：<a href="http://www.neoease.com/using-html-symbol-entities/">使用 HTML 字符实体</a></li>
	<li><a href="http://www.bigbaer.com/reference/character_entity_reference.htm">Character Entity Reference HTML 4</a></li>
	<li><a href="http://lifesinger.org/blog/2010/01/charater-references/">字符引用和空白字符</a></li>
</ul><!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Hyphens, Underscores, or camelCase?]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419172892/File-id_ddrrtxb_1792dtztvggv_b_hu6d9n.png" alt></p>
<p>via <a href="http://css-tricks.com/poll-results-hyphens-underscores-or-camelcase/">Poll Results: Hyphens, Underscores, or camelCase?</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://www.99css.com/272/</link><guid isPermaLink="false">6983728c0b74c7000133ae76</guid><category><![CDATA[HTML]]></category><category><![CDATA[看图]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 19 Jan 2010 22:44:02 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><img src="http://res.cloudinary.com/for99css/image/upload/v1419172892/File-id_ddrrtxb_1792dtztvggv_b_hu6d9n.png" alt></p>
<p>via <a href="http://css-tricks.com/poll-results-hyphens-underscores-or-camelcase/">Poll Results: Hyphens, Underscores, or camelCase?</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[What Beautiful HTML Code Looks Like]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://res.cloudinary.com/for99css/image/upload/v1419173350/File-id_ddrrtxb_1756hr6jb6hq_b_tzotfk.jpg"><img src="http://res.cloudinary.com/for99css/image/upload/v1419173350/File-id_ddrrtxb_1756hr6jb6hq_b_tzotfk.jpg" alt></a></p>
<p>via <a href="http://css-tricks.com/what-beautiful-html-code-looks-like/">What Beautiful HTML Code Looks Like</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://www.99css.com/144/</link><guid isPermaLink="false">6983728c0b74c7000133ae6c</guid><category><![CDATA[HTML]]></category><category><![CDATA[看图]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Wed, 11 Nov 2009 23:42:07 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://res.cloudinary.com/for99css/image/upload/v1419173350/File-id_ddrrtxb_1756hr6jb6hq_b_tzotfk.jpg"><img src="http://res.cloudinary.com/for99css/image/upload/v1419173350/File-id_ddrrtxb_1756hr6jb6hq_b_tzotfk.jpg" alt></a></p>
<p>via <a href="http://css-tricks.com/what-beautiful-html-code-looks-like/">What Beautiful HTML Code Looks Like</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[用 HTML 5 来提升性能]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Google 网站管理员 Jens Meiert 发表了一篇《<a href="http://code.google.com/intl/zh-CN/speed/articles/html5-performance.html">Using HTML 5 for performance improvements</a>》，大部分内容在《<a href="http://code.google.com/intl/zh-CN/speed/articles/optimizing-html.html">Reducing<br>
the file size of HTML documents</a>》(<a href="https://www.99css.com/37">中文版</a>)中都有提及，新增的部分为<code>async</code>(和 <code>defer</code>)，以下为该段的翻译：</p>
<blockquote>
<p><code>async</code> 和 <code>defer</code> 使用在 <code>script</code> 元素上。</p>
<p>要解释为什么这些属性会提升性能，最好是看一下未使用时发生了什么 — 各自的脚本在用户代理(浏览器，下同)继续解析页面前将被提取并直接执行，有时这个行为是我们想要的，有时不是。</p>
<p>新的 <code>async</code> 属性允许各自的脚本在可用时异步执行。HTML 4 中已经包含 <code>defer</code> 属性，指出 <code>defer</code></p></blockquote>]]></description><link>https://www.99css.com/56/</link><guid isPermaLink="false">6983728c0b74c7000133ae63</guid><category><![CDATA[HTML]]></category><category><![CDATA[Let's make the web faster]]></category><category><![CDATA[性能]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Fri, 02 Oct 2009 13:25:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Google 网站管理员 Jens Meiert 发表了一篇《<a href="http://code.google.com/intl/zh-CN/speed/articles/html5-performance.html">Using HTML 5 for performance improvements</a>》，大部分内容在《<a href="http://code.google.com/intl/zh-CN/speed/articles/optimizing-html.html">Reducing<br>
the file size of HTML documents</a>》(<a href="https://www.99css.com/37">中文版</a>)中都有提及，新增的部分为<code>async</code>(和 <code>defer</code>)，以下为该段的翻译：</p>
<blockquote>
<p><code>async</code> 和 <code>defer</code> 使用在 <code>script</code> 元素上。</p>
<p>要解释为什么这些属性会提升性能，最好是看一下未使用时发生了什么 — 各自的脚本在用户代理(浏览器，下同)继续解析页面前将被提取并直接执行，有时这个行为是我们想要的，有时不是。</p>
<p>新的 <code>async</code> 属性允许各自的脚本在可用时异步执行。HTML 4 中已经包含 <code>defer</code> 属性，指出 <code>defer</code> “对用户代理提供一个暗示：脚本不产生任何文档内容(比如，在Javascript 中没有 <code>document.write</code> )，这样，用户代理会继续解析并渲染”。</p>
<p>如果不使用 <code>async</code> 属性而只使用 <code>defer</code>，脚本在页面解析完成时已经执行。即使指定了 <code>async</code> 属性，也可同时指定<code>defer</code> 属性。这使得那些旧的只理解<code>defer</code> 的浏览器来回退 <code>defer</code> 行为而非默认的同步阻塞行为。</p>
</blockquote>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[翻译]减小 HTML 文件]]></title><description><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>原文：<a href="http://code.google.com/intl/zh-CN/speed/articles/optimizing-html.html">Reducing the file size of HTML documents</a></li>
<li>作者：Jens Meiert &amp; Kevin Khaw， Google 网站管理员</li>
<li>翻译：<a href="https://www.99css.com/">ytzong</a></li>
</ul>
<p>改善网站速度的一个很明显的方法是减小 HTML 文件的大小。有一些方法，比如：硬压缩（rigid compression），acupuncture-like ID 及改变 class 名（译注：这一句不是很确定，原文：There are several ways to do this, from rigid compression to acupuncture-like ID and class name</p>]]></description><link>https://www.99css.com/37/</link><guid isPermaLink="false">6983728c0b74c7000133ae55</guid><category><![CDATA[HTML]]></category><category><![CDATA[Let's make the web faster]]></category><category><![CDATA[性能]]></category><category><![CDATA[翻译]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Mon, 29 Jun 2009 13:48:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>原文：<a href="http://code.google.com/intl/zh-CN/speed/articles/optimizing-html.html">Reducing the file size of HTML documents</a></li>
<li>作者：Jens Meiert &amp; Kevin Khaw， Google 网站管理员</li>
<li>翻译：<a href="https://www.99css.com/">ytzong</a></li>
</ul>
<p>改善网站速度的一个很明显的方法是减小 HTML 文件的大小。有一些方法，比如：硬压缩（rigid compression），acupuncture-like ID 及改变 class 名（译注：这一句不是很确定，原文：There are several ways to do this, from rigid compression to acupuncture-like ID and class name changes）。下面是一些我们总结的使 HTML 标记更精简的方法。</p>
<iframe width="560" height="315" src="//www.youtube.com/embed/ZSJxhm26lH4" frameborder="0" allowfullscreen></iframe>
<p>译注：上面是引用 youtube 的视频，请翻墙观看。</p>
<p><strong>HTML 4</strong></p>
<p>HTML （非XHTML），MIME type 为 text/html ，允许省略一些标签。通过<br>
<a href="http://www.w3.org/TR/html4/sgml/dtd.html">HTML 4 DTD</a>，你可以省略以下标签（那些所谓可避免的元素，这里用删除线加以标记（感谢一楼的翻译））</p>
<p><s><code>&lt;/area&gt;</code></s></p>
<p><s><code>&lt;/base&gt;</code></s></p>
<p><code>&lt;body&gt;</code></p>
<p><code>&lt;/body&gt;</code></p>
<p><s><code>&lt;/br&gt;</code></s></p>
<p><s><code>&lt;/col&gt;</code></s></p>
<p><code>&lt;/colgroup&gt;</code></p>
<p><code>&lt;/dd&gt;</code></p>
<p><code>&lt;/dt&gt;</code></p>
<p><code>&lt;head&gt;</code></p>
<p><code>&lt;/head&gt;</code></p>
<p><s><code>&lt;/hr&gt;</code></s></p>
<p><code>&lt;html&gt;</code></p>
<p><code>&lt;/html&gt;</code></p>
<p><s><code>&lt;/img&gt;</code></s></p>
<p><s><code>&lt;/input&gt;</code></s></p>
<p><code>&lt;/li&gt;</code></p>
<p><s><code>&lt;/link&gt;</code></s></p>
<p><s><code>&lt;/meta&gt;</code></s></p>
<p><code>&lt;/option&gt;</code></p>
<p><code>&lt;/p&gt;</code></p>
<p><s><code>&lt;/param&gt;</code></s></p>
<p><code>&lt;tbody&gt;</code></p>
<p><code>&lt;/tbody&gt;</code></p>
<p><code>&lt;/td&gt;</code></p>
<p><code>&lt;/tfoot&gt;</code></p>
<p><code>&lt;/th&gt;</code></p>
<p><code>&lt;/thead&gt;</code></p>
<p><code>&lt;/tr&gt;</code></p>
<p>比如，你的代码是</p>
<p><code>&lt;li&gt;List item&lt;/li&gt;</code></p>
<p>可以写为</p>
<p><code>&lt;li&gt;List item</code></p>
<p>又比如段落要以</p>
<p><code>&lt;/p&gt;</code></p>
<p>结尾，你可以只写</p>
<p><code>&lt;p&gt;My paragraph</code></p>
<p>甚至可以去掉 html，head，body（把这作为你的编码规范之前请确保这会令你舒服）。</p>
<p>省略标签后 HTML 依然有效，同时减小了文件大小。对一般的页面来说，可以节省 5-20%。</p>
<p><strong>HTML 5</strong></p>
<p>正在发展中的 <a href="http://www.w3.org/TR/html5/">HTML 5</a> 提供了一些减小文件大小的方法。</p>
<p>比如，页面文档类型声明</p>
<p><code>&lt;!DOCTYPE html&gt;</code></p>
<p>对比</p>
<pre><code>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
</code></pre>
<p>很显然 HTML 5 的 DTD 更短。</p>
<p>当为页面指定编码时，HTML 5 很易用而且更短：</p>
<p><code>&lt;meta charset=&quot;utf-8&quot;&gt;</code></p>
<p>代替</p>
<p><code>&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;</code></p>
<p>通常情况下，浏览器会正确处理 HTML。</p>
<p>另外，在今天的 HTML 5 中，你可以去除声明 MIME 类型的 type 属性，比如</p>
<p><code>type=&quot;text/css&quot;</code></p>
<p>或</p>
<p><code>type=&quot;text/javascript&quot;</code></p>
<p>你可以用</p>
<p><code>&lt;script&gt;</code></p>
<p>替代</p>
<p><code>&lt;script type=&quot;text/javascript&quot;&gt;</code></p>
<p>用</p>
<p><code>&lt;style&gt;</code></p>
<p>替代</p>
<p><code>&lt;style type=&quot;text/css&quot;&gt;</code></p>
<p>在所有类型的页面中（甚至是 XHTHML）你可以省略</p>
<p><code>type=&quot;text/css&quot;</code></p>
<p>HTML 5 使这一切变得更简单。</p>
<p>同时使用上面所有的方法会使文件节省 10%-20%（甚至更多），这取决于你的编码风格和页面中的文本内容数量。代码将更干净，访问者会更快的获取网站内容。在<a href="http://www.google.com/intl/en/privacy.html">隐私中心</a>项目中我们采用很多这类技术，节省了原始文件大小的20%。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[翻译]谨慎使用 Iframe]]></title><description><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>原文：<a href="http://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/">Using Iframes Sparingly</a></li>
<li>原作者：<a href="http://stevesouders.com/bio.php">Steve Souders</a></li>
<li>翻译：<a href="https://www.99css.com/">ytzong</a></li>
</ul>
<p>使用 iframe 可以轻易的调用其他网站的页面，但应谨慎使用。它比创建其他 DOM 元素（包括 style 和 script）多耗费数十甚至数百倍的性能。增加100个不同元素的时间对比显示iframe 是多么耗费性能：</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1419171507/File-id_ddrrtxb_974cqch2vfw_b_shug3e.png" alt></p>
<p>使用 iframe 的页面通常没有这么多 iframe，所以创建 DOM 的时间不用多虑。更值得关心的是 onload 事件和连接池。</p>
<p><strong>iframe 阻塞 onload</strong></p>
<p>window 的 onload 事件尽快执行非常重要。这会让浏览器的载入进度指示器完成，用户依据此判断页面是否已经加载完。而 onload 事件延迟，会让用户感觉页面变慢。</p>
<p>window 的 onload 事件直到它所包含的所有</p>]]></description><link>https://www.99css.com/36/</link><guid isPermaLink="false">6983728c0b74c7000133ae54</guid><category><![CDATA[HTML]]></category><category><![CDATA[性能]]></category><category><![CDATA[翻译]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 28 Jun 2009 15:37:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>原文：<a href="http://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/">Using Iframes Sparingly</a></li>
<li>原作者：<a href="http://stevesouders.com/bio.php">Steve Souders</a></li>
<li>翻译：<a href="https://www.99css.com/">ytzong</a></li>
</ul>
<p>使用 iframe 可以轻易的调用其他网站的页面，但应谨慎使用。它比创建其他 DOM 元素（包括 style 和 script）多耗费数十甚至数百倍的性能。增加100个不同元素的时间对比显示iframe 是多么耗费性能：</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1419171507/File-id_ddrrtxb_974cqch2vfw_b_shug3e.png" alt></p>
<p>使用 iframe 的页面通常没有这么多 iframe，所以创建 DOM 的时间不用多虑。更值得关心的是 onload 事件和连接池。</p>
<p><strong>iframe 阻塞 onload</strong></p>
<p>window 的 onload 事件尽快执行非常重要。这会让浏览器的载入进度指示器完成，用户依据此判断页面是否已经加载完。而 onload 事件延迟，会让用户感觉页面变慢。</p>
<p>window 的 onload 事件直到它所包含的所有 iframe，以及所有 iframe 中的资源完全加载完成后才会触发。在 Safari 和 Chrome中，用 javascritpt 动态的给 iframe 的 src 赋值可以避免这种阻塞行为。</p>
<p><strong>一个连接池</strong></p>
<p>对每个 web 服务器来说，浏览器只打开极少的几个连接数。老的浏览器，包括 IE 6/7 和 Firefox 2，每个主机只有2个连接。在新的浏览器中，连接数增加鸟。Safari3+ 和 Opera 9+ 增至4个，Chrome 1+ 、IE 8 及 Firefox 3 增至6个。对比表格详见《<a href="http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/">并行连接数总结</a>》。</p>
<p>人们可能期望每个 iframe 有单独的连接池，但并非如此。在大多数浏览器中，连接被主页面和它的 iframe 所共享，这意味着有可能 iframe 中的资源占用了可用连接而阻塞了主页面的资源加载。如果iframe 中的内容同等重要，或比主页面更重要，这很好。然而在通常情况下 iframe 中的内容对页面来说不太重要，iframe 占用连接数是不可取的。一个解决方案是在优先级更高的资源下载完成后再动态的给iframe 的 src 赋值。</p>
<p>美国的10大网站中有5个使用了 iframe。它们多数用来加载广告。这不是很合适，但可以理解，这是一个简便的在内容中插入广告的途径。在很多情况下，使用 iframe是合理的。但要意识到这对你的页面的性能影响。非必要时，请谨慎使用。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>