<?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>前端观察 &#187; css</title>
	<atom:link href="http://www.qianduan.net/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.qianduan.net</link>
	<description>专注于网站前端设计与前端开发</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:05:28 +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>Css选择器命名规则</title>
		<link>http://www.qianduan.net/css-selectors-naming-2.html</link>
		<comments>http://www.qianduan.net/css-selectors-naming-2.html#comments</comments>
		<pubDate>Tue, 04 Oct 2011 15:30:57 +0000</pubDate>
		<dc:creator>Sky_志刚</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择器]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12769</guid>
		<description><![CDATA[操作系统版本：Windows 7 浏览器版本：IE6,IE7,IE8,Firefox 3.6.2,Safari 4.0.4,Chrome 5.0.356.2 dev 受影响的浏览器：所有浏览器. 经常讲到css选择器命名规则，其实不只是在团队合作基础上来讲这个，每个浏... ]]></description>
			<content:encoded><![CDATA[<p>操作系统版本：Windows 7</p>
<p>浏览器版本：IE6,IE7,IE8,Firefox 3.6.2,Safari 4.0.4,Chrome 5.0.356.2 dev</p>
<p>受影响的浏览器：所有浏览器.</p>
<p>经常讲到css选择器命名规则，其实不只是在团队合作基础上来讲这个，每个浏览器,IE产品，火狐，苹果，谷歌，都会因为命名不规范会产生不同样式..</p>
<h3>一、关于选择器的命名</h3>
<p style="background: #FFFAA2;padding: 5px">W3C CSS2.1的 4.1.3 节中提到：标识符（包括选择器中的元素名，类和ID）只能包含字符[a- zA-Z0-9]和ISO 10646字符编码U+00A1及以上，再加连字号（-）和下划线（_）；它们不能以 数字，或一个连字号后跟数字为开头。它们还可以包含转义字符加任何ISO 10646字符作为一个数 字编码。</p>
<p>由于设计到的字符很多，本文只针对字符[a-zA-Z0-9]，再加连字号（-）和下划线（_）进行讨论。 关于CSS中允许使用的字符和大小写信息，请参考W3C CSS2.1的4.1.3节</p>
<h3 style="text-align: left" align="center">二、差异及可能产生的问题</h3>
<p style="background: #FFFAA2;padding: 5px">在W3C CSS2.1说明文档中，只提到选择器标识符不能以数字，或一个连字号后跟数字为开头。除 此之外，没有相关的说明。那么各浏览器下的表现是否遵循这一规则呢？</p>
<h4>请观察如下代码：</h4>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">&nbsp;
div<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">160px</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>font-<span style="color: #000000; font-weight: bold;">size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>line-<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>background- <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">yellow</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.f-1_f_</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.1<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.123456<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.2demo<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.2-demo <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.2_demo <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.-demo</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.-2demo <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
._demo <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
._2demo <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.-<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.---<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">._</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.——<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
._-<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.-_</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
.-<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.---_</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.---123</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.__123</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#A8A8A8</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;f-1_f_&quot;</span>&gt;</span>字母开头<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span>&gt;</span>单个数字<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;123456&quot;</span>&gt;</span>多个数字<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2demo&quot;</span>&gt;</span>数字开头 + [a-z][A-Z]<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2-demo&quot;</span>&gt;</span>数字 + &quot;-&quot; 开头<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2_demo&quot;</span>&gt;</span>数字 + &quot;_&quot; 开头<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;-demo&quot;</span>&gt;</span>连字符(-)开头 + [a-z][A-Z]<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;-2demo&quot;</span>&gt;</span>连字符(-) + 数字 开头<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_demo&quot;</span>&gt;</span>下划线(_)开头 + [a-z][A-Z]<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_2demo&quot;</span>&gt;</span>下划线(_) + 数字 开头<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;-&quot;</span>&gt;</span>单个连字符(-)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;---&quot;</span>&gt;</span>多个连字符(-)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_&quot;</span>&gt;</span>单个下划线(_)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; 	&quot;</span>&gt;</span>多个下划线(_)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_-&quot;</span>&gt;</span>下划线(_) + 连字符(-)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;-_&quot;</span>&gt;</span>连字符(-) + 下划线(_)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; 	-&quot;</span>&gt;</span>多个下划线(_) + 连字符(-)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;---_&quot;</span>&gt;</span>多个连字符(-) + 下划线(_)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;---123&quot;</span>&gt;</span>多个连字符(-) + 数字<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; 	123&quot;</span>&gt;</span>多个下划线(_) + 数字<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<p>看看各浏览器下面的结果</p>
<p><a href="http://www.qianduan.net/css-selectors-naming-2.html/qq-e6-88-aa-e5-9b-be20111004223132-2-2" rel="attachment wp-att-12771"><img class="size-medium wp-image-12771 alignleft" src="http://www.qianduan.net/wp-content/uploads/2011/10/QQ截图201110042231322-300x26.png" alt="" width="300" height="26" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.qianduan.net/css-selectors-naming-2.html/qq-e6-88-aa-e5-9b-be20111004223247-2" rel="attachment wp-att-12773"><img class="alignleft size-medium wp-image-12773" src="http://www.qianduan.net/wp-content/uploads/2011/10/QQ截图201110042232471-300x180.png" alt="" width="300" height="180" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>观察上表，分析各浏览器下的表现，总结如下</p>
<p><a href="http://www.qianduan.net/css-selectors-naming-2.html/qq-e6-88-aa-e5-9b-be20111004223601" rel="attachment wp-att-12772"><img class="alignleft size-medium wp-image-12772" src="http://www.qianduan.net/wp-content/uploads/2011/10/QQ截图20111004223601-300x101.png" alt="" width="300" height="101" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>从上面看到，我们可以直观的了解到选择器的命名在各浏览器下的支持情况有所不同。因此，如果选择器的命名不规范，将影响各浏览器下，样式渲染不一致。比如如下代码：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>background-<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">yellow</span><span style="color: #00AA00;">;</span>width<span style="color: #00AA00;">:</span><span style="color: #933;">150px</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>line- <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
.20fontsize<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">18px</span><span style="color: #00AA00;">;</span>background-<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#d4d4d4</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;20fontsize&quot;</span>&gt;</span>以数字开头的类名<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<p>以数字开始的类名仅在IE6(Q)/IE7(Q)/IE8(Q)下被识别，而其它浏览器下则不识别（忽略该规则）</p>
<h3>三、如何避免受此问题影响</h3>
<p>坚持<span style="text-decoration: underline">以字母开头</span>命名选择器，这样可保证在所有浏览器下都能兼容。</p>
<h3>四、关于团队合作的css命名规范</h3>
<p>常用的css命名规则</p>
<p>头：header</p>
<p>内容：content/container</p>
<p>尾：footer</p>
<p>导航：nav</p>
<p>侧栏：sidebar</p>
<p>栏目：column</p>
<p>页面外围控制整体布局宽度：wrapper</p>
<p>左右中：left right center</p>
<p>登录条：loginbar</p>
<p>标志：logo</p>
<p>广告：banner</p>
<p>页面主体：main</p>
<p>热点：hot</p>
<p>新闻：news</p>
<p>下载：download</p>
<p>子导航：subnav</p>
<p>菜单：menu</p>
<p>子菜单：submenu</p>
<p>搜索：search</p>
<p>友情链接：friendlink</p>
<p>页脚：footer</p>
<p>版权：copyright</p>
<p>滚动：scroll</p>
<p>内容：content</p>
<p>标签页：tab</p>
<p>文章列表：list</p>
<p>提示信息：msg</p>
<p>小技巧：tips</p>
<p>栏目标题：title</p>
<p>加入：joinus</p>
<p>指南：guild</p>
<p>服务：service</p>
<p>注册：regsiter</p>
<p>状态：status</p>
<p>投票：vote</p>
<p>合作伙伴：partner</p>
<p>(二)注释的写法:</p>
<p>/* Footer */</p>
<p>内容区</p>
<p>/* End Footer */</p>
<p>(三)id的命名:</p>
<p>(1)页面结构</p>
<p>容器: container</p>
<p>页头：header</p>
<p>内容：content/container</p>
<p>页面主体：main</p>
<p>页尾：footer</p>
<p>导航：nav</p>
<p>侧栏：sidebar</p>
<p>栏目：column</p>
<p>页面外围控制整体布局宽度：wrapper</p>
<p>左右中：left right center</p>
<p>(2)导航</p>
<p>导航：nav</p>
<p>主导航：mainbav</p>
<p>子导航：subnav</p>
<p>顶导航：topnav</p>
<p>边导航：sidebar</p>
<p>左导航：leftsidebar</p>
<p>右导航：rightsidebar</p>
<p>菜单：menu</p>
<p>子菜单：submenu</p>
<p>标题: title</p>
<p>摘要: summary</p>
<p>(3)功能</p>
<p>标志：logo</p>
<p>广告：banner</p>
<p>登陆：login</p>
<p>登录条：loginbar</p>
<p>注册：regsiter</p>
<p>搜索：search</p>
<p>功能区：shop</p>
<p>标题：title</p>
<p>加入：joinus</p>
<p>状态：status</p>
<p>按钮：btn</p>
<p>滚动：scroll</p>
<p>标签页：tab</p>
<p>文章列表：list</p>
<p>提示信息：msg</p>
<p>当前的: current</p>
<p>小技巧：tips</p>
<p>图标: icon</p>
<p>注释：note</p>
<p>指南：guild</p>
<p>服务：service</p>
<p>热点：hot</p>
<p>新闻：news</p>
<p>下载：download</p>
<p>投票：vote</p>
<p>合作伙伴：partner</p>
<p>友情链接：link</p>
<p>版权：copyright</p>
<p>(四)class的命名:</p>
<p>(1)颜色:使用颜色的名称或者16进制代码,如</p>
<p>.red { color: red; }</p>
<p>.f60 { color: #f60; }</p>
<p>.ff8600 { color: #ff8600; }</p>
<p>（2）字体大小,直接使用&#8221;font+字体大小&#8221;作为名称,如</p>
<p>.font12px { font-size: 12px; }</p>
<p>.font9pt {font-size: 9pt; }</p>
<p>(3)对齐样式,使用对齐目标的英文名称,如</p>
<p>.left { float:left; }</p>
<p>.bottom { float:bottom; }</p>
<p>(4)标题栏样式,使用&#8221;类别+功能&#8221;的方式命名,如</p>
<p>.barnews { }</p>
<p>.barproduct { }</p>
<p>注意事项::</p>
<p>1.一律小写;</p>
<p>2.尽量用英文;</p>
<p>3.不加中杠和下划线;</p>
<p>4.尽量不缩写，除非一看就明白的单词.</p>
<p>主要的 master.css</p>
<p>模块 module.css</p>
<p>基本共用 base.css</p>
<p>布局，版面 layout.css</p>
<p>主题 themes.css</p>
<p>专栏 columns.css</p>
<p>文字 font.css</p>
<p>表单 forms.css</p>
<p>补丁 mend.css</p>
<p>打印 print.css</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css-selectors-naming-2.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>LESS介绍及其与Sass的差异</title>
		<link>http://www.qianduan.net/an-introduction-to-less-and-comparison-to-sass.html</link>
		<comments>http://www.qianduan.net/an-introduction-to-less-and-comparison-to-sass.html#comments</comments>
		<pubDate>Sun, 11 Sep 2011 19:05:58 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[Resource]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[LESS]]></category>
		<category><![CDATA[Sass]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12707</guid>
		<description><![CDATA[自从一个月前我偶然发现 LESS之后我就开始坚定的使用它了。CSS本身对我来说从来不是问题，但是我很好奇使用变量来沿着一个调色盘为我的网站或模板创建一些东西的想法。拥有一个提供固定... ]]></description>
			<content:encoded><![CDATA[<div>
原文：<a href="http://www.qianduan.net/an-introduction-to-less-and-comparison-to-sass.html">LESS介绍及其与Sass的差异</a><br />
译自：<a href="http://coding.smashingmagazine.com/2011/09/09/an-introduction-to-less-and-comparison-to-sass/">An Introduction To LESS, And Comparison To Sass</a><br />
原作者：<a href="http://coding.smashingmagazine.com/author/jeremy-hixon/">Jeremy Hixon</a><br />
请尊重版权，转载请注明来源，多谢！<br />
<hr />
</div>
<p>自从一个月前我偶然发现<a title="LESS « The Dynamic Stylesheet language" href="http://lesscss.org/">LESS</a>之后我就开始坚定的使用它了。CSS本身对我来说从来不是问题，但是我很好奇使用变量来沿着一个调色盘为我的网站或模板创建一些东西的想法。拥有一个提供固定数量选项可选的色盘可以让我避免颜色太跳跃以至于从一个已定的风格中脱离。</p>
<p><span id="more-12707"></span></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2011/09/091227ZuN.jpg" alt="Less-sass1 在 LESS介绍以及与Sass的差异 中" width="448" height="238"></p>
<p>事实证明，LESS——以及Sass——功能比这个要多太多。LESS和Sass在语法上有些共性，比如下面这些：</p>
<ul>
<li><strong>混入(Mixins)</strong>——class中的class；</li>
<li><strong>参数混入</strong>——可以传递参数的class，就像函数一样；</li>
<li><strong>嵌套规则</strong>——Class中嵌套class，从而减少重复的代码；</li>
<li><strong>运算</strong>——CSS中用上数学；</li>
<li><strong>颜色功能</strong>——可以编辑颜色；</li>
<li><strong>名字空间(namespace)</strong>——分组样式，从而可以被调用；</li>
<li><strong>作用域</strong>——局部修改样式；</li>
<li><strong>JavaScript 赋值</strong>——在CSS中使用JavaScript表达式赋值。</li>
</ul>
<p>LESS和Sass的主要不同就是他们的实现方式，LESSS是基于JavaScript，所以，是在客户端处理的。</p>
<p>另一方面，Sass是基于Ruby的，然后是在服务器端处理的。很多开发者不会选择LESS因为JavaScript引擎需要额外的时间来处理代码然后输出修改过的CSS到浏览器。关于这个有很多种方式，我选择的是只在开发环节使用LESS。一旦我完成了开发，我就复制然后粘贴LESS输出的到一个压缩器，然后到一个单独的CSS文件来替代LESS文件。另一个选择是使用<a title="LESS.app For Mac OS X" href="http://incident57.com/less/">LESS.app</a>来编译和压缩你的LESS文件。两个选择都将最小化你的样式输出，从而避免由于用户的浏览器不支持JavaScript而可能引起的任何问题。尽管这不大可能，但终归是有可能的。</p>
<h3>LESS Is More</h3>
<h4>介绍</h4>
<p>在你的项目中引入LESS很简单：</p>
<ol>
<li>下载<a title="Download less.js" href="http://lesscss.googlecode.com/files/less-1.1.3.min.js">less.js</a>;</li>
<li>创建一个文件来放你的样式，比如<em>style.less</em>;</li>
<li>添加以下代码到你的HTML的&lt;head&gt;中:</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet/less&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;styles.less&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;less.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p>请注意link的rel属性。你需要在属性值的最后面使用/less以使LESS起作用。然后在link后面引入scirpt也是必须的。如果你在用HTML5语法——为什么不用呢？——你可以省去type=&#8221;text/css&#8221;和type=&#8221;text/javascript&#8221;。</p>
<p>其实也有一个<a href="http://lesscss.org/#-server-side-usage">服务器端的LESS版本</a>。在服务器上安装LESS的最简单的办法就是使用<a href="http://github.com/isaacs/npm">Node Package Manager</a> (NPM，一看就知道是基于Node.js的)。</p>
<h4>变量</h4>
<p>如果你是个开发者，变量应该是你最好的朋友。如果你要重复的使用一个信息(本例中就是color)，将它设置为一个变量就可以。这样，你就可以保证自己的一致性并可能减少滚动代码来查找颜色值、复制、粘贴等繁琐的工作了。你甚至可以加或者减一些你需要渲染的HEX值到这些颜色上面。看下例子：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@blue: #00c;	</span>
<span style="color: #a1a100;">@light_blue: @blue + #333;</span>
<span style="color: #a1a100;">@dark_blue: @blue - #333;</span></pre></td></tr></table></div>

<p>如果我们将这些样式应用到3个div上面，我们就可以看到由加上和减掉的HEX值形成的渐变的效果：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2011/09/091227mk0.jpg" alt="Blue-gradient 在 LESS介绍以及与Sass的差异 中" width="316" height="316"><em>从@light_blue到@blue到@dark_blue的渐变效果</em></p>
<p>关于变量在LESS和Sass中的唯一区别就是，LESS用@，Sass用$。同时还有一些作用域上的差别，我后面会提到。</p>
<h4>混入(mixin)</h4>
<p>偶尔，我们会创建一些会在样式表中重复使用的样式规则。没有人会阻止你在一个HTML的元素中使用多个class，但是你可以用LESS，在样式表中完成。为了描述这一点，我写了一点儿例子：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">border</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">dotted</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
article<span style="color: #6666ff;">.post</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
	.<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
ul<span style="color: #6666ff;">.menu</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
	.<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>这可以给到你与你在两个元素中分别添加.bordered class同样的效果——而且仅仅在样式表中就完成了。而且它工作的很好：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2011/09/091228g04.jpg" alt="Bordered-elements 在 LESS介绍以及与Sass的差异 中" width="316" height="233"><em>文字和无序列表都被用上了边框样式</em></p>
<p>在Sass中，你要在样式规则前面添加@mixin声明，规定它是个嵌套。然后，通过@include来调用它：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@mixin border {</span>
	<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">dotted</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
article<span style="color: #6666ff;">.post</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
	<span style="color: #a1a100;">@include border;</span>
<span style="color: #00AA00;">&#125;</span>
ul<span style="color: #6666ff;">.menu</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
	<span style="color: #a1a100;">@include border;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>参数混入</h4>
<p>就像在CSS中有函数功能一样，这些对于那些在现在的CSS工作中多余的工作非常有用。最好和最有用的例子就是我们正在经历的从CSS2到CSS3过渡过程中的很多浏览器私有前缀。Nettuts+有一篇Jeffrey Way写的<a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-never-type-a-vendor-prefix-again/">很赞的视频和文章</a>，内容是包含着由有用的参数组成的文件，他们涵盖了大部分使用各个浏览器私有前缀的CSS3属性。例如，在他们的格式中，一个简单的处理圆角的mixin是这样的：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.border-radius<span style="color: #00AA00;">&#40;</span> <span style="color: #a1a100;">@radius: 3px ) {</span>
-webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@radius;</span>
-moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@radius;</span>
border-radius<span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@radius;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>在这个例子中，.border-radius有个默认的3px的圆角，但是你可以使用你需要的任何值。.border-radius(10px)将会生成半径为10px的圆角。</p>
<p>Sass中的语法很像LESS，只是使用$声明变量，然后使用前面提到的@mixin和@include来调用。</p>
<h4>选择器继承</h4>
<p>这个东西LESS并没有提供。通过这个功能，你可以将一个选择器附加到已经预先定义的选择器上，而无需再使用逗号将两者分开的写法了：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.menu</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ddd</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.footer</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #a1a100;">@extend .menu;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* 上面的写法规则和下面的效果是一样的： */</span>
<span style="color: #6666ff;">.menu</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.footer</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ddd</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>嵌套规则</h4>
<p>在css中嵌套class和ID是避免你的样式干扰或者被别的样式干扰的唯一方法了。但是这可能会很凌乱。使用一个类似于#site-body .post .post-header h2 的选择器毫无吸引力而且会占用大量不必要的空格。使用LESS，你可以嵌套id、class以及标签。对于前面提到的例子，你可以这样写：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#site-body</span> <span style="color: #00AA00;">&#123;</span> …
	<span style="color: #6666ff;">.post</span> <span style="color: #00AA00;">&#123;</span> …
		<span style="color: #6666ff;">.post-header</span> <span style="color: #00AA00;">&#123;</span> …
			h2 <span style="color: #00AA00;">&#123;</span> … <span style="color: #00AA00;">&#125;</span>
			a <span style="color: #00AA00;">&#123;</span> …
				&amp;amp<span style="color: #00AA00;">;</span><span style="color: #3333ff;">:visited </span><span style="color: #00AA00;">&#123;</span> … <span style="color: #00AA00;">&#125;</span>
				&amp;amp<span style="color: #00AA00;">;</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span> … <span style="color: #00AA00;">&#125;</span>
			<span style="color: #00AA00;">&#125;</span>
		<span style="color: #00AA00;">&#125;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>上面的代码最终和上面的例子（那一长串的选择器）的效果一样，但是要更容易阅读和理解的多，而且它占用很少的空间。你也可以通过&amp;来引用元素样式到他们的伪元素上，该功能类似于JavaScript中的this。</p>
<h4>运算</h4>
<p>这可能是你所期望的：使用数字或者变量在你的样式表中实现数学运算！</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@base_margin: 10px;</span>
<span style="color: #a1a100;">@double_margin: @base_margin * 2;</span>
<span style="color: #a1a100;">@full_page: 960px;</span>
<span style="color: #a1a100;">@half_page: @full_page / 2;</span>
<span style="color: #a1a100;">@quarter_page: (@full_page / 2) / 2;</span></pre></td></tr></table></div>

<p>声明下，我也意识到我可以除以4来获得@quarter_page变量，但是这里我只是想要演示下圆括号组成“运算顺序”在这里也是可以用的。在使用简写的规则中，小括号也是必须的，比如 border: (@width / 2) solid #000。</p>
<p>Sass在数字上比LESS更专业。它已经可以换算单位了。Sass可以处理无法识别的度量单位并将其输出。这个特性很明显是一个对未来的尝试——证明W3C作出的一些改变。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Sass */</span>
<span style="color: #933;">2in</span> <span style="color: #00AA00;">+</span> <span style="color: #933;">3cm</span> <span style="color: #00AA00;">+</span> 2pc <span style="color: #00AA00;">=</span> <span style="color: #933;">3.514in</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* LESS */</span>
<span style="color: #933;">2in</span> <span style="color: #00AA00;">+</span> <span style="color: #933;">3cm</span> <span style="color: #00AA00;">+</span> 2pc <span style="color: #00AA00;">=</span> Error</pre></td></tr></table></div>

<h4>Color函数</h4>
<p>在文章开头，我提到了LESS如何帮我在编码过程中处理围绕着一个调色板。对此贡献最大的一部分就是颜色函数。加入你用一个标准的蓝色贯穿到你的样式中，然后你想要在表单中用这个蓝色来做一个渐变的按钮。你可以打开Photoshop或者其它的编辑器来获取一个比蓝色较浅的或者较暗的HEX色值来作为渐变色。或者，你可以只是使用LESS中的颜色函数。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@blue: #369;</span>
<span style="color: #6666ff;">.submit</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #a1a100;">@blue;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> lighten<span style="color: #00AA00;">&#40;</span><span style="color: #a1a100;">@blue, 10%), @blue 100%); /*Moz*/</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #993333;">center</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">center</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span>lighten<span style="color: #00AA00;">&#40;</span><span style="color: #a1a100;">@blue, 10%)), color-stop(100%, @blue)); /*Webkit*/</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -o-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> lighten<span style="color: #00AA00;">&#40;</span><span style="color: #a1a100;">@blue, 10%) 0%, @blue 100%); /*Opera*/</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -ms-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> lighten<span style="color: #00AA00;">&#40;</span><span style="color: #a1a100;">@blue, 10%) 0%, @blue 100%); /*IE 10+*/</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> lighten<span style="color: #00AA00;">&#40;</span><span style="color: #a1a100;">@blue, 10%) 0%, @blue 100%); /*W3C*/</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-1px</span> <span style="color: #933;">1px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>lighten函数很明显就是用百分比值来减轻颜色，在这个例子中，它将减轻这个基础的蓝色的10%。这种方法可以让我们变化的元素或者其它任何元素的颜色值——只是简单的改变基础颜色而已。这对于主题(模板)来说非常有用。而且，如果你使用参数功能，像上面提到的，你还可以更简单的应用到一些浏览器私有前缀的声明中，比如：.linear-gradient(lighten(@blue), @blue, 100%);。</p>
<p>嗯，最终的效果的确很赞：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2011/09/091228yWj.jpg" alt="Button-submit 在 LESS介绍以及与Sass的差异 中" width="74" height="37"><em>很赞的渐变的、基于变量的&#8221;Submit&#8221;按钮</em></p>
<p>还有很多其它的色彩函数，比如变暗或者调整颜色的饱和度，甚至你可以旋转色盘来使用其它颜色。我建议亲自尝试下你能想出的（用法）。</p>
<p>Sass貌似有更多的选项——但我并不需要这么多。我个人最常用的还是lighten和darken。如果你想了解更多，可以看一下<a href="http://nex-3.com/posts/89-powerful-color-manipulation-with-Sass">这篇很详细的介绍</a>。</p>
<h4>条件语句与控制</h4>
<p>这是一个的确很赞的东东，也是另一个LESS不支持的功能。使用 Sass，你可以使用if { } else { } 条件语句，以及for { }循环。它甚至支持 and、 or和 not，以及 &lt;、 &gt;、 &lt;=、 &gt;= 和 == 等操作符。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Sample Sass &quot;if&quot; statement */</span>
<span style="color: #a1a100;">@if lightness($color) &amp;gt; 30% {</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span> <span style="color: #a1a100;">@else {</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Sample Sass &quot;for&quot; loop */</span>
<span style="color: #a1a100;">@for $i from 1px to 10px {</span>
	.border-#<span style="color: #00AA00;">&#123;</span>i<span style="color: #00AA00;">&#125;</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> $i <span style="color: #993333;">solid</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>名字空间(Namespaces)</h4>
<p>名字空间可以用于组织我们的CSS到另一个档次，我们可以将一些公用的样式分组，然后在用的时候直接使用。例如，如果我们创建了一个名为default的样式分组，我们就可以在用到的时候直接从该组中调用。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#defaults</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #6666ff;">.nav_list</span> <span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
	<span style="color: #6666ff;">.button</span> <span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span> … <span style="color: #00AA00;">&#125;</span>
	<span style="color: #6666ff;">.quote</span> <span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span> … <span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>然后，在我们的代码中，如果我们正好在一个nav元素中使用了ul元素，我们就会想到我们需要default样式。那么我们就可以简单的调用它，它也会被直接应用。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">nav ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #cc00cc;">#defaults</span> &amp;gt<span style="color: #00AA00;">;</span> .nav_list<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>作用域</h4>
<p>作用域是编程中的标配，LESS中也是。如果你在你样式表的root级声明一个变量，它在整个文档中都是可以用的。然而，如果你在一个选择器，比如id或者class中，重新定义了这个变量，那么，它就只能在这个选择器中可用了——当然是重新定义后的新值。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@color: #00c; /* 蓝色 */</span>
<span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #a1a100;">@color: #c00; /* red */</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #a1a100;">@color; /* 红色边框 */</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#footer</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #a1a100;">@color; /* 蓝色边框 */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>因为我们在#header中重新定义了color变量，变量的值将会是不同的而且只会在该选择器中有效。它之前或者之后的所有地方，如果没有被重新定义，都会保持那个原始的值。</p>
<p>作用域在Sass中稍有不同。在上面的代码中，当@color变量变为红色后，代码中，此处之后的该变量的值，将会被重写（成为红色）。</p>
<h4>注释</h4>
<p>这一部分比较基础。LESS中允许两种注释写法。标准的CSS注释，/* comment */，是有效的，而且能够通过处理并正确输出。当行注释，// comment，同样可以用但是不能够通过处理也不能被输出，然后，结果是，“无声的”。</p>
<h4>导入</h4>
<p>导入也相当符合标准。标准的 @import: &#8216;classes.less&#8217;; 处理的很好。然而，如果你想要导入其它的LESS文件，那么文件的扩展名是可选的，所以 @import &#8216;classes&#8217;; 也是可行的。如果你想要导入一些无需LESS处理的内容，你可以使用 .css 扩展 (比如， @import: &#8216;reset.css&#8217;;)。</p>
<h4>字符串插入</h4>
<p>字符串也是可以用于变量中的，然后通过@{name}来调用。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@base_url : 'http://www.qianduan.net';</span>
<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;@{base_url}/images/background.png&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<h4>转义(Escaping)</h4>
<p>可能偶尔会需要引入一个CSS中非法或者LESS无法识别的值。通常是一些IE的hack。要避免抛出异常并破坏LESS，你将需要避开它们。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.class</span> <span style="color: #00AA00;">&#123;</span>
	filter<span style="color: #00AA00;">:</span> ~<span style="color: #ff0000;">&quot;progid:DXImageTransform.Microsoft.Alpha(opacity=20)&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*实际上将会输出下面的代码: */</span>
<span style="color: #6666ff;">.class</span> <span style="color: #00AA00;">&#123;</span>
	filter<span style="color: #00AA00;">:</span> progid<span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.Alpha<span style="color: #00AA00;">&#40;</span>opacity<span style="color: #00AA00;">=</span><span style="color: #cc66cc;">20</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>JavaScript 赋值</h4>
<p>这是LESS中我最中意的部分：在样式表中使用Javascript——相当精彩。你可以使用表达式，也可以参考环境方向来使用反单引号。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@string: `'howdy'.toUpperCase()`; /* @string 变成 'HOWDY' */</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* 你也可以使用前面提到的插值： */</span>
<span style="color: #a1a100;">@string: 'howdy';</span>
<span style="color: #a1a100;">@var: ~`'@{string}'.topUpperCase()`; /* 变为 'HOWDY' */</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* 获取文档的信息 */</span>
<span style="color: #a1a100;">@height = `document.body.clientHeight`;</span></pre></td></tr></table></div>

<h4>输出格式</h4>
<p>然而LESS并没有输出设置，而Sass提供4中输出选项：nested, compact, compressed 和 expanded。</p>
<h3>结语</h3>
<p>这两个方法有很多共同点。对写代码的设计师来说它们都是很玄的工具，它们也可以帮助开发者更有效和快速的工作。如果你是Ruby或HAML的粉丝，那么Sass会是你的好助手。对我来说，一个PHP和JavaScript极客，我倾向于LESS，因为它便于引入和能够使用JavaScript的表达式以及文档属性。我怀疑我甚至接近真正理解在样式表中编程的可能行了，但是我仍坚持尝试。如果你在工作中有用到它们中的一个，或者两个都用，我很乐意听到关于它的更多内容，并看到你的成果。当然，技巧、诀窍、更正一直是很欢迎的。。</p>
<p>译注：翻译的有些仓促，如果有错误或者不妥的地方，欢迎指出。mixin这个单词，这里直译为“混入”了，不过感觉也不太合适，查了好久也没有见到非常合适的翻译，这里求达人指点。另外，不知道什么原因，lesscss.org貌似在贵国无法访问，大家可以直接访问LESS在git上的仓库，<a href="http://github.com/cloudhead/less.js" title="less @ git" target="_blank">http://github.com/cloudhead/less.js</a>，该项目的wiki也有和官方网站一样的文档，需要的话可以详细阅读下。——神飞</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/an-introduction-to-less-and-comparison-to-sass.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>CSS的未来：一些试验性CSS属性</title>
		<link>http://www.qianduan.net/the-future-of-css-experimental-css-properties.html</link>
		<comments>http://www.qianduan.net/the-future-of-css-experimental-css-properties.html#comments</comments>
		<pubDate>Fri, 27 May 2011 11:58:14 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12463</guid>
		<description><![CDATA[尽管现代浏览器已经支持了众多的CSS3属性，但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性。在本文中，我们将看一下鲜为人知的CSS 2.1和CSS3属性以及它们在现代浏览器... ]]></description>
			<content:encoded><![CDATA[<div>原文：<a href="http://www.qianduan.net/the-future-of-css-experimental-css-properties.html">CSS的未来：一些试验性CSS属性</a><br />
	译自：<a href="http://www.smashingmagazine.com/2011/05/11/the-future-of-css-experimental-css-properties/">The Future Of CSS: Experimental CSS Properties</a><br />
	请尊重版权，转载请注明来源，多谢！<br />
<hr /></div>
<p>尽管现代浏览器已经支持了众多的CSS3属性，但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性，如border-radius、box-shadow或者transform等。它们有良好的文档、很好的测试并且最常用到，所以如果你最近在设计网站，你很难能脱离它们。</p>
<p>但是，隐藏在浏览器的大宝库中是一些高级的、被严重低估的属性，但是它们并没有得到太多的关注。或许它们中的一些应该这样(被无视)，但是其它的属性应该得到更多的认可。最伟大的财富隐藏在Webkit的下面，而且在iPhone、iPad和Android apps的时代，开始了解它们会灰常有用。就连Firefox等使用的Gecko引擎，也提供了一些独特的属性。在本文中，我们将看一下鲜为人知的CSS 2.1和CSS3属性以及它们在现代浏览器中的支持情况。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/title1.jpg" width="500" height="334" alt="CSS的未来：一些试验性CSS属性" ></p>
<p><strong>说明:</strong> 对于每个属性，我们这里规定：&#8221;<strong>WebKit</strong>&#8221; 即指代使用Webkit内核的浏览器(Safari、Chrome、iPhone、iPad、Android等)，&#8221;<strong>Gecko</strong>&#8220;指代采用Gecko内核的浏览器(Firefox等)。然后有的属性是官方<a href="http://www.w3.org/TR/CSS21"><strong>CSS 2.1.</strong></a> 规范的一部分，这意味着更多的浏览器甚至一些古老的浏览器也会支持它们。最后，一个<a href="http://www.w3.org/Style/CSS/current-work"><strong>CSS3</strong></a> 的标签标明遵守这个标准，被最新的浏览器版本——比如Firefox 4、Chrome 10、Safari 5、Opera 11.10以及IE9支持的属性。</p>
<h3>WebKit特有属性</h3>
<h4 id="mask">-webkit-mask</h4>
<p>这个属性是相当强大的，所以详细的介绍超出了本文的范畴，它非常值得深入研究，因为它可以在实际应用中为你省掉很多时间。</p>
<p>-webkit-mask让为一个元素添加蒙板成为可能，从而你可以创建任意形状的花样。蒙板可以是CSS3渐变或者半透明的PNG图片。蒙板元素的alpha值为0的时候会覆盖下面的元素，为1的时候会完全显示下面的内容。相关的属性有-webkit-mask-clip、 -webkit-mask-position 和-webkit-mask-repeat等，严重依赖来自于background中的语法。更多信息请查看<a href="http://www.webkit.org/blog/181/css-masks">webkit的博客</a>和下面的链接。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/webkitmask2.jpg" alt="CSS的未来：一些试验性CSS属性" width="500" height="320" ></p>
<p><strong>示例</strong></p>
<p>图片蒙板:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.element<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">img/image.jpg</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span>
-webkit-mask<span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">img/mask.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>示例</strong></p>
<p>渐变蒙板:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.element2</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">img/image.jpg</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span>
-webkit-mask<span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-SW17">Safari Developer Library</a></p>
<h4>-webkit-text-stroke</h4>
<p>CSS边框的一个不足就是只有矩形的元素才能使用。-webkit-text-stroke可以为文字添加边框。它不但可以设置文字边框的宽度，也能设置其颜色。而且，配合使用color: transparent属性，你还可以创建镂空的字体！</p>
<p><strong>示例</strong></p>
<p>为所有的&lt;h1&gt;标题设定一个2px宽的蓝色边框:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h1 <span style="color: #00AA00;">&#123;</span>-webkit-text-stroke<span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>另一个特性是，通过设定1px的透明边框，可以让文字变得平滑:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h2 <span style="color: #00AA00;">&#123;</span>-webkit-text-stroke<span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>创建红色镂空字体：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h3 <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
-webkit-text-stroke<span style="color: #00AA00;">:</span> <span style="color: #933;">4px</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/webkittextstroke.jpg" alt="CSS的未来：一些试验性CSS属性" width="496" height="53"  ></p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/css/property/-webkit-text-stroke">Safari Developer Library</a></p>
<h4>-webkit-nbsp-mode</h4>
<p>换行有时是很棘手的事情：有时你希望文字在适当的地方断行(而不是折行)，有时你又不想这样。一个能控制这个的属性就是-webkit-nbsp-mode，它让你可以改变&amp;nbsp;空白符的行为，强制文字在它被用到的地方断行。通过设置值为space即可实现。</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266--webkit-nbsp-mode">Safari Developer Library</a></p>
<h4>-webkit-tap-highlight-color</h4>
<p>这个属性只用于iOS (iPhone和iPad)。当你点击一个链接或者通过Javascript定义的可点击元素的时候，它就会出现一个半透明的灰色背景。要重设这个表现，你可以设置-webkit-tap-highlight-color为任何颜色。</p>
<p>想要禁用这个高亮，设置颜色的alpha值为0即可。</p>
<p><strong>示例</strong></p>
<p>设置高亮色为50%透明的红色:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-webkit-tap-highlight-<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p><strong>浏览器支持</strong>: 只有iOS(iPhone和iPad).</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-_webkit_tap_highlight_color">Safari Developer Library</a></p>
<h4>zoom: reset</h4>
<p>通常来说，zoom是一个IE专用的属性。但是webkit也开始支持它了，而且使用值reset，webkit可以实现不错的效果(有趣的是，IE不支持这个值)。它让你重设掉浏览器中正常的缩放行为——如果某个元素被声明了zoom:reset，页面上的<strong>其它元素</strong>在用户放大页面的时候都会跟着放大。</p>
<p>注：其实，我们常用来禁用chrome强制字体大小的时候用到的-webkit-text-size-adjust:none;也是可以实现类似的效果，不同的是，设置该属性的元素内的文字不会被放大/缩小，但是页面上的其它元素则会变化——神飞</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-SW15">Safari Developer Library</a></p>
<h4>-webkit-margin-collapse</h4>
<p>这个属性属于限制级的，但是它还是非常值得关注。通常，两个相邻的元素的margin会折叠起来(collapse)。这意味着第一个元素的底部的边距和第二个元素的头部边距会被合并到一起。</p>
<p>最常见的例子就是两个相邻的&lt;p&gt;元素会共享他们的margin值。想要控制这个表现，我们可以使用-webkit-margin-collapse及其分拆后的-webkit-margin-top-collapse、-webkit-margin-bottom-collapse等属性。默认值是collapse，值separate则停止共享margin值，也就是说，第一个元素的底部边距和第二个元素的头部边距会正常叠加。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/webkitmargincollapse.jpg" alt="CSS的未来：一些试验性CSS属性" width="495" height="242"  ></p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266--webkit-margin-collapse">Safari Developer Library</a></p>
<h4>-webkit-box-reflect</h4>
<p>你还记得几乎每个网站都把他们的网站logo或者头部的文字做成倒影的那个年代吗？谢天谢地，那个年代已经过去了，但是如果你要在一些按钮、导航、或者其他UI元素上更好的使用这个技术，-webkit-box-reflect是更好的选择。</p>
<p>这个属性接受above、below、left和right四个关键词，它们设置倒影的方向，它们和一个设置元素和它的倒影建的距离的数字一起使用。同时，蒙板图片也是同样支持的(看上面的-webkit-mask部分，不要搞混了哈)。倒影会自动生成并对布局<strong>没有影响</strong>。下面的元素只用了CSS，第二个按钮用了-webkit-box-reflect属性。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/webkitboxreflect.jpg" alt="CSS的未来：一些试验性CSS属性" width="421" height="265"  ></p>
<p><strong>示例</strong></p>
<p>这个倒影会出现在它的父元素的下面并有5px的间距:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-webkit-box-reflect<span style="color: #00AA00;">:</span> <span style="color: #993333;">below</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>这个倒影会投射到元素的右边，没有间距。然后，一个蒙板将会被应用(url(mask.png)):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-webkit-box-reflect<span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">mask.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-SW16">Safari Developer Library</a></p>
<h4>-webkit-marquee</h4>
<p>另一个属性让我们回到美好的从前：那个遍地marquee(跑马灯)的年代。有趣的是这个已经被遗弃的标签反而在现在变的很有用，比如我们在比较小的手机屏幕上切换内容，如果不断行的话文字将不能完全显示。</p>
<p><a href="http://i.ozpda.com/ozweather/">ozPDA</a>创建的这个天气的应用很好的使用了它。 (如果你木有看到变换的文字，可以尝试换一个城市来体验。需要使用WebKit内核浏览器)</p>
<p><strong>示例</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.marquee</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">nowrap</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #3333ff;">:-webkit-</span>marquee<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">70px</span><span style="color: #00AA00;">;</span>
-webkit-marquee-<span style="color: #000000; font-weight: bold;">direction</span><span style="color: #00AA00;">:</span> forwards<span style="color: #00AA00;">;</span>
-webkit-marquee-speed<span style="color: #00AA00;">:</span> <span style="color: #993333;">slow</span><span style="color: #00AA00;">;</span>
-webkit-marquee-style<span style="color: #00AA00;">:</span> alternate<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>要让marquee工作需要一些前提条件。首先，white-space必须设置为nowrap，这样才能让文字不自动换行，其次，overflow必须设置为-webkit-marquee，宽度也要设置为比文字实际长度小的数值。</p>
<p>剩下的属性确保文字从左边滚动到右边(-webkit-marquee-direction)、来回移动(-webkit-marquee-style)以及以比较低的速度移动(-webkit-marquee-speed)。其它的属性有-webkit-marquee-repetition，用来定义marquee重复的次数，-webkit-marquee-increment, 定义每次递增的速度变化。</p>
<p>注：虽然HTML的marquee标签在XHTML中被抛弃了，但是各浏览器还是支持的，但是有一个问题就是，marquee标签可能会占用比较大的cpu，<a href="http://ooxx.me">大猫</a>对其进行了深入的研究，结论是marquee的速度不能太快，而webkit用-webkit-marquee属性是最好的——神飞。</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-_webkit_marquee">Safari Developer Library</a></p>
<h3>Gecko特有属性</h3>
<h4>font-size-adjust</h4>
<p>这个有用的CSS3属性目前只有Firefox支持。我们可以用它来设定指定元素的文字大小(font-size)应该相对于小写字母的高度(x-height)而不是大写字母的高度(cap height)。比如，Verdana比同型号的Times字体更清晰，它有着更矮的x-height。为了弥补这个缺陷，我们可以用font-size-adjust属性来纠正后者。</p>
<p>该属性在拥有不同的x-height的字体上非常有用。即便你在小心的使用小号字体，在问题出现时font-size-adjust也能提供解决方案。</p>
<p><strong>示例</strong></p>
<p>如果由于某种原因用户的电脑上没有安装Verdana，那么Arial就会被修正，从而和Verdana有相同的长宽比(0.58)。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #3333ff;">:Verdana</span><span style="color: #00AA00;">,</span> Arial<span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size-adjust</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0.58</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/fontsizeadjust.jpg" alt="CSS的未来：一些试验性CSS属性" width="485" height="78"  ></p>
<p><strong>浏览器支持</strong>: Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="https://developer.mozilla.org/en/CSS/font-size-adjust">Mozilla Developer Network</a></p>
<h4>image-rendering</h4>
<p>n年前，图片并不会被按照其原始大小显示，而是被设计师给缩放掉。取决于缩放的大小和上下文，图片可能会在浏览器中展现的不太好或者干脆就是错掉了的。现在，浏览器有了更好的算法来显示缩放的图片，不过，在你的图片被缩放后完全的控制其表现也是件很赞的事情。</p>
<p>如果你的图片有比较锐的线条并希望他们在缩放后保持它，这个Gecko私有属性就显得特别有用。相关的值是-moz-crisp-edges。同样的算法也用在optimizeSpeed，而auto 和optimizeQuality 定义为标准行为(用可行的最佳质量来缩放元素)。 image-rendering 属性同样可以用于&lt;video&gt; 和&lt;canvas&gt;元素，和用于背景图片一样。这是个CSS3 标准属性，但是目前只有Firefox支持。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/imagerendering.jpg" alt="CSS的未来：一些试验性CSS属性" width="500" height="351"  ></p>
<p>值得注意的是，-ms-interpolation-mode: bicubic，尽管它是个IE专有属性。然而，它让Internet Explorer 7 在缩放图片后将其渲染为比较高的质量。由于这个浏览器默认处理的很烂，所以这个属性可能会很有用。</p>
<p><strong>浏览器支持</strong>: Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="https://developer.mozilla.org/en/CSS/image-rendering">Mozilla Developer Network</a></p>
<h4>-moz-border-top-colors</h4>
<p>这个属性可以归类为&#8217;养眼&#8217;。它让你可以在border宽度大于1px的时候为其设置不同的边框颜色。当然-moz-border-bottom-colors, -moz-border-left-colors 和-moz-border-right-colors也是可用的。</p>
<p>不爽的是，没有一个简写的-moz-border-colors 缩写，所以每个边框都要分开设置。同时，border-width要和给到的颜色的数量保持一致，否则，最后的那个颜色值会填充到剩下的宽度。</p>
<p><strong>示例</strong></p>
<p>这个例子中，元素的左右两边边框会是标准的橙色，上下则有种类似渐变的颜色——红黄蓝三色。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #993333;">solid</span> orange<span style="color: #00AA00;">;</span>
-moz-border-top-colors<span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span> <span style="color: #993333;">yellow</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">;</span>
-moz-border-bottom-colors<span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span> <span style="color: #993333;">yellow</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/mozbordercolors.jpg" alt="CSS的未来：一些试验性CSS属性" width="421" height="155"  ></p>
<p><strong>浏览器支持</strong>: Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="https://developer.mozilla.org/en/CSS/-moz-border-top-colors">Mozilla Developer Network</a></p>
<h3>混合属性</h3>
<h4>-webkit-user-select 和 -moz-user-select</h4>
<p>或许你常常不希望用户在你的网站上选择文本，无论是否是出于版权的原因。通常大家会有js来实现，另一个方案就是，将-webkit-user-select 和-moz-user-select 的值设为none。</p>
<p>请谨慎使用这个属性：因为大部分用户是来查看信息的，他们可以复制并存储下来以备将来之用，所以这种方法既无用也无效。如果你禁用了复制粘贴功能，用户还是可以通过查看源文件来获取到他们想要的内容。搞不懂这个属性为什么会被webkit和gecko支持。</p>
<p><strong>浏览器支持</strong>: WebKit, Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/css/property/-webkit-text-stroke">Safari Developer Library</a>, <a href="https://developer.mozilla.org/en/CSS/-moz-user-select">Mozilla Developer Network</a></p>
<h4>-webkit-appearance 和 -moz-appearance</h4>
<p>你曾经想过将一张图片伪装成单选按钮么？或者，一个输入框看起来像一个复选框？那么现在appearance 出现了。即便你并不想要让一个链接看起来总是像个按钮，下面这个例子也可以让你了解到，只要你愿意就可以做到的：</p>
<p><strong>示例</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">a <span style="color: #00AA00;">&#123;</span>
-webkit-appearance<span style="color: #00AA00;">:</span> button<span style="color: #00AA00;">;</span>
-moz-appearance<span style="color: #00AA00;">:</span> button<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>浏览器支持</strong>: WebKit, Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/css/property/-webkit-text-stroke">Safari Developer Library</a>, <a href="https://developer.mozilla.org/en/CSS/-moz-appearance">Mozilla Developer Network</a>, <a href="https://developer.mozilla.org/en/CSS/text-align">Mozilla Developer Network</a>,<a href="http://www.qianduan.net/css3-appearance.html" rel="bookmark" title="CSS3 appearance简介">CSS3 appearance简介</a></p>
<h4>text-align: -moz-center/-webkit-center</h4>
<p>这是一个属性（或者精确来说，是个“属性值”）的存在很让人惊喜啊。要让一个块级元素居中，大家通常将其设置为margin:0 auto。但是，现在你也可以将元素的容器的text-align属性设置为-moz-center 和 -webkit-center。相应的，你也可以通过设置-moz-left、-webkit-left或-moz-right、-webkit-right将元素居左或者居右。</p>
<p><strong>浏览器支持</strong>: WebKit, Gecko.</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-text-align">Safari Developer Library</a></p>
<h3>CSS 2.1属性</h3>
<h4>counter-increment</h4>
<p>你是否经常希望你可以让一个有序列表或者一篇文章的所有标题自动编号？不幸的是，目前尚未有CSS3属性支持。但是在CSS 2.1中，counter-increment 提供了一个解决方案。这就意味着它已经出现好些年了，而且在IE8中就已经支持了。</p>
<p>配合:before 伪元素和content 属性，counter-increment可以为所有的HTML标签添加自动的编号。即便是嵌套的编码也是支持的。</p>
<p><strong>示例</strong></p>
<p>要给标题编码，先将计算器重设一下:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">body <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> thecounter<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>下面的样式让每一个&lt;h1&gt;标题都有一个&#8221;Section&#8221;的前缀，然后其后面的数字自动的递增1(这是默认的，可以省略掉)，这里thecounter是计算器的名称:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.counter</span> h1<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> thecounter <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;Section&quot;</span>counter<span style="color: #00AA00;">&#40;</span>thecounter<span style="color: #00AA00;">&#41;</span><span style="color: #ff0000;">&quot;:&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>示例</strong></p>
<p>对于一个嵌套编码的列表，重设计数器，然后关掉&lt;ol&gt;的自动编码，因为它是无嵌套的:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">ol <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> section<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>然后，每个&lt;li&gt;设置为自动编号，分割符是一个点(.)，后面跟着一个空格</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">li<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> section<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counters<span style="color: #00AA00;">&#40;</span>section<span style="color: #00AA00;">,</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>HTML代码：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>item<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> <span style="color: #808080; font-style: italic;">&lt;!-- 1 --&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>item <span style="color: #808080; font-style: italic;">&lt;!-- 2 --&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>item<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> <span style="color: #808080; font-style: italic;">&lt;!-- 1.1 --&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>item<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> <span style="color: #808080; font-style: italic;">&lt;!-- 1.2 --&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ol</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>item<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> <span style="color: #808080; font-style: italic;">&lt;!-- 3 --&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span></pre></td></tr></table></div>

<p><strong>浏览器支持</strong>: CSS 2.1.，所有的现代浏览器，IE 7+.</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/CSS21/generate.html#counters">W3C</a>，<a href="http://www.qianduan.net/css-content-counter-increment-counter-reset.html">CSS content, counter-increment 和 counter-reset详解</a></p>
<h4>quotes</h4>
<p>你会因为你的CMS不知道如何正确转换引用符号而纠结么？那么开始使用quotes属性吧。这样你就可以自定义任何符号了。然后你就可以用:before和:after伪元素为任何期望的元素指定引号了，悲催的是，webkit浏览器不支持这个属性——经测试，chrome 11已经开始支持这个属性了（之前的版本没有测试）。</p>
<p><strong>示例</strong></p>
<p>前面的两个符号决定第一级引用内容的引号，后面的两个用于二级引用，以此类推：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">q <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">quotes</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'«'</span> <span style="color: #ff0000;">'»'</span> <span style="color: #ff0000;">&quot;‹&quot;</span> <span style="color: #ff0000;">&quot;›&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>下面两行用于为选定元素指定引号:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">q<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">open-quote</span><span style="color: #00AA00;">&#125;</span>
q<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">close-quote</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>这样，&lt;p&gt;&lt;q&gt;This is a very &lt;q&gt;nice&lt;/q&gt; quote.&lt;/q&gt;&lt;/p&gt;看起来将会是酱紫的：<br />
	<strong>«This is a very ‹nice› quote.»</strong></p>
<p><strong>浏览器支持</strong>: CSS 2.1.,除了WebKit，IE 7和IE6的所有现代浏览器。不过chrome是支持的。。。</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/CSS2/generate.html#quotes">W3C</a></p>
<p><strong>问题：</strong>要直接的添加符号，CSS文档必须要设置为UTF-8吗？这是一个很纠结的问题。遗憾的是，我不能给出一个明确的答案。我的经验是，不必要设置什么特定的字符集，然后utf-8字符集可能会出错，因为它显示错掉的字符(比如&#8221;»&#8221;)。而是用iso-8859-1 字符集，一切就都是正常的。</p>
<p>W3C<a href="http://www.w3.org/TR/CSS21/generate.html">这样描述</a>：&#8221;由于上个例子中由&#8217;quotes&#8217;定义的引号方便的定位在电脑键盘上，高质量的字符则需要不同的10646字符集。&#8221;</p>
<h3>你或许听说过但是没有记住的CSS3属性</h3>
<p>接近尾声，让我们重温一些不太流行的以及不像border-radius和box-shadow那样被广泛需求的CSS3属性。</p>
<h4>text-overflow</h4>
<p>或许你会常常遇到这个问题：某个容器对于其内的文字来说太小了，然后你不得不用javascript来截断字符串并添加&#8221;…&#8221;符号以避免文字溢出。</p>
<p>忘掉它吧！采用CSS3和text-overflow: ellipsis，如果文字比它的容器的宽度要长的话，你就可以强制文字以&#8221;…&#8221;结束它。唯一的要求是设置overflow:hidden。不幸的是，Firefox不支持这个属性，但是貌似在最近的版本中将会提供支持。</p>
<p><strong>示例</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
text-<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> ellipsis<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/textoverflow.jpg" alt="CSS的未来：一些试验性CSS属性" width="500" height="190"  ></p>
<p><strong>浏览器支持</strong>: CSS 3，所有浏览器的最新版本，除了Firefox，IE从IE6开始支持，据说Firefox到6.0也会提供支持的——希望如此吧。</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/2010/WD-css3-text-20101005/#text-overflow">W3C</a></p>
<h4>word-wrap</h4>
<p>当文字在一个比较窄的容器中时，它的某个部分可能会因为太长而不能正确的换行。比如链接就常常引起问题。如果你不想用overflow: hidden隐藏溢出的文字，那么你就可以设置 word-wrap 为break-word，它可以让字符串在到达容器的宽度限制时换行。</p>
<p><strong>示例</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
word-wrap<span style="color: #00AA00;">:</span> break-word<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/wordwrap.jpg" alt="CSS的未来：一些试验性CSS属性" width="484" height="189"  ></p>
<p><strong>浏览器支持</strong>: CSS 3，所有现代浏览器。</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/2011/WD-css3-text-20110215/#word-wrap">W3C</a></p>
<h4>resize</h4>
<p>如果你在使用Firefox或Chrome，那么你肯定注意到了文本框的右下角默认有个小的手柄，它可以让你调整它们的大小。这个标准的行为由CSS3 属性 resize: both实现。</p>
<p>但是它并不仅限于textarea。它可以用于所有的HTML元素。horizontal 和 vertical 值用于控制调整水平方向还是垂直方向。</p>
<p>请注意：对于display:block元素，如果设置了overflow:visible，resize属性将会无效(这一点原文描述不详——by 神飞)。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/resize.jpg" alt="CSS的未来：一些试验性CSS属性" width="443" height="166"  ></p>
<p><strong>浏览器支持</strong>: CSS3, 除了Opera和IE以为的其它最新的浏览器。</p>
<p><strong>扩展阅读</strong>: <a href="http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-resize">Safari Developer Library</a></p>
<h4>background-attachment</h4>
<p>当你为一个设置了overflow:auto的元素指定背景图片的时候，当内容太多而出现滚动条后，拖动滚动条就会发现背景图片的位置是固定的，而不是随着滚动条移动。如果你想要背景图片随着内容而滚动，可以设置background-attachment:local。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/backgroundattachment.jpg" alt="CSS的未来：一些试验性CSS属性" width="500" height="213"  ></p>
<p><strong>浏览器支持</strong>: CSS 3，除了Firefox以外的所有现代浏览器，Firefox是<strong>支持</strong>background-attachment属性的，只是<a href="https://developer.mozilla.org/en/CSS/background-attachment" target="_blank">不支持local值</a>.</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/2011/WD-css3-text-20110215/#word-wrap">W3C</a></p>
<h4>text-rendering</h4>
<p>随着越来越多的网站开始用@font-face来渲染文字，易读性开始被关注了。小号字体上，文字会更容易出现。由于目前还没有CSS属性控制显示在线字体的微妙细节，你可以利用text-rendering来启用<a href="http://en.wikipedia.org/wiki/Kerning">kerning</a> 和 <a href="http://en.wikipedia.org/wiki/Typographic_ligature">ligatures</a>。</p>
<p> Gecko 和WebKit 浏览器处理这个属性的方式很不一样。前者默认启用这个特性，而后者，你需要将其设置为optimizeLegibility。</p>
<p><img src="http://img.qianduan.net/uploads/2011/05/textrendering.jpg" alt="CSS的未来：一些试验性CSS属性" width="461" height="169"  ></p>
<p><strong>浏览器支持</strong>: CSS3, 所有WebKit 和Firefox浏览器.</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/2011/WD-css3-text-20110215/#word-wrap">W3C</a></p>
<h4>transform: rotateX/transform: rotateY</h4>
<p>如果你已经开始使用CSS3，那么你可能会比较熟悉transform: rotate()，这个在z轴上旋转元素的属性。</p>
<p>但是你是否也知道，它也可以更深入的旋转的(比如，围绕x轴和y轴)？ 这些变形结合-webkit-backface-visibility: hidden会更合适。</p>
<p><strong>示例</strong></p>
<p>如果你鼠标经过这个元素，它将会旋转180°，倒转过来:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span>
transform<span style="color: #00AA00;">:</span> rotateY<span style="color: #00AA00;">&#40;</span>180deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img src="http://img.qianduan.net/uploads/2011/05/rotate.jpg" alt="CSS的未来：一些试验性CSS属性" width="425" height="293"  ></p>
<p><strong>小技巧:</strong>如果只是映射一个元素，你可以设置transform为rotateX(180deg) (对应rotateY)或者设置transform 为scaleX(-1) (对应scaleY).</p>
<p><strong>浏览器支持</strong>: CSS3, WebKit、firefox、Opera以及IE9</p>
<p><strong>扩展阅读</strong>: <a href="http://www.w3.org/TR/2011/WD-css3-text-20110215/#word-wrap">W3C</a>，<a href="http://www.qianduan.net/what-you-need-to-know-about-behavioral-css.html" rel="bookmark" title="Permanent Link: 你需要知道的CSS3 动画技术">你需要知道的CSS3 动画技术</a></p>
<h3>结语</h3>
<p>正如你希望见到的，还有很多未知的很有用的属性。他们中的很多仍然处于试验性阶段并且可能一直这样甚至最终可能会被浏览器摈弃。而有些有望在后续版本中被所有的浏览器支持。</p>
<p>然而，很难判断判断他们中的一些是好是坏，WebKit特有的属性随着iOS和Android的成功显得越来越重要。当然，一些CSS3属性多多少少已经可以使用了。</p>
<p>如果你不喜欢私有属性，你可以将它们视为实验直到可以在代码中实现以增强用户体验。同时，W3C的<a href="http://lists.w3.org/Archives/Public/www-validator-css/2011Jan/0020.html">CSS validator</a> 同样支持私有属性，它会返回警告而不是错误。</p>
<p>祝你体验快乐！</p>
<p>PS：本文提到了很多特性，但是只是个概览，其实基本上每个属性都可以深入研究下的，如果你有兴趣，欢迎深入研究并分享之，谢谢——神飞。</p>
<p>本文原作者<a href="http://twitter.com/#!/edge0703">Christian Krammer</a>是最近很牛B的<a href="http://css3files.com/">css3files.com</a>的站长。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/the-future-of-css-experimental-css-properties.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>CSS3开发工具收集</title>
		<link>http://www.qianduan.net/css3-development-tools-collection.html</link>
		<comments>http://www.qianduan.net/css3-development-tools-collection.html#comments</comments>
		<pubDate>Mon, 12 Apr 2010 00:32:04 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12054</guid>
		<description><![CDATA[通常来说，CSS非常简单。但是当浏览器厂商开始实现CSS3特性，问题开始变得有些复杂了。不难，只是有些复杂。这可能包括两个方面：首先有些心得CSS3属性(比如，transition、渐变、transform等)不... ]]></description>
			<content:encoded><![CDATA[<div>整理自：<a href="http://www.w3avenue.com/2010/04/09/list-of-really-useful-tools-for-css3-developers/">List of Really Useful Tools For CSS3 Developers</a><br />
中文：<a href="http://www.qianduan.net/css3-development-tools-collection.html">CSS3开发工具收集</a><br />
<hr /></div>
<p>通常来说，CSS非常简单。但是当浏览器厂商开始实现CSS3特性，问题开始变得有些复杂了。不难，只是有些复杂。这可能包括两个方面：首先有些心得CSS3属性(比如，transition、渐变、transform等)不是那么简单，其次我们不得不使用浏览器厂商指定扩展。</p>
<p><span id="more-12054"></span><img class="alignnone size-full wp-image-12055" title="CSS3开发工具收集" src="http://www.qianduan.net/wp-content/uploads/2010/04/cover.jpg" alt="CSS3开发工具收集" width="500" height="250" /></p>
<p>直到你最喜欢用的IDE原生支持CSS3，你最好的伙伴将是CSS3生成器、手册、参考指南以及基于JS的方案。这正是本文要推荐的，这里将收集能够助你学习和使用CSS3的真正有用的工具。</p>
<h3>生成器</h3>
<ul>
<li><a href="http://css3please.com/">CSS3 Please!</a>跨浏览器的CSS规则生成器，支持：border-radius、box-shadow、渐变(线性)、rgba色彩、transform (旋转)、transition和@font-face。</li>
<li><a href="http://css3generator.com/">CSS3 生成器</a>支持border radius、box shadow、text shadow、RGBA、@font-face、多列、box resize、box sizing 和outline.</li>
<li><a href="http://westciv.com/tools/index.html">CSS3 Sandbox</a>有一些列的CSS3生成器：<a href="http://westciv.com/tools/gradients/">线性渐变</a>、<a href="http://westciv.com/tools/radialgradients/index.html">放射渐变</a>、<a href="http://westciv.com/tools/shadows/index.html">文字阴影</a>、<a href="http://westciv.com/tools/boxshadows/index.html">盒阴影</a>、<a href="http://westciv.com/tools/transforms/index.html">Transforms</a>和<a href="http://westciv.com/tools/textStroke/index.html">文字描边</a>。</li>
<li><a href="http://www.fontsquirrel.com/fontface/generator" target="_blank">@font-face生成器</a>来自于Font Squirrel的很好用的CSS3 @font-face 生成器。</li>
<li><a href="http://gradients.glrzad.com/">CSS3渐变生成器</a>为Firefox和Webkit浏览器生成线性渐变。</li>
<li><a href="http://border-radius.com/">CSS 圆角</a>生成用于Firefox、Webkit和标准CSS3语法的“border-radius”属性。</li>
<li><a href="http://www.widgetpad.com/694/" target="_blank">Webkit CSS3 生成器</a>简单的助你理解Webkit引入的CSS3特性。</li>
<li><a href="http://leaverou.me/scripts/css3learn.html" target="_blank">CSS3 学习工具</a>动态为你的浏览器获取私有前缀并检测该属性是否被它支持。</li>
</ul>
<h3>JavaScript方案</h3>
<ul>
<li><a href="http://www.modernizr.com/" target="_blank">Modernizr</a>一个确实很有用的JavaScript库，可以检测HTML5/CSS3的原生支持，并为你提供一种维护良好控制级别的方法，不管浏览器的能力。如果你更喜欢使用MooTools，你可以使用<a href="http://www.aryweb.nl/projects/mooModernizr/" target="_blank">MooModernizr</a> (MooTools 版本的Modernizr)</li>
<li><a href="http://sizzlejs.com/">Sizzle – JavaScript 选择器库</a>一个纯Javascript选择器引擎，被设计用来方便的插入到一个主库中。Sizzle 实际上支持所有的CSS3 选择器——它甚至包括一些很不常用的选择器，比如忽略选择器(escaped selectors )(”.foo\\+bar”)、Unicode 选择器、以及在document序列中返回的结果。这也是jQuery使用的选择器引擎。</li>
<li><a href="http://developer.yahoo.com/yui/selector/">YUI 选择器组件</a>YUI CSS3 选择器组件，提供一个收集、过滤和测试HTML元素的稳定的简写方法。</li>
<li><a href="http://code.google.com/p/ie7-js/" target="_blank">ie7-js</a>一个让IE拥有兼容标准的浏览器一样的行为的JavaScript库。</li>
<li><a href="http://www.keithclark.co.uk/labs/ie-css3/">CSS3伪类选择器模拟</a>ie-css3.js 可使Internet Explorer识别CSS3 伪类选择器并渲染任何使用它们定义的样式规则。简单滴在你的页面中引入这个脚本，然后在你的样式表中使用这些伪类选择器，然后IE就可以使用了。</li>
</ul>
<h3>参考指南</h3>
<ul>
<li><a href="http://isd.tencent.com/css3/" target="_blank">CSS 3.0参考手册</a><br />
腾讯ISD WebTeam制作的一个CHM格式的参考手册，很全面，介绍+实例，推荐下载收藏；</li>
<li><a href="http://a.deveria.com/caniuse/#agents=All&amp;eras=All&amp;cats=CSS3&amp;statuses=rec,pr,cr,wd,ietf" target="_blank">我什么时候能用CSS3</a>CSS3、HTML5、SVG以及其它即将可用的页面技术的浏览器兼容性列表；</li>
<li><a href="http://www.findmebyip.com/" target="_blank">浏览器支持清单</a>使用Modernizr库检测你的浏览器支持的“高级”特性，包括CSS3特性和选择器的支持。</li>
<li><a href="http://tools.css3.info/selectors-test/test.html" target="_blank">CSS3选择器测试</a>自动运行大量的判断你的浏览器是否支持一些CSS选择器的小测试；</li>
<li><a href="http://gallery.theopalgroup.com/selectoracle/">SelectORacle</a>一个提供CSS2和CSS3选择器介绍的在线工具。简单的给它一些选择器，他就会返回选择器匹配的相关说明。</li>
<li><a href="http://jspedia.com/complete-up-to-date-css3-cheat-sheet-quick-reference-guide.html" target="_blank">CSS3手册与快速指南</a>提供当前CSS3规范的列表，列出属性可用的值、常用的选择器模式参考，以type/单位组织，选择器类型参考和单位参考和信息(另有<a href="http://www.veign.com/reference/css3-guide.php" target="_blank">PDF 版本</a>)；</li>
<li><a href="http://reference.sitepoint.com/css/css3psuedoclasses" target="_blank">CSS3伪类</a>SitePoint的CSS参考的相关部分内容；</li>
<li><a href="http://www.smashingmagazine.com/2009/07/13/css-3-cheat-sheet-pdf/" target="_blank">CSS3 速查手册</a>CSS3属性、选择器类型以及可用的值的列表，PDF格式；</li>
</ul>
<p><a href="http://www.codenique.com/web_color/css3_color_names.php" target="_blank">CSS3色彩名称</a></p>
<p>提供所有147种色彩的名字以及按照字母排序的值。</p>
<ul></ul>
<p>如有更多有用的工具，欢迎通过评论分享。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css3-development-tools-collection.html/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>iPad Orientation CSS</title>
		<link>http://www.qianduan.net/ipad-orientation-css.html</link>
		<comments>http://www.qianduan.net/ipad-orientation-css.html#comments</comments>
		<pubDate>Sat, 10 Apr 2010 15:53:49 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[orientation]]></category>
		<category><![CDATA[媒体查询]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12044</guid>
		<description><![CDATA[iPad终于发布了，那么如果用样式区分iPad和iPhone中的safari浏览器，Jason Grigsby做了一个有用的实验... ]]></description>
			<content:encoded><![CDATA[<div>译自：<a href="http://www.cloudfour.com/ipad-orientation-css/" target="_blank">iPad Orientation CSS</a></div>
<p>iPad终于发布了，那么如果用样式区分iPad和iPhone中的safari浏览器，Jason Grigsby做了一个有用的实验。<span id="more-12044"></span></p>
<p>就绝大部分而言，iPad上的移动版safari和iPhone上的事一样的。我发现的一个不同是，iPad上的webkit支持基于方向(orientation)的CSS媒体查询(media query)声明。</p>
<p>我为iPad创建了<a href="http://www.cloudfour.com/ipad-css/" target="_blank">一个简单的演示目标CSS的页面</a>。</p>
<p>在CSS中使用orientation 非常简单，代码就行这样：</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span>”stylesheet” <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span>”all and <span style="color: #66cc66;">&#40;</span>orientation:portrait<span style="color: #66cc66;">&#41;</span>” <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span>”portrait.css”&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span>”stylesheet” <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span>”all and <span style="color: #66cc66;">&#40;</span>orientation:landscape<span style="color: #66cc66;">&#41;</span>” <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span>”landscape.css”&gt;</span></pre></div></div>

<p>在这个例子中，两个CSS文件中的唯一不同就是隐藏其中的一个标题。该演示页面的HTML部分如下：</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span>”portrait”&gt;</span>You’re Viewing in Portrait Mode<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span>”landscape”&gt;</span>You’re Viewing in Landscape<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span></pre></div></div>

<p><a href="http://www.cloudfour.com/ipad-css/portrait.css">portrait.css</a>中的CSS只是简单的隐藏landscape部分的&lt;h1&gt;:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#landscape</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>当然，<a href="http://www.cloudfour.com/ipad-css/landscape.css">landscape.css</a>的作用与之相反。</p>
<p>你可以在最新版本的Safari/Chrome和Firefox中看到这个CSS查询。简单的改变你的浏览器的窗口大小，让其高度大于宽度，你就能看到效果了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/ipad-orientation-css.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>前端观察今日裸奔</title>
		<link>http://www.qianduan.net/front-end-observation-today-streaker.html</link>
		<comments>http://www.qianduan.net/front-end-observation-today-streaker.html#comments</comments>
		<pubDate>Fri, 09 Apr 2010 01:17:16 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front News]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[可用性]]></category>
		<category><![CDATA[裸奔]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12040</guid>
		<description><![CDATA[一年一度的CSS裸奔节到来了，尽管裸奔节的组织者今年没有更新活动，但是作为这么一件有意义的事情，我想还是需要继续坚持一下。 其实，将CSS褪去之后，不仅仅能够彰显CSS对于网站前端的... ]]></description>
			<content:encoded><![CDATA[<p>一年一度的CSS裸奔节到来了，尽管裸奔节的组织者今年没有更新活动，但是作为这么一件有意义的事情，我想还是需要继续坚持一下。</p>
<p>其实，将CSS褪去之后，不仅仅能够彰显CSS对于网站前端的重要性，更能体现网站的可用性！这也是检验一个网站可用性的最简单的方法之一。</p>
<p>废话不多说，脱了～～</p>
<p>PS：其实今年WebReBuild.org组织了今年国内的裸奔节，感兴趣的童鞋请速速前往围观：<a href="http://naked.webrebuild.org/" target="_blank">http://naked.webrebuild.org/</a></p>
<p>PS2：同时，欢迎对赤裸裸的前端观察的页面结构提出建设性意见 :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/front-end-observation-today-streaker.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>CSS Sprites：鱼翅还是三鹿？</title>
		<link>http://www.qianduan.net/css-sprites-useful-technique-or-potential-nuisance.html</link>
		<comments>http://www.qianduan.net/css-sprites-useful-technique-or-potential-nuisance.html#comments</comments>
		<pubDate>Thu, 08 Apr 2010 02:35:15 +0000</pubDate>
		<dc:creator>糖伴西红柿</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=12023</guid>
		<description><![CDATA[原文：CSS Sprites: Useful Technique, or Potential Nuisance?

译文：CSS Sprites：鱼翅还是三鹿？

无处不在的 CSS sptites － 为数不多的几个可以直接跳过"流行"这个过程，而可以马上并且牢牢地跻身于最佳 ... ]]></description>
			<content:encoded><![CDATA[<p>原文：<a href="http://www.smashingmagazine.com/2010/03/26/css-sprites-useful-technique-or-potential-nuisance/">CSS Sprites: Useful Technique, or Potential Nuisance?</a></p>
<p>译文：<a href="http://www.qianduan.net/css-sprites-us…ntial-nuisance.html">CSS Sprites：鱼翅还是三鹿？</a></p>
<p>无处不在的 CSS sptites － 为数不多的几个可以直接跳过&#8221;流行&#8221;这个过程，而可以马上并且牢牢地跻身于最佳 CSS 实践之中的几个技术之一。虽然它真正流行是在 A List Apart <a href="http://www.alistapart.com/articles/sprites/">解释并认可这个技术</a>之后，但是早在 2003 年 7 月份，Peter Stanicek 就已经开始<a href="http://wellstyled.com/css-nopreload-rollovers.html">谈论</a>它了。</p>
<p>目前大多数的开发人员对这个技术都有相当地掌握，也有很多关于它的教程和文章。几乎所有的文章中都宣称设计师和开发人员都应该使用 CSS sprite 来减少 HTTP 请求数，并且节省一些流量。这个技术被大量网站使用，包括使用了<a href="http://g-ecx.images-amazon.com/images/G/01/gno/images/orangeBlue/navPackedSprites-US-15._V202471683_.png">大型 sprite 的 Amazon</a> .</p>
<p>但是这些被广泛热议的好处真的是值得的吗？设计师们是否在没有全面考虑到所有情况的情况下，在盲目地使用这个技术呢？设计师们是不是过于关注 CSS sprite 的流行，而忽略了其它应该仔细斟酌的因素了呢？ 这篇文章会讨论下使用 CSS sprite 的好处和坏处，尤其关注&#8221;滥用&#8221; sprites 的情况，而且会解释下为什么“滥用” sprite 其实是浪费时间。<span id="more-12023"></span></p>
<h2 id="toc2">浏览器缓存所有图片</h2>
<p>sprite 技术的其中一个好处是图片的加载时间(在有许多 sprite 时，单张图片的加载时间)。由所需图片拼成的一张 GIF 图片的尺寸会明显小于所有图片拼合前的大小。单张的 GIF 只有相关的一个色表，而单独分割的每一张 GIF 都有自己的一个色表，这就增加了总体的大小。因此，单独的一张 JPEG 或者 PNG sprite 在大小上非常可能比把一张图分成多张得来的图片总尺寸小。但是这真的有想象的那么好吗？</p>
<p>一般来说，浏览器会缓存所有的图片 &#8211; 无论图片 sprite 与否。sprite 技术只是在页面第一次加载的时候才会节省带宽，同时缓存也会对使用相同图片的其他页面有效。</p>
<p><img class="alignnone size-full wp-image-12022" title="cache" src="http://www.qianduan.net/wp-content/uploads/2010/04/cache.gif" alt="" width="500" height="384" /></p>
<p>Firefox 缓存显示的浏览器缓存的来自 amazon.com 的图片(在 Firefox 地址栏输入 &#8220;about:cache&#8221; 来查看)。</p>
<p>考虑到现在的普遍网速已经比 2003-2004 年时提出这个技术的时候要快多了，因此大量使用 sprite 技术就不是那么必要了。有一点需要明确，不是说不应该用 sprite，而是不应该为了有限的好处来滥用这个技术。</p>
<h2 id="toc3">拼合图片的时间成本会增加</h2>
<p>想象一下一个有三个状态的图片按钮是怎么制作的：代表不同的状态的图片需要临近放置在一起组成一张图片。在使用 Photoshop 或其他软件切图时，不同的状态并不会在一起；需要把他们单独切出来再合并为一张图片。</p>
<p>如果其中任一个图片状态需要改变，整个图片就需要重新制作保存。对一些设计师来说这不是什么问题，也许他们会单独保留不同按钮状态的源文件，这样需要合并的时候就简单了。但是这个过程有点复杂，远没有切出一个单独图片来的简单。</p>
<p>为了节省几 k 的流量和几个服务器请求(还只发生在第一次加载页面时)，sprite 技术是否真的值得？</p>
<h2 id="toc4">编码和维护的时间成本会增加</h2>
<p>图片切片输出之后，麻烦依然存在。虽然习惯这个过程之后，按钮 sprite 可以很简单地编码到 CSS 中，但是其他的 sprites 就不这么简单了。</p>
<p>单一的一个按钮一般会是个有定宽的 &lt;ul&gt; 元素。假如按钮的 sprite 是彼此独立的，就比较简单：&lt;ul&gt; 的宽高会和列表项和锚点的宽高一致，每个状态的 sprite 对齐摆放。sprite 的位置也可以很容易地根据每个按钮的宽高计算出来。</p>
<p>但是遇到之前提到的，像 Amazon 或者 <a href="http://www.google.com/images/nav_logo7.png">Google</a> 用到的大型 sprite 的情况时，会怎么样呢？你能想象到到维护这么一个文件，并且在 CSS 中改变 sprite 项的位置会是什么样吗？还有第一次创建 CSS 代码的情况？相对于一个可以轻松计算出来状态位置的简单按钮来说，大型的 sprite 会导致无尽地测试和图片状态的重新摆放。</p>
<p><img class="alignnone size-full wp-image-12030" title="google-sprite" src="http://www.qianduan.net/wp-content/uploads/2010/04/google-sprite.jpg" alt="" width="500" height="239" /></p>
<p>一些用于定位 Google 的 sprite 图片的样式</p>
<p>Amazon 的 sprites 确实节省了至少 30 个 HTTP 连接，性能方面也确实有了很大的提高。但是把这些好处拿来和开发以及维护成本做个比较，再把缓存和网速等因素考虑进来，决定使用如此大型的 sprites 也许就不那么令人信服了。</p>
<h2 id="toc5">Sprites 是否真的需要“维护”？</h2>
<p>当然了，有些人不觉得 sprite 是首要引起头疼的问题。大部分情况下，一个 sprite 创建并编码完之后，就很少会被改动了，也不会受进行中的网站维护的影响。假如你感觉 sprite 维护不是个问题的话，那么也许使用大型 sprite 是最好的选择。</p>
<h2 id="toc6">不是所有图片都是背景</h2>
<p>另一个不提倡滥用 CSS sprite 的理由是这会导致开发人员错误地使用背景图片。有经验的开发人员会在项目中考虑可访问性问题，他们明白并不是每个图片都是背景。背景图片应该留给按钮以及用来装饰元素，而用来传达重要信息的图像应该内联在 XHTML 中。</p>
<p><img class="alignnone size-full wp-image-12025" title="bg-content" src="http://www.qianduan.net/wp-content/uploads/2010/04/bg-content.jpg" alt="" width="500" height="416" /></p>
<p>Amazon 正确是使用了内联图像元素和装饰用的背景。</p>
<h2 id="toc7">错误得使用 Sprites 影响可访问性</h2>
<p>一些刚入门的开发人员会为了节省 HTTP 请求数(这是使用 CSS Sprite 一直强调的好处)而把所有的图片都当背景图片来处理 &#8211; 甚至是那些传达重要信息的图片。结果会导致一个缺乏可访问性的网站，也会降低 HTML 中 title 和 alt 的潜在益处。</p>
<p>因此，CSS sprite 本身没错，而且也不会引发可访问性问题(事实上，正确得使用会提高可访问性)。但是不分对错得过度使用 sprite 会阻碍具有可访问性和生产率方面的网页建设进程。</p>
<h2 id="toc8">HTTP 请求数又如何？</h2>
<p><a href="http://developer.yahoo.com/performance/rules.html">许多人会据理力争</a>，改善网站性能最重要的部分就是减少 HTTP 请求数。也要知道<a href="http://yuiblog.com/blog/2007/01/04/performance-research-part-2/">一项研究表明一个网站日常的访问者中 40-60% 比例都是没有浏览器缓存的</a>。这是否足以说明应该在所有情况下使用大型 sprites 呢？或许是这样。尤其是考虑到用户的首次来访对一个网站的重要性。</p>
<p><img class="alignnone size-full wp-image-12026" title="firebug-http" src="http://www.qianduan.net/wp-content/uploads/2010/04/firebug-http1.jpg" alt="" width="500" height="290" /></p>
<p>Firefox 的 YSlow 插件显示 HTTP 请求数</p>
<p>以往的浏览器一般只允许 2 个并发 HTTP 连接，3.0 版本以来的 Firefox 和 IE8 默认<a href="http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/">允许 6 个并发 HTTP 连接</a>。这意味着每台服务器有 6 个并发连接。引用 Steve Souders 的话：</p>
<p>&#8220;明白这是服务器的基础是很重要的。使用多个域名，如 1.mydomain.com, 2.mydomain.com, 3.mydomain.com, 等等，使开发人员可以完全利用服务器连接数。在所有域名是同一 IP 地址的 CNAME 时依然有效。&#8221;</p>
<p>因此，或许在按钮状态之外使用 CSS sprites 也是有益的，在未来，随着网络连接速度的加快和新版浏览器的性能提升，使用大型 sprites 所带来的好处将会变得不值一提。</p>
<h2 id="toc9">那些 Sprites 生成器呢？</h2>
<p>另一个喜爱大型 sprite 的理由是可以利用一些 <a href="http://www.google.com/search?&amp;q=css+sprite+generator">sprite 生成器</a>来简单得生成 sprite。对此类工具的详细讨论和评测不在本文讨论范围。但是从作者对此类工具的研究来看，帮助非常有限，并且维护这些 sprites 一样需要可观的工作量，这也是需要和收益权衡的。</p>
<p><a href="http://www.spriteme.org/"><img class="alignnone size-full wp-image-12027" title="spriteme" src="http://www.qianduan.net/wp-content/uploads/2010/04/spriteme.jpg" alt="" width="500" height="198" /></a></p>
<p>有些工具，例如来自 Fondue 项目的<a href="http://spritegen.website-performance.org/">这个</a>，提供输出 CSS 选项。Steve Souders&#8217; 的工具 <a href="http://www.stevesouders.com/blog/2009/09/14/spriteme/">SpriteMe</a> 是另一个提供 CSS 编码选项的。SpriteMe 会把现有的网站背景图片转换成单张 sprite 图片（我之前提到的“大型” sprite）并提供下载以供编码入页面之中。然而这些工具只是有助于创建 sprite，并不能在维护方面提供多少帮助。Souder 的工具貌似对重新设计或布局的网站无效，而且只对那些现有的没有使用 sprite 方法的网站有用。</p>
<p><a href="http://spritegen.website-performance.org/"><img class="alignnone size-full wp-image-12028" title="fondue" src="http://www.qianduan.net/wp-content/uploads/2010/04/fondue.jpg" alt="" width="500" height="111" /></a></p>
<p>可以改进现有的工具，而且未来也会有新的工具出现。但是，鉴于以上提到的这些缺点，是否还存在这种可能，就是开发人员依然把精力集中在有限的所得上？</p>
<h2 id="toc10">关注多个性能提升点</h2>
<p>上面提到，HTTP 请求数是提升网站性能需要考虑的一个非常重要的因素。但是有别的方法可以减少连接数，包括合并脚本和样式表，使用远程库文件（即使用 Google 或者 Yahoo！提供的库文件托管）。</p>
<p>除了 HTTP 请求数之外还有很多开发人员可以关注的用于提升网站性能的因素。包括服务器启用 Gzip，正确的放置外链脚本，优化 CSS 语法，压缩较大的 JavaScript 文件，提升 Ajax 性能，避免使用已知的会引起性能问题的 JavaScript 语法，等等。</p>
<p><img class="alignnone size-full wp-image-12029" title="yslow-multiple" src="http://www.qianduan.net/wp-content/uploads/2010/04/yslow-multiple.jpg" alt="" width="500" height="326" /><br />
YSlow 显示了 HTTP 请求数之外可以提升网站性能的因素</p>
<p>如果开发人员花点时间来考虑下所有可以提升网站性能的因素，再权衡下利弊，也许就有较好的理由可以避免滥用 CSS sprite 了，并且会把精力放在那些物有所值的方面。</p>
<h2 id="toc11">总结</h2>
<p>请不要误解我所说的。许多顶级的 blogger 和开发人员已经称颂 sprite 的好处很多年了，最近几年又把这些意见推广到使用大型 sprite 上来了 &#8211; 因此应该认真得考虑下这些观点。但是，这种有着完善的体制和系统，使得网站维护任务简化并流水化的公司，并不是所有人都能进去的。大多数人都是独立工作，或者接受别人创建的项目。这类情况下，大型的 sprite 会导致得不偿失的麻烦。</p>
<h2 id="toc12">糖伴西红柿的总结</h2>
<p>标题有点醒目 :) 原标题的规矩翻译为 CSS Sprites：有用的技术还是潜在的麻烦？</p>
<p>关于 CSS Sprite，在 <a href="http://www.w3ctech.com/">Web 标准交流会</a> 第二期的时候讨论过。其实 CSS Sprite 是很有用处的。但是前提是不要超出一个度的限制。基本上很多问题最终都会归于如何适度地使用的问题。老话说：过犹不及，其实还是很有道理的。</p>
<p>对于减少 HTTP 请求数问题，可以稍作妥协，把图片分类，尽量把内容固定、后期不会有太多变动的图归入一个 sprite 中，例如一些 icon 。那些会经常改动的图片归入一类，分成几组 sprite。对于设计花哨而生命周期很短的专题来说，真得，花费在拼图上的时间和经历实在是有点浪费了。</p>
<p>关于老外的文章，我现在觉得有些絮叨了。或许很多人也会有这个感觉。其实应该反思下，据说日本有专门的小册子来教人做一些非常基础的东西，内容步骤细致到令人发指得地步。基础的东西大多人会不屑一顾，觉得别人都谈论奇技淫巧、高级应用了，我还在搞这些基础，多丢人啊。</p>
<p>基础的东西其实没那么简单的，有谁能真得掌握了这些看上去简单的基础呢？看一下这个基础问题<a href="http://hikejun.com/blog/?p=548">你真的了解HTML吗?</a></p>
<p>曾经有一个高手送我一本书，他写了 ”Back to basic“ 送我，我在这里送给大家，希望大家都能踏踏实实地努力进步。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css-sprites-useful-technique-or-potential-nuisance.html/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>CSS简写指南</title>
		<link>http://www.qianduan.net/css-font-shorthand-attribute-handbook.html</link>
		<comments>http://www.qianduan.net/css-font-shorthand-attribute-handbook.html#comments</comments>
		<pubDate>Thu, 01 Apr 2010 00:18:10 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[简写]]></category>
		<category><![CDATA[高效]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=11956</guid>
		<description><![CDATA[高效的css写法中的一条就是使用简写。通过简写可以让你的CSS文件更小，更易读。而了解CSS属性简写也是前端开发工程师的基本功之一。今天我们系统地总结一下CSS属性的缩写... ]]></description>
			<content:encoded><![CDATA[<p>高效的css写法中的一条就是使用简写。通过简写可以让你的CSS文件更小，更易读。而了解CSS属性简写也是前端开发工程师的基本功之一。今天我们系统地总结一下CSS属性的缩写。<br />
<span id="more-11956"></span></p>
<h3>色彩缩写</h3>
<p>色彩的缩写最简单，在色彩值用16进制的时候，如果每种颜色的值相同，就可以写成一个：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">color</span>：<span style="color: #cc00cc;">#113366</span></pre></td></tr></table></div>

<p>可以简写为</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">color</span>：<span style="color: #cc00cc;">#136</span></pre></td></tr></table></div>

<p>所有用到16进制色彩值的地方都可以使用简写，比如background-color、border-color、text-shadow、box-shadow等。</p>
<h3>盒子大小</h3>
<p>这里主要用于两个属性：margin和padding，我们以margin为例，padding与之相同。盒子有上下左右四个方向，每个方向都有个外边距：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
margin-botton<span style="color: #00AA00;">:</span><span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>这四个值可以缩写到一起：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>缩写的顺序是上-&gt;右-&gt;下-&gt;左。顺时针的方向。相对的边的值相同，则可以省掉：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>//四个方向的边距相同，等同于<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>//上下边距都为<span style="color: #933;">1px</span>，左右边距均为<span style="color: #933;">2px</span>，等同于<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>//右边距和左边距相同，等同于<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #933;">3px</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #933;">1px</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>//注意，这里虽然上下边距都为<span style="color: #933;">1px</span>，但是这里不能缩写。</pre></td></tr></table></div>

<h3>边框(border)</h3>
<p>border是个比较灵活的属性，它有border-width、border-style、border-color三个子属性。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span>数字<span style="color: #00AA00;">+</span>单位<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span> || <span style="color: #993333;">hidden</span> || <span style="color: #993333;">dashed</span> || <span style="color: #993333;">dotted</span> || <span style="color: #993333;">double</span> || <span style="color: #993333;">groove</span> || <span style="color: #993333;">inset</span> || <span style="color: #993333;">outset</span> || <span style="color: #993333;">ridge</span> || <span style="color: #993333;">solid</span> <span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> 颜色 <span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>它可以按照width、style和color的顺序简写：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#369</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>有的时候，border可以写的更简单些，有些值可以省掉，但是请注意哪些是必须的，你也可以测试一下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #993333;">groove</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>  //大家猜猜这个边框的宽度是多少？
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>  //这会是什么样子？
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>  //这样可以吗？
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span> //这样可以吗？？
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #993333;">red</span><span style="color: #00AA00;">;</span> //这样可以吗？？？</pre></td></tr></table></div>

<p>通过上面的代码可以了解到，border默认的宽度是3px，默认的色彩<del datetime="2010-04-29T02:58:52+00:00">是black——黑色</del>。默认的颜色是该规则中的color属性的值，而color默认是黑色的(多谢 @<a href="#comment-5367">birdstudio </a>的提醒 )。border的缩写中<strong>border-style是必须的</strong>。</p>
<p>同时，还可以对每条边采用缩写：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>还可以对每个属性采用缩写：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border-width</span>：<span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span> //最多可用四个值，缩写规则类似盒子大小的缩写，下同
<span style="color: #000000; font-weight: bold;">border-style</span>：<span style="color: #993333;">solid</span> <span style="color: #993333;">dashed</span> <span style="color: #993333;">dotted</span> <span style="color: #993333;">groove</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">red</span> <span style="color: #000000; font-weight: bold;">blue</span> <span style="color: #993333;">white</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<h3>outline</h3>
<p>outline类似border，不同的是border会影响盒模型，而outline不会。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">outline-width</span><span style="color: #00AA00;">:</span>数字<span style="color: #00AA00;">+</span>单位<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">outline-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span> || <span style="color: #993333;">dashed</span> || <span style="color: #993333;">dotted</span> || <span style="color: #993333;">double</span> || <span style="color: #993333;">groove</span> || <span style="color: #993333;">inset</span> || <span style="color: #993333;">outset</span> || <span style="color: #993333;">ridge</span> || <span style="color: #993333;">solid</span> <span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">outline-color</span><span style="color: #00AA00;">:</span> 颜色 <span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>可以缩写为：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>同样，outline的简写中，outline-style也是必须的，另外两个值则可选，默认值和border相同。</p>
<h3>背景(background)</h3>
<p>background是最常用的简写之一，它包含以下属性：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">color</span> || <span style="color: #cc00cc;">#hex</span> || RGB<span style="color: #00AA00;">&#40;</span>% || <span style="color: #cc66cc;">0</span>-<span style="color: #cc66cc;">255</span><span style="color: #00AA00;">&#41;</span> || RGBa<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">repeat</span> || <span style="color: #993333;">repeat-x</span> || <span style="color: #993333;">repeat-y</span> || <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> X Y || <span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span>||bottom||center<span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span>||right||center<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background-attachment</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">scroll</span> || <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>background的简写可以大大的提高css的效率：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">img.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>background的简写也有些默认值：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">transparent</span> <span style="color: #993333;">none</span> <span style="color: #993333;">repeat</span> <span style="color: #993333;">scroll</span> <span style="color: #000000; font-weight: bold;">top</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>background属性的值不会继承，你可以只声明其中的一个，其它的值会被应用默认的。</p>
<h3>font</h3>
<p>font简写也是使用最多的一个，它也是书写高效的CSS的方法之一。</p>
<p>font包含以下属性：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span> || <span style="color: #993333;">italic</span> || <span style="color: #993333;">oblique</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-variant</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span> || <span style="color: #993333;">small-caps</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span> || <span style="color: #993333;">bold</span> || <span style="color: #993333;">bolder</span> || || <span style="color: #993333;">lighter</span> || <span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">100</span>-<span style="color: #cc66cc;">900</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #00AA00;">&#40;</span>number<span style="color: #00AA00;">+</span>unit<span style="color: #00AA00;">&#41;</span> || <span style="color: #00AA00;">&#40;</span><span style="color: #993333;">xx-small</span> - <span style="color: #993333;">xx-large</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span> || <span style="color: #00AA00;">&#40;</span>number<span style="color: #00AA00;">+</span>unit<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span>name<span style="color: #00AA00;">,</span><span style="color: #ff0000;">&quot;more names&quot;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>font的各个属性也都有默认值，记住这些默认值相对来说<strong>比较重要</strong>：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-variant</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span><span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>事实上，font的简写是这些简写中最需要小心的一个，稍有疏忽就会造成一些意想不到的后果，所以，<strong>很多人并不赞成使用font缩写</strong>。</p>
<p>不过这里正好有个小手册，相信会让你更好的理解font的简写：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2010/04/030336t77.jpg" alt="font缩写" /></p>
<h3>列表样式</h3>
<p>可能大家用的最多的一条关于列表的属性就是：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span></pre></td></tr></table></div>

<p>它会清除所有默认的列表样式，比如数字或者圆点。</p>
<p>list-style也有三个属性：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span> || <span style="color: #993333;">disc</span> || <span style="color: #993333;">circle</span> || <span style="color: #993333;">square</span> || <span style="color: #993333;">decimal</span> || <span style="color: #993333;">lower-alpha</span> || <span style="color: #993333;">upper-alpha</span> || <span style="color: #993333;">lower-roman</span> || <span style="color: #993333;">upper-roman</span>
<span style="color: #000000; font-weight: bold;">list-style-position</span><span style="color: #00AA00;">:</span>  <span style="color: #993333;">inside</span> || <span style="color: #993333;">outside</span> || <span style="color: #993333;">inherit</span>
<span style="color: #000000; font-weight: bold;">list-style-image</span><span style="color: #00AA00;">:</span>  <span style="color: #00AA00;">&#40;</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#41;</span> || <span style="color: #993333;">none</span> || <span style="color: #993333;">inherit</span></pre></td></tr></table></div>

<p>list-style的默认属性如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">disc</span> <span style="color: #993333;">outside</span> <span style="color: #993333;">none</span></pre></td></tr></table></div>

<p>需要注意的是，如果list-tyle中定义了图片，那么图片的优先级要比list-style-type高，比如：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">circle</span> <span style="color: #993333;">inside</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../img.gif</span><span style="color: #00AA00;">&#41;</span></pre></div></div>

<p>这个例子中，如果img.gif存在，则不会显示前面设置的circle符号。</p>
<p>PS:其实list-style-type有很多种很有用的样式，感兴趣的同学可以参考一下：<a href="https://developer.mozilla.org/en/CSS/list-style-type">https://developer.mozilla.org/en/CSS/list-style-type</a></p>
<h3>border-radius(圆角半径)</h3>
<p>border-radius是css3中新加入的属性，用来实现圆角边框。这个属性目前不好的一点儿是，各个浏览器对它的支持不同，IE尚不支持，Gecko(firefox)和webkit(safari/chrome)等需分别使用私有前缀-moz-和-webkit-。更让人纠结的是，如果单个角的border-radius属性的写法在这两个浏览器的差异更大，你要书写大量的私有属性：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-moz-border-radius-bottomleft<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-moz-border-radius-topleft<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-moz-border-radius-topright<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-webkit-border-bottom-left-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-webkit-border-top-left-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-webkit-border-top-right-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
border-bottom-left-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
border-top-left-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
border-top-right-radius<span style="color: #00AA00;">:</span><span style="color: #933;">6px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>呃，是不是你已经看的眼花了？这只是要实现左上角不是圆角，其它三个角都是圆角的情况。所以对于border-radius，神飞强烈建议使用缩写：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">6px</span> <span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">6px</span> <span style="color: #933;">6px</span><span style="color: #00AA00;">;</span>
border-radius<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">6px</span> <span style="color: #933;">6px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>这样就简单了很多。PS:不幸的是，最新的Safari(4.0.5)还不支持这种缩写&#8230; (thanks @<a rel="external nofollow" href="http://fireyy.com/">fireyy</a>)</p>
<p>就总结这么多，还有其它的可以缩写的属性吗？欢迎大家提出一起讨论。</p>
<h4>参考资源</h4>
<ul>
<li><a href="http://www.w3cn.org/article/tips/2005/103.html" target="_blank">常用CSS缩写语法总结</a></li>
<li><a title="Read the entire post &quot;CSS Shorthand Guide&quot;" href="http://www.dustindiaz.com/css-shorthand/" target="_blank">CSS Shorthand Guide</a></li>
<li><a href="http://www.456bereastreet.com/archive/200502/efficient_css_with_shorthand_properties/" target="_blank">Efficient CSS with shorthand properties</a></li>
<li><a href="https://developer.mozilla.org/en/CSS_Reference">Mozilla Developer Center:CSS Reference</a></li>
<li><a title="CSS Font Shorthand Property Cheat Sheet" rel="bookmark" href="http://www.impressivewebs.com/css-font-shorthand-property-cheat-sheet/">CSS Font Shorthand Property Cheat Sheet</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css-font-shorthand-attribute-handbook.html/feed</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>理解CSS3线性渐变</title>
		<link>http://www.qianduan.net/understand-the-css3-gradient.html</link>
		<comments>http://www.qianduan.net/understand-the-css3-gradient.html#comments</comments>
		<pubDate>Thu, 25 Mar 2010 00:51:50 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[渐变]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=11972</guid>
		<description><![CDATA[为了显示一个渐变而专门制作一个图片的做法是不灵活的，而且很快会成为一种不好的做法。但是遗憾的是，截至写这篇文章，可能还必须这样做，但是希望不会持续太久。多亏Firefox 和Safari/Ch... ]]></description>
			<content:encoded><![CDATA[<div>译自：<a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-understanding-css3-gradients/">Quick Tip: Understanding CSS3 Gradients </a><br />
中文：<a href="http://www.qianduan.net/understand-the-css3-gradient.html">理解CSS3线性渐变</a><br />
请尊重版权，转载请注明来源，多谢！<br />
<hr /></div>
<p>为了显示一个渐变而专门制作一个图片的做法是不灵活的，而且很快会成为一种不好的做法。但是遗憾的是，截至写这篇文章，可能还必须这样做，但是希望不会持续太久。多亏Firefox 和Safari/Chrome，我们现在可以使用最少的努力实现强大的渐变。在本文中，我们将展示CSS渐变的简单实现以及该属性在Mozilla和webkit内核浏览器中的不同。</p>
<p><span id="more-11972"></span></p>
<p>PS：本文原文本来提供了一个视频，但是由于众所周知的原因，我们无法观看这个在Youtube上的视频，想看的同学请自己想办法观看(最高720P) : <a href="http://www.youtube.com/watch?v=9D2hyM5SSCE">http://www.youtube.com/watch?v=9D2hyM5SSCE</a></p>
<h2>Webkit</h2>
<p>尽管Mozilla和Webkit通常对CSS3属性采取同样的语法，但是对于渐变，他们很不幸的不能达成一致。Webkit是第一个支持渐变的浏览器内核，它使用下面的结构：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* 语法，参考自: http://webkit.org/blog/175/introducing-css-gradients/ */</span>
-webkit-gradient<span style="color: #00AA00;">&#40;</span>&lt;type<span style="color: #00AA00;">&gt;,</span> &lt;point<span style="color: #00AA00;">&gt;</span> <span style="color: #00AA00;">&#91;</span><span style="color: #00AA00;">,</span> &lt;radius<span style="color: #00AA00;">&gt;</span><span style="color: #00AA00;">&#93;</span>?<span style="color: #00AA00;">,</span> &lt;point<span style="color: #00AA00;">&gt;</span> <span style="color: #00AA00;">&#91;</span><span style="color: #00AA00;">,</span> &lt;radius<span style="color: #00AA00;">&gt;</span><span style="color: #00AA00;">&#93;</span>? <span style="color: #00AA00;">&#91;</span><span style="color: #00AA00;">,</span> &lt;stop<span style="color: #00AA00;">&gt;</span><span style="color: #00AA00;">&#93;</span><span style="color: #00AA00;">*</span><span style="color: #00AA00;">&#41;</span>
<span style="color: #808080; font-style: italic;">/* 实际用法... */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">red</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p> <img src="http://img.qianduan.net/uploads/2010/03/webkit.jpg" alt="Webkit" /></p>
<p>不要担心这些语法会让你看花眼，我也是这样的！只要记得我们需要用一个逗号来隔开这个参数组。</p>
<ul>
<li>渐变的类型? (linear)</li>
<li>渐变开始的X Y 轴坐标(0 0 – 或者left-top)</li>
<li>渐变结束的X Y 轴坐标(0 100% 或者left-bottom)</li>
<li>开始的颜色? (from(red)) </li>
<li>结束的颜色? (to(blue)) </li>
</ul>
<h2>Mozilla</h2>
<p>Firefox，从3.6版本才开始支持渐变，更喜欢和Webkit略微不同的语法。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* 语法，参考自: http://hacks.mozilla.org/2009/11/css-gradients-firefox-36/ */</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span> <span style="color: #00AA00;">&#91;</span>
&lt;point<span style="color: #00AA00;">&gt;</span> || &lt;angle<span style="color: #00AA00;">&gt;,</span><span style="color: #00AA00;">&#93;</span>? &lt;stop<span style="color: #00AA00;">&gt;,</span> &lt;stop<span style="color: #00AA00;">&gt;</span> <span style="color: #00AA00;">&#91;</span><span style="color: #00AA00;">,</span> &lt;stop<span style="color: #00AA00;">&gt;</span><span style="color: #00AA00;">&#93;</span><span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* 实际用法*/</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p> <img src="http://img.qianduan.net/uploads/2010/03/webkit.jpg" alt="Mozilla" /></p>
<ul>
<li>请注意我们将渐变的类型——linear——放到了属性前缀中了</li>
<li>渐变从哪里开始? (top – 我们也可以使用度数，比如<em>-45deg</em>)</li>
<li>开始的颜色? (red) </li>
<li>结束的颜色? (blue) </li>
</ul>
<h2>Color-Stops </h2>
<p>如果你不需要从一个颜色到另一个颜色的100%渐变怎么办？这就是color stop起作用的时候了。一个普遍的设计技术是使用一个较短而细微的渐变，比如：</p>
<p> <img src="http://img.qianduan.net/uploads/2010/03/subtle.jpg" alt="Subtle Gradients" /><br />
	<em>注意顶部的浅灰色到白色的细小的渐变</em> </p>
<p>在过去，标准的做法就是制作一个图片，并将其设为一个元素的背景图片，然后让其水平平铺。然而使用CSS3，这是个小Case。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* 为较旧的或者不支持的浏览器设置备用属性 */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#dedede</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">white</span> <span style="color: #933;">8%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">8%</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#dedede</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">white</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>这次，我们让渐变结束于8%，而不是默认的100%。<em>请注意我们也在头部采用了一个边框，以形成对比。这很常用。</em> </p>
<p>如果我们想要添加多一种(几种)颜色，我们可以这样做：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* 备用属性 */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#dedede</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">white</span> <span style="color: #933;">8%</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">red</span> <span style="color: #933;">20%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#dedede</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">8%</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">20%</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<ul>
<li>对于-moz 版本，我们定义，从元素的20%的高度的地方开始是红色。</li>
<li>而对于-webkit，我们使用color-stop，采用两个参数：哪里开始停止，使用哪种颜色。</li>
</ul>
<h3>IE</h3>
<p>IE并不支持CSS渐变，但是提供了渐变滤镜，可以实现最简单的渐变效果：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">filter<span style="color: #00AA00;">:</span>  progid<span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.gradient<span style="color: #00AA00;">&#40;</span>startColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#ffffff'</span><span style="color: #00AA00;">,</span> endColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#ff0000'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE6,IE7 */</span>
-ms-filter<span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ff0000')&quot;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE8 */</span></pre></td></tr></table></div>

<p>PS：事实上，我们在《<a href="http://www.qianduan.net/rgba-browser-support-compatibility.html">RGBa色彩的浏览器支持</a>》提到的IE的解决方法，就是使用这个渐变滤镜。</p>
<h2>关于CSS渐变的一些要点：</h2>
<ul>
<li>尽可能的使用它。如果让IE用户看到一个固定的纯色，我鼓励你使用这种方法；</li>
<li>IE6/7/8, Opera, Safari 3, 和Firefox 3 不能渲染CSS3 渐变，Firefox 和Safari用户通常经常升级浏览器，而Chrome的自动升级机制会在后台自动升级，所以这并不是个大问题；</li>
<li>总是为不支持这些浏览器私有属性的浏览器应用一个默认的，纯色背景；</li>
<li>永远不要使用红色到蓝色的渐变，就像我用作例子的这种；</li>
<li><strong>页面无须在每个浏览器里面看起来完全一样！</strong> </li>
<li>Firefox可以使用角度来设定渐变的方向，而webkit只能使用x和y轴的坐标。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/understand-the-css3-gradient.html/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>在 Mozilla UI 中书写高效率 CSS</title>
		<link>http://www.qianduan.net/in-the-mozilla-ui-in-writing-efficient-css.html</link>
		<comments>http://www.qianduan.net/in-the-mozilla-ui-in-writing-efficient-css.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 15:26:49 +0000</pubDate>
		<dc:creator>糖伴西红柿</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=11945</guid>
		<description><![CDATA[原文地址：Writing Efficient CSS for use in the Mozilla UI

Moziila UI 中书写高效率的 CSS

以下文档描述了应用在 Mozilla UI 中优化 CSS 文件的规则。第一部分是对于 Mozilla 样式系统分类规则的一般性讨论... ]]></description>
			<content:encoded><![CDATA[<p>原文地址：<a href="https://developer.mozilla.org/en/Writing_Efficient_CSS">Writing Efficient CSS for use in the Mozilla UI</a></p>
<p>以下文档描述了应用在 Mozilla UI 中优化 CSS 文件的规则。第一部分是对于 Mozilla 样式系统分类规则的一般性讨论。在了解这个系统的基础上，后续部分包含了一些指南，书写可以利用这个样式系统实践优点的样式的指南。<span id="more-11945"></span></p>
<h3 id="toc2">样式系统如何分类规则</h3>
<p>样式系统把规则分为四大类。理解这些类是很重要的，因为对于规则的匹配来说他们是首先要考虑的。之后的段落中会使用“主选择符”这个说法。主选择符是指选择符最右边的部分(最终要匹配的那个元素，而不是它的祖先元素)。例如，在以下规则中：</p>
<p>a img, div &gt; p, h1 + [title] {}</p>
<p>主选择符是 &#8220;img&#8221;, &#8220;p&#8221;, 和 &#8220;[title]&#8220;。</p>
<h4 id="toc3">ID 规则</h4>
<p>ID 选择符作为主选择符的规则。</p>
<p>例如：</p>
<ul>
<li>button#backButton { } /* ID 类别的规则 */</li>
<li>#urlBar[type="autocomplete"] { } /* ID 类别的规则 */</li>
<li>treeitem &gt; treerow &gt; treecell#myCell:active { } /* ID 类别的规则 */</li>
</ul>
<h4 id="toc4">Class 规则</h4>
<p>如果一条规则有一个指定的 class 作为主选择符，就被归入此类。</p>
<p>例如：</p>
<ul>
<li>button.toolbarButton { } /* 基于 class 的规则 */</li>
<li>.fancyText { } /* 基于 class 的规则 */</li>
<li>menuitem &gt; .menu-left[checked="true"] { } /* 基于 class 的规则 */</li>
</ul>
<h4 id="toc5">Tag 规则</h4>
<p>如果主选择符不是 ID 或者 class，那么下一个类很可能就是 tag 分类。如果一条规则指定 tag 为主选择符，就被归入此类。</p>
<p>例如：</p>
<ul>
<li>td { } /* 基于 tag 的规则 */</li>
<li>treeitem &gt; treerow { } /* 基于 tag 的规则 */</li>
<li>input[type="checkbox"] { } /* 基于 tag 的规则 */</li>
</ul>
<h4 id="toc6">全局规则</h4>
<p>除以上分类之外都归入此类。</p>
<p>例如：</p>
<ul>
<li>[hidden="true"] { } /* 全局规则 */</li>
<li>*{} /* 全局规则 */</li>
<li>tree &gt; [collapsed="true"] { } /* 全局规则 */</li>
</ul>
<h3 id="toc7">样式系统如何匹配规则</h3>
<p>样式系统从最右边的选择符开始向左侧移动来匹配一条规则。样式系统会一直向左匹配选择符直到规则匹配完毕或者由于出错停止匹配。</p>
<p>对于规则分类的第一步发生在主选择符类别基础上。这个分类的目的是把那些不需要浪费时间匹配的规则过滤出来。这是显著提升性能的重点。对于一个给定的需要匹配的元素，规则越少，样式的渲染越快。例如，元素有一个 ID，那么只有和元素 ID 匹配的 ID 规则会被检索。只有和元素的 class 匹配的 class 规则会被检索。只有和 tag 匹配的 tag 规则会被检索。全局规则总是会被检索。</p>
<h3 id="toc8">高效 CSS 指南</h3>
<h4 id="toc9">避免全局规则</h4>
<p>确保规则不以全局分类结束</p>
<h4 id="toc11">不要给 ID 分类规则指定标签名或者 class</h4>
<p>如果有一条样式规则是以 ID 选择符为主选择符的，就别再画蛇添足的加上标签名了。ID 都是唯一的，因此加上标签名反而会无谓地拖慢匹配过程。(当有不同元素使用同一类名，而又需要动态地改变其中一个元素的类名来针对不同情况应用不同样式时是个例外。)</p>
<ul>
<li> BAD &#8211; button#backButton { }</li>
<li> BAD &#8211; .menu-left#newMenuIcon { }</li>
<li> GOOD &#8211; #backButton { }</li>
<li> GOOD &#8211; #newMenuIcon { }</li>
</ul>
<h4 id="toc12">不要给 class 分类规则指定标签名</h4>
<p>和以上规则类似，所有的类名也是唯一的。标签和类名连缀的写法是一个惯例(但是，如果设计的变更使得需要改变标签就会有灵活性的问题，因为也需要改变 class &#8212; 最好选用具有严格语义的名字，这种灵活性也是分离样式表的目标之一)。</p>
<ul>
<li> BAD &#8211; treecell.indented { }</li>
<li> GOOD &#8211; .treecell-indented { }</li>
<li> BEST &#8211; .hierarchy-deep { }</li>
</ul>
<h4 id="toc13">尽量把规则应用到最明确的类上。</h4>
<p>拖慢系统最大的一个原因是有太多的 tag 分类规则了。通过给元素增加类名，可以把这些 tag 类里的规则分一部分去class 分类，就可以不需要浪费时间来试图给一个标签匹配那么多的的规则了。</p>
<ul>
<li> BAD &#8211; treeitem[mailfolder="true"] &gt; treerow &gt; treecell { }</li>
<li> GOOD &#8211; .treecell-mailfolder { }</li>
</ul>
<h4 id="toc14">避免后代选择符</h4>
<p>CSS 中，后代选择符(descendant)<sup><small>[注1]</small></sup>的耗能高的可怕，尤其是选择符的规则是在 tag 或者全局分类中。子选择符(child selector)则经常是真正所需。如果没有主题模块所有者的明确允许，UI CSS 中禁止使用后代选择符。</p>
<ul>
<li> BAD &#8211; treehead treerow treecell { }</li>
<li> BETTER, BUT STILL BAD (see next guideline) &#8211; treehead &gt; treerow &gt; treecell { }</li>
</ul>
<h4 id="toc15">Tag 类规则中最好不要包含后代选择符</h4>
<p>避免使用具有 tag 类规则的后代选择符。这会明显地增加匹配时间（尤其是这些规则会被多次匹配时）。</p>
<ul>
<li> BAD &#8211; treehead &gt; treerow &gt; treecell { }</li>
<li> BEST &#8211; .treecell-header { }</li>
</ul>
<h4 id="toc16">小心子选择符的使用</h4>
<p>要小心使用子代选择符。如果有别的方式可以不用，就不要用子选择符。尤其是子选择符被大量使用在 <a href="https://developer.mozilla.org/index.php?title=Cn/XUL_%E6%95%99%E7%A8%8B/RDF%E4%BB%8B%E7%BB%8D">RDF</a> 树和类似的菜单中时。</p>
<ul>
<li> BAD &#8211; treeitem[<a href="IsImapServer.html">IsImapServer</a>="true"] &gt; treerow &gt; .tree-folderpane-icon { }</li>
</ul>
<p>要注意模版中来自 RDF 的属性是可以复制的！可以利用这一点把 RDF 属性复制到需要改变那个属性的子元素上。</p>
<ul>
<li> GOOD &#8211; .tree-folderpane-icon[<a href="IsImapServer.html">IsImapServer</a>="true"] { }</li>
</ul>
<h4 id="toc17">倚赖继承</h4>
<p>了解并使用那些可以继承的属性。XUL widgetry<sup><small>[注2]</small></sup> 已经明确设置了，因此可以把 list-style-image 或者 font 规则应用到父级标签上，它将渗透进匿名内容。因此就不需要浪费时间为那些匿名内容写规则了。</p>
<ul>
<li> BAD &#8211; #bookmarkMenuItem &gt; .menu-left { list-style-image: url(blah); }</li>
<li> GOOD &#8211; #bookmarkMenuItem { list-style-image: url(blah); }</li>
</ul>
<p>上例中，样式化匿名内容的需求（没有理解 list-style-image 可以继承）导致了一条 class 类规则。其实这条规则应该属于最明确的一类 &#8212; ID 类规则。</p>
<p>要记住，尤其是那些匿名内容，它们都有同样的 class。上面那个不好的例子导致需要检查每个菜单的图标是否包含在 bookmarks 菜单项中。这是非常可怕的高昂消耗（有很多菜单）；除 bookmarks 菜单之外，这条规则不应该被其他任何菜单想检查。</p>
<h4 id="toc18">使用 -moz-image-region</h4>
<p>把一堆图片放到一个单独的图片文件中，并用 <a href="https://developer.mozilla.org/en/CSS/-moz-image-region">-moz-image-region</a><sup><small>[注3]</small></sup> 选中会有显著的性能提升。()</p>
<p>注1: 后代选择符(descendant selector) 子选择符(child selector) 是有区别的。单从字面来讲，后代选择符，顾名思义包括儿子、孙子、重孙子等所有后代; 子选择符只是指儿子，就不管那帮孙子了。</p>
<p>注2: XUL widgetry 不清楚是啥。</p>
<p>注3: 貌似想法和现在说的 <a href="http://www.qianduan.net/to-sprite-or-not-to-sprite.html">CSS sprites</a> 方法差不多，要知道这可是十年前(2000年)的文章啊。 &#8211; 糖伴西红柿</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/in-the-mozilla-ui-in-writing-efficient-css.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

