<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>前端观察</title>
	
	<link>http://www.qianduan.net</link>
	<description>专注于网站前端设计与前端开发</description>
	<lastBuildDate>Thu, 24 May 2012 00:00:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/qianduannet" /><feedburner:info uri="qianduannet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>媒体查询与http请求</title>
		<link>http://www.qianduan.net/media-query-and-http-requests.html</link>
		<comments>http://www.qianduan.net/media-query-and-http-requests.html#comments</comments>
		<pubDate>Thu, 24 May 2012 00:00:06 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[media query]]></category>
		<category><![CDATA[响应式设计]]></category>
		<category><![CDATA[媒体查询]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13137</guid>
		<description><![CDATA[Jason Grigsby发表了篇文章，对媒体查询吐槽，大意是在移动设备上使用媒体查询会造成很多资源的浪费——浏览器请求到很多用不到的图片等资源，然后写了一些测试用例测试一些可用方法。那... ]]></description>
			<content:encoded><![CDATA[<p>Jason Grigsby发表了篇文章，《<a href="http://blog.cloudfour.com/css-media-query-for-mobile-is-fools-gold/" target="_blank">CSS Media Query for Mobile is Fool’s Gold</a>》对媒体查询(media query)吐槽，大意是在移动设备上使用媒体查询会造成很多资源的浪费——浏览器请求到很多用不到的图片等资源，然后<a href="http://cloudfour.com/examples/mediaqueries/image-test/">写了一些测试用例</a>测试一些可用方法。然后Tim Kadlec写了篇《<a href="" target="_blank">Media Query &amp; Asset Downloading Results</a>》，用js自动化的测试了Jason Grigsby的用例。</p>
<p>本文主要整理自Tim的这篇文章。我们来看看到底会不会浪费资源，并寻找下最优的方案。</p>
<p>直接看结果吧~~</p>
<h2>测试一：img标签</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test1.php">运行测试</a></p>
<p>本测试尝试通过对img标签的父级元素使用display:none来隐藏图片。HTML和CSS代码如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test1&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;images/test1.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</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>


<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;">@media all and (max-width: 600px) {</span>
	<span style="color: #cc00cc;">#test1</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;">;</span> <span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<p>如果有一种应该100%避免的隐藏图片的方法，那就是display:none。它基本上是没有用的。貌似Opera Mobile和Opera mini不会下载图片，而其它浏览器都会下载。Opera可以比较好的控制资源的下载，对于用户看不到的内容，它不会预先下载。</p>
<style>
.testResults{
	border-spacing:0;
}
.testResults td{
	padding:5px 0;
	width:120px;
}
.testResults td:last-child{
	text-align:center;
}
.fail{
	background-color:red;
	color:#FFF;
}
.pass{
	background-color:green;
	color:#FFF;
}
</style>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>请求图片</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1+</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Blackberry (6.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Chrome (4.1)+</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>IE</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>RockMelt</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Safari (4+)</td>
<td class="fail">请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>很简单：不要这样用。</p>
<h2>测试二：背景图片display:none</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test2.php">运行测试</a></p>
<p>在本例中，div被设置了background-image。如果屏幕宽度小于600px，div就被设置为display:none。HTML和CSS代码如下：</p>

<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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test2&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#test2</span> <span style="color: #00AA00;">&#123;</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;">'images/test2.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media all and (max-width: 600px) {</span>
	<span style="color: #cc00cc;">#test2</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;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<p>结果和测试一一样：除了Opera mini和Opera Mobile和<strong>Firefox</strong>，所有浏览器都会下载图片。</p>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>请求图片</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1+</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Blackberry (6.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Chrome (4.1)+</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>IE</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>RockMelt</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Safari (4+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Silk</td>
<td class="fail">请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>同样：不要这样做。不过，像后面其它的测试，有其它的方法可以隐藏背景图片同时避免多余请求。</p>
<h2>测试三：背景图片的父级元素被设置为display:none</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test3.php">运行测试</a></p>
<p>本测试中，对一个div标签设置背景图片，然后对其父元素(也是个div)在浏览器宽度小于600px时设置display:none。HTML和CSS代码如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test3&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;&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: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#test3</span> div <span style="color: #00AA00;">&#123;</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;">'images/test3.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media all and (max-width: 600px) {</span>
	<span style="color: #cc00cc;">#test3</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;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<p>表面上，这个测试貌似和测试二没太明显的区别，但是结论是这个方法是比较靠谱的。。。</p>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>请求图片</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Blackberry (6.0+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome (16+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>IE 9+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Safari (4+)</td>
<td class="pass">不请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>这个方法不错。除了不太成熟的Fennec，其它浏览器都不请求不必要显示的图片。</p>
<h2>测试四：背景图片层叠</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test4.php">运行测试</a></p>
<p>本测试中，一个div被设置了背景图片。如果浏览器宽度小于600px，该div会被给到另一个背景图片。该测试用来检测是否两个图片都会被请求，还是只请求需要的。HTML和CSS代码如下：</p>

<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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test4&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#test4</span> <span style="color: #00AA00;">&#123;</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;">'images/test4-desktop.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media all and (max-width: 600px) {</span>
	<span style="color: #cc00cc;">#test4</span> <span style="color: #00AA00;">&#123;</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;">'images/test4-mobile.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<p>比设置display:none好一些，这种方法的结果有点儿乱：</p>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>同时请求</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1-3.0?</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Android 4.0</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Blackberry 6.0</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Blackberry 7.0</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome (16+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>IE 9+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Safari 4.0</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Safari 5.0+</td>
<td class="pass">不请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>我会避免使用这种方法。尽管环境在改善，但是在Android市场中占主导地位的Android 2.x版本依然会像Fennec和Kindle一样同时下载两个图片。三者中，尤其因为Android(的碎片化)，我会推荐寻找别的方案。</p>
<h2>测试五：大背景图片被设置min-width</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test5.php">运行测试</a></p>
<p>本测试中，一个div元素在浏览器宽度大于601px时被设置一个背景图片，然后在浏览器宽度小于600px时被设置为另一个背景图片。HTML和CSS代码如下：</p>

<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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test5&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@media all and (min-width: 601px) {</span>
	<span style="color: #cc00cc;">#test5</span> <span style="color: #00AA00;">&#123;</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;">'images/test5-desktop.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media all and (max-width: 600px) {</span>
	<span style="color: #cc00cc;">#test5</span> <span style="color: #00AA00;">&#123;</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;">'images/test5-mobile.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<p>这种方案好一点儿：</p>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>同时请求</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Blackberry (6.0+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome (16+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>IE 9+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Safari (4+)</td>
<td class="pass">不请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>这次更多的浏览器一起玩了。但是，Fennec一如既往得不能自已。<del datetime="2012-04-11T04:04:21+00:00">Android 2.x比较怪异。它会同时请求两个图片——但只有在屏幕宽度大于600px匹配到min-width时才这样。这种行为貌似在Android 3.0版本中被改进了。这是件诡异的事情，我很好奇它为什么会这样。</del> <ins datetime="2012-04-11T04:04:21+00:00">其实，有个好消息。Jason Grigsby 说他的对本例的测试结果和我的不太一样。所以我又在一些Android 2.x机器上跑了一下这个测试。结论是，我最初的测试结果不太正确，Android 2.x表现很好，我最初测试的那个平台有问题。这不仅仅对于开发者来说是个好消息，对我本人来说更是恢复了对人类的信心。。。。。。。</p>
<p>但是这依然不够，你将需要对IE8以下浏览器提供替代方案，那些版本的浏览器不支持media query，所以没有图片会被显示。当然，这个问题可以用条件注释来简单的兼容一下。</p>
<h2>测试六：背景图片display:none(max-device-width)</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test6.php">运行测试</a></p>
<p>本测试和测试二类似，但是使用了max-device-width来替代max-width。HTML和CSS代码如下：</p>

<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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test6&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#test6</span> <span style="color: #00AA00;">&#123;</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;">'images/test6.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media all and (max-device-width: 600px) {</span>
	<span style="color: #cc00cc;">#test6</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;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>结论</h3>
<p>好吧，不用浪费时间了，这个测试结果和测试二的基本一致。</p>
<h2>测试七：层叠覆盖高分辨率</h2>
<p><a href="http://labs.qianduan.net/mediaquerytest/test7.php">运行测试</a></p>
<p>最后一个测试，是为了new ipad提供的，它使用了retina屏幕，这样它就要使用更高分辨率的图片了。</p>
<p>本例中，一个div被给到一个背景图片。然后，通过使用min-device-pixel-ratio属性，如果比例大于1.5，一个新的背景图片将会被用到。</p>
<p>HTML和CSS代码如下：</p>

<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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test7&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#test7</span> <span style="color: #00AA00;">&#123;</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;">'images/test7-lowres.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@media only screen and (-webkit-min-device-pixel-ratio: 1.5),</span>
only screen and <span style="color: #00AA00;">&#40;</span>-moz-min-device-pixel-ratio<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>
only screen and <span style="color: #00AA00;">&#40;</span>-o-min-device-pixel-ratio<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">3</span>/<span style="color: #cc66cc;">2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>
only screen and <span style="color: #00AA00;">&#40;</span>min-device-pixel-ratio<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #cc00cc;">#test7</span> <span style="color: #00AA00;">&#123;</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;">'images/test7-highres.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
		<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">75px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>测试结果</h3>
<table class="testResults" cellspacing="3">
<thead>
<tr>
<th>浏览器</th>
<th>同时请求</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android 2.1-3.0?</td>
<td class="fail">请求</td>
</tr>
<tr>
<td>Android 4.0</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Blackberry 6.0</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Blackberry 7.0</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome (16+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Chrome Mobile</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Fennec (10.0+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Firefox (3.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>IE 9+</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>iOS (4.26+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Kindle (3.0)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera (11.6+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mini (6.5+)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Opera Mobile (11.5)</td>
<td class="pass">不请求</td>
</tr>
<tr>
<td>Safari 4.0+</td>
<td class="pass">不请求</td>
</tr>
</tbody>
</table>
<h3>结论</h3>
<p>为了安全，这个方案可以多测试一些。看起来这种方法在绝大多数情况下是可用的。但是不幸的是，貌似Android 2.x会同时下载两个图片<em>如果设备像素比大于或等于1.5时(或者你在media query中设置的别的任何值)</em>。所以，在本例中，如果你使用了一个高分辨率的Android 2.x的设备，会比较苦逼。。。</p>
<p>好消息是，到目前位置，我还没听说有那一款Android 2.x的设备的屏幕比例超过1.5.所以如果你的项目面向使用retina屏幕的ios设备，你可以将min-device-pixel-ratio设置到2或者更高，这样会比较安全一点儿。。。</p>
<h2>推荐</h2>
<ul>
<li>如果你要隐藏一张内容图片，display:none是无效的，所以我推荐使用javascript方案或者服务器端实现；</li>
<li>如果你要隐藏一张背景图片，最好的方法是隐藏其父级元素。如果你不方便这样做，那就用一个层叠样式覆盖掉它吧(就像上面的第五个方案)，然后将设置background-image:none；</li>
<li>如果你要切换多张图片，就把他们全部用media query定义吧。</li>
</ul>
<h2>关于响应式设计的思考</h2>
<p>媒体查询现在最大的用处就是响应式设计了，神飞翻译这篇文章也是因为最近在思考响应式设计的效率问题。通过这些测试结果，我们在实现响应式设计的网站时，最好先处理移动设备，然后再向高分辨率设备升级。然后使用图片等外部资源的选择器，一定要写到媒体查询中去。</p>
<h2>反馈</h2>
<p>如果你觉得这些测试结果有任何错误的地方，欢迎在评论中提出，然后这些测试用例Tim都在<a href="https://github.com/tkadlec/Media-Query-test">GitHub</a>上开源了，感兴趣的话可以fork下。。。</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/c1cWkK7xcXw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/media-query-and-http-requests.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CSS3实现四叶草、水母与玻璃瓶</title>
		<link>http://www.qianduan.net/clover-jellyfish-and-glass.html</link>
		<comments>http://www.qianduan.net/clover-jellyfish-and-glass.html#comments</comments>
		<pubDate>Sun, 20 May 2012 05:05:02 +0000</pubDate>
		<dc:creator>龙</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13111</guid>
		<description><![CDATA[以下为纯CSS制作，闲话不说，上个效果图先... ]]></description>
			<content:encoded><![CDATA[<p>以下为纯CSS制作，闲话不说，上个效果图先：<br />
<span id="more-13111"></span><br />
<img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044929o9k.jpg" alt="四叶草、水母与玻璃瓶" width="314" height="314" /></p>
<p>玻璃瓶质感、四叶草漂浮于水面，荡起涟漪、摇摆上升的气泡&#8230;很美的意境，然而你也许会说你喜欢瓶子不喜欢四叶草，那可以把四叶草给none掉，不喜欢植物的话，那你喜不喜欢动物呢：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044932zII.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>应该看得懂这只萌物是什么生物吧..没错，水母 一只&#8230;众生皆平等，不能只有植物没有动物哈&#8230;</p>
<p>然而你也许不喜欢蓝色的水，那我写几套多彩的玻璃瓶：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044933QnF.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>如果你感兴趣的话，可以通过这个链接，下载我的源代码：《<a href="http://dl.dbank.com/c0d32qidoi" target="_blank">四叶草、水母与玻璃瓶</a>》</p>
<p>为方便下载，提供本人网盘帐号密码，请不要弄乱里面的页面，以方便其它人下载，谢谢。</p>
<p>帐号：<a href="mailto:287019674@qq.com">287019674@qq.com</a></p>
<p>密码：123456</p>
<p>下面是对代码的分析：</p>
<h3>一、四叶草</h3>
<p>四叶草的代码结构如下：</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="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;clover&quot;</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;leaves&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">i</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;leave angleN&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">i</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">i</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;leave angleS&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">i</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">i</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;leave angleW&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">i</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">i</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;leave angleE&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">i</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;">i</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;branch&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">i</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>一个leaves挂着叶子，叶瓣用四个I标签表示，一个branch代表叶茎</p>
<h4>1) 叶瓣</h4>
<p>每 个叶瓣都是一个leave，然后用angle控制它们的旋转，然而一个leave的话是画不出一个心形的，所以我用多了一个leave:after画另 外一半，两个表现出来的形状是一样的，一个头圆下方的形状，圆可以用border-radius圆角来做，然后通过以左下角为原点，旋转90度，来让它们 错开重叠成一个心形，如果你觉得抽象的话，可以参考下图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044934CHC.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>我把leave:after的颜色调深一些，就可以看出它们是怎么一个重叠关系了&#8230;因为叶瓣与叶瓣之间存在之间隙，所以我旋转的原点有稍作偏移，而且在心形的底部如果太尖感觉有点怪，所以也做了一个小圆角处理，到此叶瓣主体就绘制完成。</p>
<h4>2）叶茎</h4>
<p>叶茎的话就是一个border做了一个大弧度圆角跟小弧度圆角的处理，如图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044935DvM.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>如果border处于圆角状态，并且临近的border不显示，那么该border会向不显示的border拉一条锥形弧线， 这形状恰巧符合叶茎的形状，大弧度何以勾勒叶茎的基本形状，小弧度可以用来收尾，这样会比直角收尾柔和很多，到此四叶草制作完毕。</p>
<h3>二、玻璃瓶</h3>
<p>玻璃瓶的代码结构如下：</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="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;bottle&quot;</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;bottle_top&quot;</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;bottle_mouth&quot;</span>&gt;&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;highlight&quot;</span>&gt;&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: #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;bottle_neck&quot;</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;highlight&quot;</span>&gt;&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: #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;bottle_main&quot;</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;bottle_inner&quot;</span>&gt;&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;highlight&quot;</span>&gt;&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: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</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>一 个bottle，分为瓶顶bottle_top、瓶颈bottle_neck、瓶身bottle_main三部分，每个都包含有一个挂高光的无意义的标 签，而bottle_top里面有一个瓶口bottle_mouth，bottle_main里面有一个玻璃瓶内部bottle_inner。</p>
<h4>1）瓶子bottle</h4>
<p>bottle 作为最外的容器，其实并无多大意义，用来只是定位。bottle:after用来画瓶子底部黑色的阴影，bottle:before用来画瓶子底部由于水的颜色产生的彩色阴影，两者分开，这样如果里面不装水了，那么只要隐藏bottle:before即可。下图是一个空瓶子的效果：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044936Dld.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<h4>2）瓶顶bottle_top、瓶颈bottle_neck、瓶身bottle_main</h4>
<p>其实瓶顶、瓶颈、瓶身三者的基本结构一致，所以这里合并在一起，后面细节的时候再分开。<br />
bottle_top我设定了宽高之后，取了它的左右边框，然后对它的bottle_top:after、bottle_top:before进行操作，after做顶部向上的面，before做底部向下的面，然后border做边框轮廓：</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</span><span style="color: #00AA00;">:</span><span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</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;">2px</span> <span style="color: #993333;">solid</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.6</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> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>一个总的border，然后底部，也就是向前的border-bottom我把透明度设置为0.6比正常的深，然后后面的我把它的宽度调成了1px，从而增强透视效果，因为同样的物体，靠近眼睛的会比远离眼睛的大些清晰些。瓶颈瓶身同理，做了同样的设置，然而对于bottle_neck的伪类的 border-top我不是设置它的宽度为1px，而是直接border-top:none; 因为它被前面的玻璃实体挡住了，理应是存在的但显得，但是该部位的交叉线条比较多，所以直接隐藏掉，让线条清爽明朗些。最后将三个主体的元素通过定位，玻璃瓶框架基本就打好了。</p>
<h4>3）瓶口bottle_mouth</h4>
<p>因为瓶子是透明的，所以瓶口这个地方需要显示出来，它串连着瓶顶跟瓶颈两个部份，瓶口顶部需要重点刻画，而瓶口底部刚好在瓶颈底部交汇，由于厚度折射什么 的一大堆元素影响，看不是很清楚，所以我给次要化删了。如果你看了我的代码，会发现bottle_mouth我是没有用box-shadow来做‘面’， 而是用背景色，这里需要注意的是，投影形成的是一个圈的颜色，当然可以用偏移等方式让他变成一个弧形，但是如果我仅仅需要左右方向的投影，上下为透明的 话，就不行了，如图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044938jmN.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>我现在需要的是拉一个水平方向自左向右的白色-透明-透明-白色的渐变，如果用box-shadow的话，在箭头方向会产生一块很明显的白色-透明的区域，如果采用投影向上偏移的话，那么下面就会出现同样的不符合要求的区域，所以这个点上，应该采用背景色渐变比较合理。</p>
<h4>4）瓶内bottle_inner</h4>
<p>bottle_inner没有像bottle_top那样一个圆柱形的设计，只是通过与瓶身bottle_main间隔一段距离产生厚度感，还有圆角：</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;">-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">20px</span> <span style="color: #933;">20px</span>/<span style="color: #933;">10px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>这样做出来的圆角底部会扁些逼真些，而与前面制作最大的不同在于这里：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044939ifn.jpg" alt="四叶草、水母与玻璃瓶" /></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;"><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> 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.01</span><span style="color: #00AA00;">&#41;</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;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">2px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">8px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.6</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</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>因为最边缘的玻璃切面跟视线成90度，透明度很高，而 弧度与视线大的区域，透明度会很低，所以白色会重一些，再慢慢过渡到透明。这个我是搜一些玻璃瓶资料 分析出来的，做出来的效果也比白色边框再渐变要真实些，然而不单要对内投影，还要对外，因为玻璃身有一定厚度，不可能完全透明，所以写了 5个像素的向外投影作为瓶身的渲染色&#8230;</p>
<h4>5）投影</h4>
<p>这里所说的投影，是对伪类进行box-shadow inset内投影，产生一个渐变面，让圆柱体的‘面’效果突出出来，这里我不用背景色而采用投影，是因为很难调整到符合透视的一个角度，而投影可以很轻松的做到，而且色彩融合得很好。比较特殊投影处理的有：</p>
<p>1&gt; 瓶顶bottle_top的一个向下偏移的投影，如上面瓶口bottle_mouth图片，具体代码：</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: #933;">0px</span> <span style="color: #933;">3px</span> <span style="color: #933;">3px</span> <span style="color: #933;">-1px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.3</span><span style="color: #00AA00;">&#41;</span>；</pre></td></tr></table></div>

<p>向下偏移3像素，羽化3像素，然后缩小1个比例，颜色为0.3的白色。这里是作为瓶顶圆柱形面的小高亮处理。</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: #cc66cc;">2</span>&amp;gt<span style="color: #00AA00;">;</span> 瓶颈bottle_neck<span style="color: #00AA00;">:</span>after，如图：</pre></td></tr></table></div>

<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044939Y0m.jpg" alt="四叶草、水母与玻璃瓶" width="312" height="100" /></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;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">5px</span> <span style="color: #933;">3px</span> <span style="color: #933;">-2px</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.05</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>向下偏移5像素，羽化3像素，然后缩小2个比例，颜色为0.05的黑色。这里是作为瓶顶向瓶颈投影处理，增强立体感。</p>
<p>3&gt; 瓶身bottle_main:before，如图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044940m8J.jpg" alt="四叶草、水母与玻璃瓶" /></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;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">6px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">3px</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.15</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>不偏移，羽化6像素，颜色为0.7的白色内投影，不偏移，羽化3像素，颜色为0.15的黑色内投影。这里是作为瓶底底色设置跟边缘泛光，增强立体感。</p>
<h4>6）高光</h4>
<p>挂上高光，立体感强烈了许多，如图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044941Jon.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>分别对瓶顶、瓶颈、瓶身做高光，一条浅点细点的，一条宽点由左到右由白到透明的渐变，瓶颈只有宽没有细，瓶身细线由上至下做一个到80%的时候为透明的渐变&#8230;值得注意的是，高光需要贴着瓶壁，高度斜度保持一致，所以需要对高光进行一个斜切的变换：</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-transform<span style="color: #00AA00;">:</span>skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>6deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>要不然左侧对应了，那么右侧高光必然会高出瓶壁几个像素，到此，玻璃瓶制作完成。</p>
<h3>三、水</h3>
<h4>1）水主体</h4>
<p>因为水是装在玻璃瓶里面的，所以展现出来是一个圆柱形，结构跟瓶身bottle_main一致，区别主要表现在渲染颜色，投影方面。以蓝色的水为例：</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;">.water<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-moz-linear-</span>gradient<span style="color: #00AA00;">&#40;</span>-85deg<span style="color: #00AA00;">,</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.35</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">173</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">216</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.55</span><span style="color: #00AA00;">&#41;</span> <span style="color: #933;">70%</span><span style="color: #00AA00;">,</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">173</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">216</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">50px</span> <span style="color: #933;">50px</span> <span style="color: #933;">20px</span> <span style="color: #933;">20px</span>/<span style="color: #933;">8px</span> <span style="color: #933;">8px</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">6px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">0.2px</span> <span style="color: #933;">3px</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.3</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">2px</span> <span style="color: #933;">6px</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.1</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">2px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.3</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span> <span style="color: #933;">1px</span> <span style="color: #933;">3px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>水元素边角需要做一个椭圆化处理，因为这次需要用到背景色打底，上圆润一点圆角过渡自然下扁在两角有一个小拐点，因为上面的是水平面透视的，而下面是玻璃底座，需要有一定的硬度，与上面产生区别；<br />
背景色拉一个左上右下，斜度平缓倾向于垂直的渐变，颜色由深到浅；<br />
投影所产生的效果跟瓶身的效果差不多，颜色在左右侧深中间浅；</p>
<h4>2）水平面</h4>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.water</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-moz-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.05</span><span style="color: #00AA00;">&#41;</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span> <span style="color: #933;">80%</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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.3</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">50px</span>/<span style="color: #933;">8px</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> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-bottom-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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</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;">204</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.35</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>背景色拉一个由左到右 白-蓝-蓝-白的渐变，因为已经有水主体的蓝色打底色，所以上水平面颜色不用太重，边框用0.2白色，而在前面的border-bottom则用0.4白 色，远模糊近清晰，让立体感更强些&#8230;这里值得注意的是投影，我写了一个向下偏移1像素，羽化2像素，然后缩小1个比例，颜色为0.35的蓝色投影，这 个是为了跟上面的水主体呼应写的，我们知道，在中学上化学课目测试管中溶液体积的时候，视线要要跟溶液凹面相平，否则会产生误差，可以看这张图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044942Oqe.jpg" alt="四叶草、水母与玻璃瓶" /><br />
内径比较小的仪器，当里面装有水时，因为水有表面张力，所以在小内径仪器里不会是平的，呈现周围高中间低的凹形，而中间的凹形状才是真正水的标准位置，周围的只是因为表面张力往上高了。</p>
<p>所以我刚才做的那个投影，配合背景色的头尾白色，就形成了这个凹面的效果，放大200%后，效果如下：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044943xMf.jpg" alt="四叶草、水母与玻璃瓶" width="223" height="100" /></p>
<p>after做的是下面箭头指向的稍微深色的投影区域，而上面箭头指向的，其实就是水water本体所做的内投影，现在明白为什么这次主体要做圆角伸到最上面了吧&#8230;</p>
<h4>3）水底部</h4>
<p>其实原理跟水平面一致，背景色拉一个由左到右 深蓝-蓝-蓝-深蓝的渐变，然后在用投影加深底部渐变颜色，需要注意的是，底部跟玻璃需要保持一定的间隙，以突出玻璃的厚度和玻璃凹面。</p>
<h3>四、水母</h3>
<p>本来想画条鱼，不过鱼如果游到边缘要拐弯的话难度太高了，就换成一个比较容易实现的水母同志，如图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/0449430Nd.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>代码结构为：</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="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;jellyfish&quot;</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;jellyfish_head&quot;</span>&gt;&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;jellyfish_tail&quot;</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;jellyfish_tail_in&quot;</span>&gt;&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: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</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>一只水母jellyfish，分为头部jellyfish_head、尾部jellyfish_tail，其实里面那个jellyfish_tail_in没多大意义，就为了加一条触须&#8230;</p>
<h4>1）水母头部jellyfish_head</h4>
<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;">-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">20px</span> <span style="color: #933;">20px</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span>/<span style="color: #933;">20px</span> <span style="color: #933;">20px</span> <span style="color: #933;">16px</span> <span style="color: #933;">16px</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;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">4px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.2</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">3px</span> <span style="color: #933;">3px</span> <span style="color: #933;">1px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.2</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">,</span><span style="color: #933;">-1px</span> <span style="color: #933;">-1px</span> <span style="color: #933;">1px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>采用四次内投影产生立体感，具体怎么产生的，我解释下，第一个是最基本的打底 色，第二第四是做向右下偏移跟向左上偏移的阴影，增加深度，第三个向右下偏移 了三个像素做一个高光效果，再用jellyfish_head:after，画了一个椭圆旋转rotate(-15deg)，调整透明度位置后作为最亮的 高光展现，这样水母的头部就制作完成。</p>
<h4>2）水母尾部jellyfish_tail</h4>
<p>尾部jellyfish_tail取 左右边框，上下隐藏，然后做一个淡淡的内投影，调整位置，圆角的曲率，再通过 jellyfish_tail:after、jellyfish_tail:before制作多几条触须，调整好触须间的间隔，这个根据个人爱好而定，因 为我制作后发现尾部稍微大了点，就用scale缩小了一些&#8230;</p>
<h3>五、气泡</h3>
<p>气泡bubble的制作相对比较简单，所以放在下面，次要处理，基本也就是border、box-shadow这些主要还是体现在动画那里。</p>
<h3>六、四叶草浮在水面</h3>
<p>我 们知道，图层之间只有上下之分，没有穿过的，四叶草下部分需要泡在水里，而上部分需要浮出水面，我不可能把水切成两段，所以我把四叶草分成了上下两部分 cloverTop和cloverBottom，类似于一个模板操作，固定宽高后hidden掉不要的那部分，再拼接起来，从而实现漂浮，穿过水面的效 果，实现效果如下：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044944LKZ.jpg" alt="四叶草、水母与玻璃瓶" /></p>
<p>既然说穿过了，还要摇曳，那么必然有涟漪，总共有两个涟漪，用cloverBottom:after、cloverBottom:before实现，具体重点代码如下：</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;">.cloverBottom</span><span style="color: #3333ff;">:after</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;">0.5px</span> <span style="color: #993333;">solid</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.3</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">19px</span>/<span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border-bottom-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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">0px</span> <span style="color: #933;">0px</span> <span style="color: #933;">3px</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.2</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>设置好边框样式，但是由于太小了，四条都显示的话画面太复杂了，所以隐藏掉后面跟右边的两条，下面的调整边框颜色，在设置一个0.2黑色的内投影，调整好 圆角的曲率，做出一个涟漪的大致效果，after做一个小涟漪，before做一个大涟漪，基本制作方式一致，这里就不分析了。</p>
<h3>七、动画</h3>
<h4>1）摇曳的四叶草</h4>
<p>如你刚打开我源代码页面所看到的，有一株四叶草在玻璃瓶里面摇曳，荡起一个个涟漪（如果你没看到，说明你用的是IE..哈哈..）&#8230;</p>
<p>那么，涟漪的节奏应该与四叶草摇曳的节奏一致，具体的代码如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@-moz-keyframes cloverMove{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">25%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-3px</span><span style="color: #00AA00;">,</span><span style="color: #933;">1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">75%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">4px</span><span style="color: #00AA00;">,</span><span style="color: #933;">1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>四叶草从原位置，向左移动-3px向下移动1px，接着向右移动3px向上移动2px，接着向右移动4px向下移动2px，然后回归原位置。这样整体感觉就是浮浮沉沉，左摇右摆的样子。</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;">-moz-animation<span style="color: #00AA00;">:</span> cloverMove 4s linear infinite alternate<span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>它动画的名字叫cloverMove，动画时间4秒，线性运动，不停止的，反向进行。</p>
<p>那就这样而已吗？不止的，这个是四叶草整体的摇曳，那叶茎也可以摇的，具体实现代码：</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;"><span style="color: #6666ff;">.branch</span><span style="color: #00AA00;">&#123;</span>-moz-animation<span style="color: #00AA00;">:</span>branchMove 4s linear infinite alternate<span style="color: #00AA00;">;</span> -moz-transform-origin<span style="color: #00AA00;">:</span><span style="color: #933;">0%</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #a1a100;">@-moz-keyframes branchMove{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">25%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>-2deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">75%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>4deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>通过以左上角为中心，配合整体旋转，这样看起来更动感&#8230;</p>
<h4>2)摇曳上升的气泡</h4>
<p>单单是四叶草在摇，感觉怪怪的，因为气泡不能死气沉沉的，也要跟节奏才行，所以：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@-moz-keyframes bubbleMove{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span> skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>2deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">25%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-2px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0.5px</span><span style="color: #00AA00;">&#41;</span> skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>5deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-0.5px</span><span style="color: #00AA00;">&#41;</span> skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>2deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">75%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">2px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0.5px</span><span style="color: #00AA00;">&#41;</span> skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>0deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span> skew<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">,</span>2deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>在轻微移动的同时进行斜切操作，因为气泡会“晃”&#8230;</p>
<p>那你会说这样也只是实现了“摇曳的气泡”，没有上升啊，其实有的，我总共做了三个气泡，第三个是在水底从下往上升的：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/image/2012/05/044945FNB.jpg" alt="四叶草、水母与玻璃瓶" width="254" height="181" /></p>
<p>总共有三个气泡，第三个气泡的动画代码如下：</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;"><span style="color: #a1a100;">@-moz-keyframes bubbleRise{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> opacity<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">10%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> opacity<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">30%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-15px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">1px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-30px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">75%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-50px</span><span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1.2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">98%</span><span style="color: #00AA00;">&#123;</span>opacity<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.25</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-67px</span><span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> opacity<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-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;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>气泡先从透明到完全不透明，10%出现的出现时间，然后摇晃着上升变大，到75%的时候面积为原来的1.2倍，边框颜色会随着变大而模糊，所以加深一点，到100%的时候面积为原来的1.4倍，完全不透明，即消失。</p>
<h4>3）超萌水母</h4>
<p>静态的水母已经很萌了，然而会游泳的，超萌那 q( &gt;3&lt; )p&#8230;以下是水母游水的动画代码：</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
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@-moz-keyframes jellyfishSwimming{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>-4deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">20%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-3px</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>-6deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-2px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">70%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">-1px</span><span style="color: #00AA00;">,</span><span style="color: #933;">-3px</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>-6deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>translate<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0px</span><span style="color: #00AA00;">,</span><span style="color: #933;">0px</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>-4deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #a1a100;">@-moz-keyframes jellyfish_headChange{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">5%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1.1</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.95</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">20%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.95</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">55%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1.1</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.95</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">70%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.95</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #a1a100;">@-moz-keyframes jellyfish_tailChange{</span>
   <span style="color: #933;">0%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">5%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.9</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.75</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">20%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">50%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">55%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.9</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.75</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">70%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
   <span style="color: #933;">100%</span><span style="color: #00AA00;">&#123;</span>-moz-transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>jellyfishSwimming为整体的游水，变换侧移位置，同时水母是圆的，会摇晃；<br />
jellyfish_headChange为水母头部的变化，个人觉得水母是要吸一口水，然后吐出来，利用反作用力才游的，所以0-5的时候是吸水变宽变 扁，然后5-20吐水变瘦变长，20-50变为正常，然后50-55再吸水变宽变扁，55-70吐水变瘦变长，70-100变为正常。<br />
jellyfish_tailChange同jellyfish_headChange，其实可以用同一个，只不过我觉得尾巴相对于头部有点大了，就再缩小些，而且吐水的时候，尾巴可以吐得长些。</p>
<h3>七、换色</h3>
<p>这里针对水的颜色替换，其实已经没有多大技巧了，只不过利用类名样式权重，覆盖原本的初始样式，我制作了蓝色（默认）、粉红色pink、黄色yellow、绿色green，只要在bottle后面写下你想要变更的颜色就可以了，如下：</p>

<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;bottle green&quot;</span>&gt;</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="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;water green&quot;</span>&gt;</span></pre></td></tr></table></div>

<p>因为我们变更的是水的颜色，而不是瓶子的颜色，但是水颜色对整体瓶底投影有影响，而bottle:before之前没有用到，我也不想加多个标签，就套上了&#8230;</p>
<h3>八、后记</h3>
<p>由于我做的时候是用firefox做的，兼容只写moz，webkit是临时批量修改的，在修改的时候发现，webkit居然不支持 border:0.5px 最小只能1px，修改了气泡那些，可能有些地方没修&#8230;</p>
<p>对于源代码页面，我隐藏了小水母，因为太多元素的话，页面显得很杂，如果你想看水母的话，就隐藏了四叶草再删叼水母对于的display:none样式，这样效果会好一些&#8230;</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/PDse0oAxVo8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/clover-jellyfish-and-glass.html/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>CSS雪碧图会占用太多浏览器内存吗？</title>
		<link>http://www.qianduan.net/css-sprite-diagram-occupied-by-the-memory-of-too-many-browser.html</link>
		<comments>http://www.qianduan.net/css-sprite-diagram-occupied-by-the-memory-of-too-many-browser.html#comments</comments>
		<pubDate>Wed, 09 May 2012 14:53:44 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[雪碧]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13085</guid>
		<description><![CDATA[可能是某篇微博的关系，今天有人来评论说，使用雪碧图，内存会暴涨的。。。这个问题讨论的也蛮多了，那，到底，使用雪碧图后，会占用很多内存吗... ]]></description>
			<content:encoded><![CDATA[<p>可能是某篇<a href="http://weibo.com/2717844351/yi4z6APx7" target="_blank">微博</a>的关系，今天有人来<a title="CSS雪碧：要还是不要" href="http://www.qianduan.net/to-sprite-or-not-to-sprite.html/comment-page-2#comment-248481" target="_blank">评论</a>说，使用雪碧图，内存会暴涨的。。。这个问题讨论的也蛮多了，那，到底，使用雪碧图后，会占用很多内存吗？<span id="more-13085"></span></p>
<h4>实验：</h4>
<p>下午做了个简单的实验，用99个128px*128px的png 32图片，写了三个页面来做测试：</p>
<ul>
<li><a href="http://labs.qianduan.net/sprite/s1.html" target="_blank">只用img标签调用</a>；</li>
<li><a href="http://labs.qianduan.net/sprite/s2.html" target="_blank">用css分别调用每个png图片做背景</a>；</li>
<li><a href="http://labs.qianduan.net/sprite/s3.html" target="_blank">使用雪碧图做背景</a></li>
</ul>
<p>然后分别用Chrome、IE6/7/8/9、Firefox做测试，具体的数据我这里就不详细列了，感兴趣的话可以自测一下。</p>
<h4>结论：</h4>
<p>在各浏览器下，三个页面占用的内存相当，只有很小的差异，Chrome下，雪碧图占用内存略少一点点儿，IE下略多一点点儿。。。</p>
<p>包括mouseover等交互事件，对浏览器内存也没什么影响，只是会影响CPU占用率——这个即便纯色背景色都会在事件触发时提高CPU占用率的。。。</p>
<p>所以，雪碧图的真正问题是利用率的问题，如<a href="http://ooxx.me" target="_blank">大猫</a>所说，如果你雪碧图中合并了10个icon，结果实际只使用了3个，那才是浪费了内存。</p>
<p>其实，图片在浏览器中占用的<a href="http://www.scantips.com/basics1d.html" target="_blank">内存是可以计算的</a>：透明的图片，内存占用是长＊宽＊4，不透明图片占用是长＊宽＊3，比如第三个例子中的雪碧图大小是12770*128，它在浏览器中占用内存是12770*128*4=6.23MB左右。</p>
<p>所以，还是建议读一下之前翻译的《<a title="Permanent Link: CSS雪碧:要还是不要？" href="http://www.qianduan.net/to-sprite-or-not-to-sprite.html" rel="bookmark">CSS雪碧:要还是不要？</a>》。</p>
<h3>总结：</h3>
<ul>
<li>雪碧图的尺寸要优化好，空白尽可能少；</li>
<li>及时清理不再使用的图片；</li>
<li>将雪碧图权重做分离，全局/框架级的和局部/模块级的分离开；</li>
<li>缓存设定和更新频率匹配，如果将每天更新的雪碧图的缓存设置到一个月很容易出问题的。</li>
</ul>
<p>PS：自从用了<a title="CSSGgaga:autosprite" href="http://www.99css.com/archives/726" target="_blank">CSSGaga的自动合并雪碧图</a>功能后，再也不用为制作/更新雪碧图操心了。。。</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/mOu21WkNxVg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css-sprite-diagram-occupied-by-the-memory-of-too-many-browser.html/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>2012年CSS裸奔节</title>
		<link>http://www.qianduan.net/2012-css-streaking-section.html</link>
		<comments>http://www.qianduan.net/2012-css-streaking-section.html#comments</comments>
		<pubDate>Sun, 08 Apr 2012 17:02:37 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[Front News]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[裸奔]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13079</guid>
		<description><![CDATA[如果你突然发现前端观察界面乱掉了，没有样式了，不要惊慌，因为今天，4月9日，是CSS裸奔节。装了一个CSS naked day的wp插件，然后它自己裸奔了。。... ]]></description>
			<content:encoded><![CDATA[<p>如果你突然发现前端观察界面乱掉了，没有样式了，不要惊慌，因为今天，4月9日，是CSS裸奔节。装了一个CSS naked day的wp插件，然后它自己裸奔了。。。<span id="more-13079"></span></p>
<p>CSS裸奔节就是通过将网站上的所有样式去掉，以告诉大家，样式对一个网站有多么重要，俗话说，人靠衣装，美靠靓妆。。。</p>
<p>虽然现在这个节日好像越来越不被重视了，但是让网站裸奔，作为网站可用性的测试，还是有些基础意义的——你的网站离开了样式，还能用吗？——虽然初衷好像是“还能看吗？”</p>
<p>嗯，在这个特殊的节日，我仅代表前端观察，向各位前端开发工程师发去问候，大家一起裸奔吧～～</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/1dwybnGMVtc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/2012-css-streaking-section.html/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>理解css中的长度单位</title>
		<link>http://www.qianduan.net/understand-the-unit-of-length-in-the-css.html</link>
		<comments>http://www.qianduan.net/understand-the-unit-of-length-in-the-css.html#comments</comments>
		<pubDate>Sun, 08 Apr 2012 16:43:52 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[rem]]></category>
		<category><![CDATA[单位]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13075</guid>
		<description><![CDATA[很基础的一个问题，但是，其实看起来很复杂的样子～～我们来捋一捋吧～... ]]></description>
			<content:encoded><![CDATA[<p>很基础的一个问题，但是，其实看起来很复杂的样子～～我们来捋一捋吧～～</p>
<p>css3中也对css中用到的单位进行了改进，单位也就是那几个，所以我们要搞清楚再用。</p>
<ul>
<li>%——百分比</li>
<li>in——寸</li>
<li>cm——厘米</li>
<li>mm——毫米</li>
<li>pt——point，大约1/72寸；</li>
<li>pc——pica，大约6pt，1/6寸；</li>
<li>px——屏幕的一个像素点；</li>
<li>em——元素的font-size；</li>
<li>ex——font-size的x-height值，为小写字母x的高度，通常相当于font-size的一半。</li>
</ul>
<p>我们常用的有px、%、em，px就不多说了，em和%多说点儿：</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;">.box<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.3em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>元素的行高是当前元素继承的font-size的1.3倍，</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;">.box<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;">1.3em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>当前元素的字体大小是其继承的font-size的1.3倍。</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;">.box<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">130%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>元素的行高是当前元素继承的font-size的130%倍，等同于1.3em。</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;">.box<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;">130%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>当前元素的字体大小是其继承的font-size的130%倍，等同于1.3em。</p>
<p>恩，迷惑了吗？</p>
<p>em就是基于当前元素的(如果没设置就是继承其父元素的)font-size。</p>
<p>而%对于font-size、line-height等，是基于其父元素的font-size的，而对于text-indent、margin、padding、width等属性，则是基于父元素的宽度的。</p>
<h3>CSS3中的单位：</h3>
<p>css3中引入了一些新的单位：</p>
<ul>
<li>ch——字符0(零)的宽度；</li>
<li>rem——根元素(html元素)的font-size；</li>
<li>vw——viewpoint width，视窗宽度，1vw等于视窗宽度的1%；</li>
<li>vh——viewpoint height，视窗高度，1vh等于视窗高度的1%；</li>
<li>vmin——vw和vh中较小的那个。</li>
</ul>
<p>显然vw、vh、vmin是针对移动设备的，如果视窗大小变化了，这三个值也会跟着相应的变化。</p>
<p>rem单位感觉就是px+em的变体，是否值得使用还要看你自己的取舍：没有px精确也没有em灵活——或者说，比px灵活，比em更精确～～。。。XD。。。</p>
<h4>如果没有定义font-size怎么办？</h4>
<p>其实不用担心，传说，各个浏览器史无前例的默认font-size:16px;，所以，即便你在样式文件中忘了定义font-size初始值，也可以放心的使用em、rem。</p>
<h4>浏览器支持：</h4>
<p>rem，各浏览器基本都支持了， IE9+、FF3.6+、Chrome、Safari 5+、以及 Opera 11.6+</p>
<p>vw、vh、vmin，浏览器支持并不乐观，IE9支持了，Chrome目前不支持，Chrome 20将会重新支持(貌似之前支持过？)、Safari也即将支持了吧，Opera和Firefox也还都不支持。</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/OEqGW4AMI3g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/understand-the-unit-of-length-in-the-css.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>css3 calc()功能小窥</title>
		<link>http://www.qianduan.net/calc-at-at-at-page-intelligent-layout.html</link>
		<comments>http://www.qianduan.net/calc-at-at-at-page-intelligent-layout.html#comments</comments>
		<pubDate>Sun, 08 Apr 2012 15:25:38 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[calc()]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13044</guid>
		<description><![CDATA[之前，我们想要实现一个完美的宽度自适应的输入框好麻烦，曾经也被作为对前端技术的一个挑战。类似的常见场景还有100%宽+边框的容器等。遇到这些情况，我们不得不分外小心，因为各个浏... ]]></description>
			<content:encoded><![CDATA[<p>之前，我们想要实现一个<a title="宽度自适应的输入框" href="http://www.99css.com/archives/412" target="_blank">完美的宽度自适应的输入框</a>好麻烦，曾经也被作为对前端技术的一个挑战。类似的常见场景还有100%宽+边框的容器等。遇到这些情况，我们不得不分外小心，因为各个浏览器的表现可能不一致。</p>
<p>现在，firefox和webkit相继支持calc()功能了，我们也可以学习下了。</p>
<h3>calc()是干嘛的？</h3>
<p>calc()是单词calculate(计算)的缩写，是<a title="CSS3 Values:calc()" href="http://www.w3.org/TR/css3-values/#calc" target="_blank">css3</a>的一个新的长度单位功能，可以使用简单的数学运算。</p>
<p>嗯，CSS3越来越高级了。</p>
<h3>运算规则</h3>
<p>calc()使用通用的数学运算规则，但是也提供更智能的功能：</p>
<ul>
<li>使用“+”“-”“*”“/”四则运算；</li>
<li>可以使用百分比、px、em、rem等单位；</li>
<li>可以混合使用各种单位进行计算。</li>
</ul>
<h3>实例：</h3>
<p>我们来看几个小例子来理解下calc()功能吧：</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;">.box<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: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span>calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span><span style="color: #933;">-2px</span><span style="color: #00AA00;">&#41;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>容器宽度加上边框宽度正好100%。</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;">.box<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span>calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">10em</span><span style="color: #933;">+20px</span><span style="color: #00AA00;">&#41;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>宽度，10em加20px。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.box<span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span>calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span>/<span style="color: #cc66cc;">3</span><span style="color: #933;">-20px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.box</span><span style="color: #3333ff;">:nth-</span>child<span style="color: #00AA00;">&#40;</span>3n<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>3栏等宽布局。</p>
<h3>浏览器支持</h3>
<p>firefox 4.0+已经开支支持calc()功能，不过要使用-moz-calc()私有属性，chrome从19 dev版，也开始支持私有的-webkit-calc()写法，IE9这次则牛逼了一次，原生支持标准的不带前缀的写法了。Opera貌似还不支持～～</p>
<p>所以如果我们要用这个属性的话，要记得带上各浏览器的兼容性。</p>
<p class="red">UPDATE @2012-05-15</p>
<p>eric meyer提到w3c规范的一条备注(评论里面的同学也有提到)：</p>
<blockquote cite="http://www.w3.org/TR/css3-values/#calc"><p>Note that the grammar requires spaces around binary ‘+’ and ‘-’ operators. The ‘*’ and ‘/’ operators do not require spaces. via  <a href="http://www.w3.org/TR/css3-values/">CSS3 Values and Units specification</a> </p>
</blockquote>
<p>也就是说，&#8221;+&#8221;、&#8221;-&#8221;两个符号边上必须要有空格，而&#8221;*&#8221;、&#8221;/&#8221;符号则不是必须的。</p>
<p>然后我们可能要这样写：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span>/<span style="color: #cc66cc;">3</span> - <span style="color: #cc66cc;">2</span><span style="color: #00AA00;">*</span><span style="color: #933;">1em</span> - <span style="color: #cc66cc;">2</span><span style="color: #00AA00;">*</span><span style="color: #933;">1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>这样写也是可以的：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span> / <span style="color: #cc66cc;">3</span> - <span style="color: #cc66cc;">2</span> <span style="color: #00AA00;">*</span> <span style="color: #933;">1em</span> - <span style="color: #cc66cc;">2</span> <span style="color: #00AA00;">*</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>但是这样写就是错的：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> calc<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span>/<span style="color: #cc66cc;">3</span>-<span style="color: #cc66cc;">2</span><span style="color: #00AA00;">*</span><span style="color: #933;">1em</span>-<span style="color: #cc66cc;">2</span><span style="color: #00AA00;">*</span><span style="color: #933;">1px</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>嗯，这样很容易写错啊。还好现在支持的浏览器还不太多，我会继续观望并保持更新~~</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/__qpoK8ALvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/calc-at-at-at-page-intelligent-layout.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>icon font大搜罗</title>
		<link>http://www.qianduan.net/icon-font-large-collecting.html</link>
		<comments>http://www.qianduan.net/icon-font-large-collecting.html#comments</comments>
		<pubDate>Sun, 08 Apr 2012 14:58:51 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[Resource]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[icon]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13062</guid>
		<description><![CDATA[看了上一篇《CSS3 icon font完全指南》之后，你是否也想在自己的项目——特别是移动项目——中小试一把呢？我也一直在找机会show一下这种方法，至少，可以灭了IE6的透明和惨不忍睹的锯齿什... ]]></description>
			<content:encoded><![CDATA[<p>看了上一篇《<a title="CSS3 icon font完全指南" href="http://www.qianduan.net/css3-icon-font-guide.html">CSS3 icon font完全指南</a>》之后，你是否也想在自己的项目——特别是移动项目——中小试一把呢？我也一直在找机会show一下这种方法，至少，可以灭了IE6的透明和惨不忍睹的锯齿什么的。今天我们收集国外各种现有的icon font，以给大家提供点儿参考。<br />
<span id="more-13062"></span></p>
<h3>免费字体</h3>
<p>下面的这些icon font都是免费或者开源的，你可以大胆的使用，但是作为设计师，大家要有点儿修养，在使用前先看看相关字体文件的版权授权方式～～</p>
<h4> <a href="http://fortawesome.github.com/Font-Awesome/">Font Awesome</a>(150+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-fontawesome.png" alt="" title="set-fontawesome" width="600" height="300" ></p>
<p>为配合<a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>使用而设计。其实它是<a href="http://glyphish.com/">Glyphish</a>的一个免费的重新设计的版本。</p>
<h4> <a href="http://thedesignoffice.org/project/modern-pictograms/">Modern Pictograms</a>(89个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-modernpictograms.png" alt="" title="set-modernpictograms" width="600" height="300" ></p>
<p>可以在<a href="http://www.fontsquirrel.com/fonts/modern-pictograms">Font Squirrel</a>免费下载，但是如果你愿意，也可以<a href="http://thedesignoffice.org/project/modern-pictograms/#linkroll2">捐款</a>。</p>
<h4> <a href="http://www.ffdingbatsfont.com/erler/index.html">Erler Dingbats</a>(~120个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-erlerdingbats.png" alt="" title="set-erlerdingbats" width="600" height="300" ></p>
<h4> <a href="http://chrfb.deviantart.com/art/quot-ecqlipse-2-quot-PNG-59941546">Ecqlipse 2</a>(281个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-ecqlipse2.png" alt="" title="set-ecqlipse2" width="600" height="300" ></p>
<h4> <a href="http://www.heydonworks.com/a-free-icon-web-font">Heydings Icons</a>(60个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-heydings.png" alt="" title="set-heydings" width="600" height="300" ></p>
<h4> <a href="http://somerandomdude.com/work/iconic/">Iconic</a>(171个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-iconic.png" alt="" title="set-iconic" width="600" height="300" ></p>
<h4> <a href="http://www.justbenicestudio.com/studio/websymbols/">Web Symbols</a>(~80个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-websymbols.png" alt="" title="set-websymbols" width="600" height="300" ></p>
<h4> <a href="http://www.entypo.com/">Entypo</a>(100+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-entypo.png" alt="" title="set-entypo" width="600" height="300" ></p>
<h4> <a href="http://blog.martianwabbit.com/post/4344642365/justvector-social-icons-font">JustVector Social Icons</a>(150+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-justvectorssocial.png" alt="" title="set-justvectorssocial" width="600" height="300" ></p>
<p>只有社交符号</p>
<h4> <a href="http://xperiments.es/blog/en/free-pulsarjs-fontface-iconfont/">PulsarJS</a>(73个) </h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-pulsarjs.png" alt="" title="set-pulsarjs" width="600" height="300" ></p>
<p>面向移动网站开发的一个字体。</p>
<h4> <a href="http://icons.marekventur.de/">Raphaël</a>(116个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-raphael.png" alt="" title="set-raphael" width="600" height="300" ></p>
<h4> <a href="http://www.dafont.com/dotcom.font?fpp=50">Dot Com</a>(92个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-dotcom.png" alt="" title="set-dotcom" width="600" height="300" ></p>
<h4> <a href="http://thenounproject.com/">The Noun Project</a>(424个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-thenounproject.png" alt="" title="set-thenounproject" width="600" height="300" ></p>
<h4> <a href="http://www.greepit.com/open-source-icons-gcons/">Gcons</a>(100个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-gcons.png" alt="" title="set-gcons" width="600" height="300" ></p>
<p>这个字体开源</p>
<h4> <a href="http://wplifeguard.com/pixelated-icon-set/">Pixelated</a>(36个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-pixelated.png" alt="" title="set-pixelated" width="600" height="300" ></p>
<h4> <a href="http://blog.roamdesign.co.uk/?page_id=218">Roam Design</a>(99个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-roamdesign.png" alt="" title="set-roamdesign" width="600" height="300" ></p>
<p>仅限个人使用</p>
<h4> <a href="http://www.jigsoaricons.com/">Jigsoar</a>(66个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-jigsoar.png" alt="" title="set-jigsoar" width="600" height="300" ></p>
<h4><a href="http://fontfabric.com/social-media-icons-pack/" target="_blank">Social Media Pictograms</a> (74个)</h3>
<p><a href="http://fontfabric.com/social-media-icons-pack/" target="_blank"><img alt="Social Media Pictograms" height="300" src="http://img.qianduan.net/uploads/2012/04/font-icon/set-pictograms.png" width="600"></a></p>
<p>pictograms 包括几乎所有的社交媒体图标。然后对于一些图标，通过字母的大小写来实现是否有圈。</p>
<h4><a href="http://lucianmarin.com/peculiar/" target="_blank">Peculiar</a> (45个)</h3>
<p><a href="http://lucianmarin.com/peculiar/" target="_blank"><img alt="Peculiar" height="300" src="http://img.qianduan.net/uploads/2012/04/font-icon/set-peculiar.png" width="600"></a></p>
<p>好吧，<strong>Peculiar</strong>其实不是一个字体，而是用css3实现的icon，不过方法可鉴。</p>
<h4><a href="http://www.designworkplan.com/design/symbol-signs.htm">Symbol Signs</a>(21个)</h2>
<p><a href="http://www.designworkplan.com/design/symbol-signs.htm"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-symbol-signs.png" alt="Symbol Signs @fontface font" width"600"></a></p>
<h4><a href="http://www.fontsquirrel.com/fonts/web-symbols">Web Symbols</a>(78个)</h2>
<p><a href="http://www.fontsquirrel.com/fonts/web-symbols"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-web-symbol.png" alt="Web Symbols @fontface font" width"600"></a></p>
<h4><a href="http://www.fonthead.com/fonts/InfoBits">InfoBits Icons &amp; Dingbats</a>(190个)</h2>
<p><a href="http://www.fonthead.com/fonts/InfoBits"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-infobits.jpg" alt="InfoBits Icons &amp; Dingbats @fontface font" width"600"></a></p>
<h4><a href="http://fontstruct.com/fontstructions/show/352362">ikoo</a>(65个)</h2>
<p><a href="http://fontstruct.com/fontstructions/show/352362"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-ikoo.png" alt="ikoo @fontface font" width"600"></a></p>
<h4><a href="http://www.dafont.com/social-networking-icons.font">Social Networking Icons Font</a>(56个)</h2>
<p><a href="http://www.dafont.com/social-networking-icons.font"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-sni.png" alt="Social Networking Icons Font @fontface font" width"600"></a></p>
<h3>收费字体</h3>
<p>下面的icon font都是收费的字体，它们相对于上面的免费字体有什么提升吗？有那些地方或细节值得我们学习？</p>
<h4> <a href="http://glyphish.com/">Glyphish</a>(400个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-glyphish.png" alt="" title="set-glyphish" width="600" height="300" ></p>
<h4> <a href="http://glyphicons.com/">Glyphicons</a>(350个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-glyphicons.png" alt="" title="set-glyphicons" width="600" height="300" ></p>
<h4> <a href="http://lifetreecreative.com/icons/">Gedy Rivera Social</a>(107个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-gedyrivera.png" alt="" title="set-gedyrivera" width="600" height="300" ></p>
<h4> <a href="http://fico.lensco.be/">Fico</a>(52个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-fico.png" alt="" title="set-fico" width="600" height="300" ></p>
<h4> <a href="http://kdnmedia.com/">WriteSocial</a></h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-writesocial.png" alt="" title="set-writesocial" width="600" height="300" ></p>
<h4> <a href="http://www.fonthead.com/fonts/ClickBits">ClickBits</a>(400个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-clickbits.png" alt="" title="set-clickbits" width="600" height="300" ></p>
<h4> <a href="http://www.myfonts.com/fonts/juraj-chrastina/flexi-social-icons/flexi-social-icons/glyphs.html?vid=480275">Flexi Social</a>(65个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-flexisocial.png" alt="" title="set-flexisocial" width="600" height="300" ></p>
<h4> <a href="http://steedicons.com/font/">Steedicons</a>(94个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-steedicons.png" alt="" title="set-steedicons" width="600" height="300" ></p>
<h4> <a href="http://www.webiconset.com/outline-style-pictogram-set/">Web Icon Set</a>(1600+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-webiconset.png" alt="" title="set-webiconset" width="600" height="300" ></p>
<h4> <a href="http://geomicons.com/">Geomicons</a>(100+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-geomicons.png" alt="" title="set-geomicons" width="600" height="300" ></p>
<h4> <a href="http://picons.me/">Picons</a>(100+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-picons.png" alt="" title="set-picons" width="600" height="300" ></p>
<h4> <a href="http://symbolicons.com/">Symbolicons</a>(500个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-symbolicons.png" alt="" title="set-symbolicons" width="600" height="300" ></p>
<h4> <a href="http://gettobuild.com/">Bixel</a>(65个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-bixel.png" alt="" title="set-bixel" width="600" height="300" ></p>
<h4> <a href="http://www.tabsicons.com/classic/">Tabs</a>(745个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-tabs.png" alt="" title="set-tabs" width="600" height="300" ></p>
<h4> <a href="http://gentleface.com/free_icon_set.html">Gentleface</a>(304个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-gentleface.png" alt="" title="set-gentleface" width="600" height="300" ></p>
<h4> <a href="http://eddit.com/shop/iphone_ui_icon_set/">Eddit iPhone UI</a>(160个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-edditiphoneui.png" alt="" title="set-edditiphoneui" width="600" height="300" ></p>
<h4> <a href="http://www.iconeden.com/icon/simplicity.html">Simplicity</a>(205个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-simplicity.png" alt="" title="set-simplicity" width="600" height="300" ></p>
<h4> <a href="http://www.picasicons.com/">Picas</a>(250个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-picas.png" alt="" title="set-picas" width="600" height="300" ></p>
<h4> <a href="http://cleanicons.com/">CleanIcons</a>(55个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-cleanicons.png" alt="" title="set-cleanicons" width="600" height="300" ></p>
<h4> <a href="http://helveticons.ch/">Helveticons</a>(600+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-helveticons.png" alt="" title="set-helveticons" width="600" height="300" ></p>
<h4> <a href="http://uicons.co/#/originals">UIcons</a>(362个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-uicons.png" alt="" title="set-uicons" width="600" height="300" ></p>
<h4> <a href="http://keyamoon.com/icomoon/#toHome">IcoMoon</a>(500+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-icomoon.png" alt="" title="set-icomoon" width="600" height="300" ></p>
<h4> <a href="http://pictos.cc/">Pictos</a>(600+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-pictos.png" alt="" title="set-pictos" width="600" height="300" ></p>
<h4> <a href="http://iconsweets2.com/">iconSweets 2</a>(1000+个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-iconSweets2.png" alt="" title="set-iconSweets2" width="600" height="300" ></p>
<h4> <a href="http://tipogram.com/">Tipogram</a>(90个)</h4>
<p><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-tipogram.png" alt="" title="set-tipogram" width="600" height="300" ></p>
<h4><a href="http://new.myfonts.com/fonts/upir-typo/gui-design-icons/">GUI Design Icons</a>(30个)</h4>
<p><a href="http://new.myfonts.com/fonts/upir-typo/gui-design-icons/"><img src="http://img.qianduan.net/uploads/2012/04/font-icon/set-gui-font.jpg" alt="GUI Design Icons @fontface font" width"640"></a></p>
<h3>其它工具</h3>
<ul>
<li><a href="http://nodeca.github.com/fontomas/">Fontomas</a>提供一些免费的字体，并且允许你挑选你需要的图标然后生成你自定义的字体文件，不过生成的文件是svg的，你需要将其转化为其它格式的；</li>
<li><a href="https://github.com/averyvery/hieroglyph">Hieroglyph</a> &#8211; 类似fontomas，从一系列的svg字体文件生成一个字体文件；</li>
</ul>
<p>是不是你也想要试一把了啊，如果你在项目中有使用icon font，欢迎与我们分享经验。</p>
<p>整理自：</p>
<ul>
<li><a href="http://css-tricks.com/flat-icons-icon-fonts/">Flat Icons &#038; Icon Fonts</a></li>
<li><a href="http://speckyboy.com/2012/02/13/20-fontface-icon-sets/">20 @fontface Icon Sets</a></li>
<li><a href="http://www.webresourcesdepot.com/free-icon-fonts-pictograms-for-todays-web-designer/">Free Icon Fonts (Pictograms) For Today&#8217;s Web Designer</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/OXsl_Ov_2rs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/icon-font-large-collecting.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>主流浏览器版本发布历史</title>
		<link>http://www.qianduan.net/release-history-major-browsers.html</link>
		<comments>http://www.qianduan.net/release-history-major-browsers.html#comments</comments>
		<pubDate>Mon, 12 Mar 2012 16:27:33 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[Front News]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13036</guid>
		<description><![CDATA[我想，列出当前主流浏览器的版本发布历史是一件挺有趣的事情... ]]></description>
			<content:encoded><![CDATA[<div>
	译自：<a href="http://www.impressivewebs.com/release-history-major-browsers/">Release Histories for all Major Browsers</a><br />
	中文：<a href="http:/www.qianduan.net/release-history-major-browsers.html">主流浏览器版本发布历史</a><br />
	请尊重版权，转载请注明来源！多谢～～</p>
<hr />
</div>
<p>我想，列出当前主流浏览器的版本发布历史是一件挺有趣的事情。</p>
<p><span id="more-13036"></span></p>
<p>我相信最终会废除浏览器的版本号的两个因素是：快速发布版本和自动更新——无论哪个，如果我没搞错的话，都是Google Chrome的发明。</p>
<p>每个列表中都有一个橙色行表示间隔最久的一个版本</p>
<h2>Internet Explorer 版本发布历史</h2>
<p><img src="http://img.qianduan.net/uploads/2012/03/ie-logo.jpg" alt="Internet Explorer" title="Internet Explorer" width="250" height="230"></p>
<table summary="Internet Explorer 版本发布历史" style="width:300px">
<tbody>
<tr>
<th>版本#</th>
<th>发布时间</th>
</tr>
<tr>
<td>1</td>
<td>8月 16, 1995</td>
</tr>
<tr>
<td>2</td>
<td>11月 22, 1995</td>
</tr>
<tr>
<td>3</td>
<td>8月 13, 1996</td>
</tr>
<tr>
<td>4</td>
<td>10月, 1997</td>
</tr>
<tr>
<td>5</td>
<td>3月 18, 1999</td>
</tr>
<tr>
<td>5.5</td>
<td>7月 8, 2000</td>
</tr>
<tr>
<td>6</td>
<td>8月 27, 2001</td>
</tr>
<tr>
<td style="background-color:orange">7</td>
<td style="background-color:orange">10月 18, 2006</td>
</tr>
<tr>
<td>8</td>
<td>3月 19, 2009</td>
</tr>
<tr>
<td>9</td>
<td>3月 14, 2011</td>
</tr>
</tbody>
</table>
<h4>趣事</h4>
<ul class+"body_list"="">
<li>可能就是在IE6到IE7中间的5年中，很多网站开发者对微软失望了；他们等了太久，以至于Firefox很快以创新占了上风。</li>
<li>IE6在911时间前15天发布，我悲伤猜测，改变世界的灾难会同时降临。。。</li>
</ul>
<h2>Firefox 版本发布历史</h2>
<p><img src="http://img.qianduan.net/uploads/2012/03/firefox-logo.jpg" alt="Firefox" title="Firefox" width="244" height="252"></p>
<table summary="Firefox 版本发布历史" style="width:300px">
<tbody>
<tr>
<th>版本#</th>
<th>发布时间</th>
</tr>
<tr>
<td>1</td>
<td>11月 9, 2004</td>
</tr>
<tr>
<td>1.5</td>
<td>11月 29, 2005</td>
</tr>
<tr>
<td>2</td>
<td>10月 24, 2006</td>
</tr>
<tr>
<td style="background-color:orange">3</td>
<td style="background-color:orange">6月 17, 2008</td>
</tr>
<tr>
<td>3.5</td>
<td>6月 30, 2009</td>
</tr>
<tr>
<td>3.6</td>
<td>1月 21, 2010</td>
</tr>
<tr>
<td>4</td>
<td>3月 22, 2011</td>
</tr>
<tr>
<td>5</td>
<td>6月 21, 2011</td>
</tr>
<tr>
<td>6</td>
<td>8月 16, 2011</td>
</tr>
<tr>
<td>7</td>
<td>9月 27, 2011</td>
</tr>
<tr>
<td>8</td>
<td>11月 8, 2011</td>
</tr>
<tr>
<td>9</td>
<td>12月 20, 2011</td>
</tr>
<tr>
<td>10</td>
<td>1月 31, 2012</td>
</tr>
</tbody>
</table>
<h4>趣事</h4>
<ul>
<li>在早期，Firefox使用过多个名字，从最初的Phoenix、然后是Firebird、最终才是Firefox</li>
<li>记不起确切的时间，但是好像Web Developer Tools这个插件是在2006年的某个时候发布的</li>
<li>Firebug实在 2006年1月发布的</li>
</ul>
<h2>Chrome 版本发布历史</h2>
<p><img src="http://img.qianduan.net/uploads/2012/03/chrome-logo.jpg" alt="Chrome" title="Chrome" width="234" height="234"></p>
<table summary="Chrome 版本发布历史" style="width:300px">
<tbody>
<tr>
<th>版本#</th>
<th>发布时间</th>
</tr>
<tr>
<td>1</td>
<td>12月 11, 2008</td>
</tr>
<tr>
<td style="background-color:orange">2</td>
<td style="background-color:orange">5月 24, 2009</td>
</tr>
<tr>
<td>3</td>
<td>10月 12, 2009</td>
</tr>
<tr>
<td>4</td>
<td>1月 25, 2010</td>
</tr>
<tr>
<td>5</td>
<td>5月 21, 2010</td>
</tr>
<tr>
<td>6</td>
<td>9月 2, 2010</td>
</tr>
<tr>
<td>7</td>
<td>10月 1, 2010</td>
</tr>
<tr>
<td>8</td>
<td>12月 2, 2010</td>
</tr>
<tr>
<td>9</td>
<td>2月 3, 2011</td>
</tr>
<tr>
<td>10</td>
<td>3月 8, 2011</td>
</tr>
<tr>
<td>11</td>
<td>4月 27, 2011</td>
</tr>
<tr>
<td>12</td>
<td>6月 7, 2011</td>
</tr>
<tr>
<td>13</td>
<td>8月 2, 2011</td>
</tr>
<tr>
<td>14</td>
<td>9月 16, 2011</td>
</tr>
<tr>
<td>15</td>
<td>10月 25, 2011</td>
</tr>
<tr>
<td>16</td>
<td>12月 13, 2011</td>
</tr>
<tr>
<td>17</td>
<td>2月 8, 2012</td>
</tr>
</tbody>
</table>
<h4>趣事</h4>
<ul>
<li>上面的版本只是代表各主要版本号的整数；较小的版本发布(Chrome经常干这事儿)并没有列出</li>
<li>Chrome的第一个beta版本号是 0.2</li>
</ul>
<h2>Safari 版本发布历史</h2>
<p><img src="http://img.qianduan.net/uploads/2012/03/safari-logo.jpg" alt="Safari" title="Safari" width="230" height="253"></p>
<table summary="Safari 版本发布历史" style="width:300px">
<tbody>
<tr>
<th>版本#</th>
<th>发布时间</th>
</tr>
<tr>
<td>1</td>
<td>6月 23, 2003</td>
</tr>
<tr>
<td>2</td>
<td>4月 29, 2005</td>
</tr>
<tr>
<td style="background-color:orange">3</td>
<td style="background-color:orange">6月 11, 2007</td>
</tr>
<tr>
<td>3.1</td>
<td>3月 18, 2008</td>
</tr>
<tr>
<td>4</td>
<td>2月 24, 2009</td>
</tr>
<tr>
<td>5</td>
<td>6月 7, 2010</td>
</tr>
<tr>
<td>5.1</td>
<td>7月 20, 2011</td>
</tr>
</tbody>
</table>
<h4>趣事</h4>
<ul>
<li>Apple实际上和Safari 5同时发布了 Safari 4.1(上面未列出)</li>
<li>在Safari 5-5.1发布间隔的13个月中，在对HTML5和CSS3特性的支持上被Chrome (同样使用webkit内核但是快速发布版本)超越了。</li>
</ul>
<h2>Opera 版本发布历史</h2>
<p><img src="http://img.qianduan.net/uploads/2012/03/opera-logo.jpg" alt="Opera" title="Opera" width="220" height="239"></p>
<table summary="Opera 版本发布历史" style="width:300px">
<tbody>
<tr>
<th>版本#</th>
<th>发布时间</th>
</tr>
<tr>
<td>2</td>
<td>7月(?), 1996</td>
</tr>
<tr>
<td>3</td>
<td>12月 31, 1997</td>
</tr>
<tr>
<td style="background-color:orange">4</td>
<td style="background-color:orange">6月 28, 2000</td>
</tr>
<tr>
<td>5</td>
<td>12月 6, 2000</td>
</tr>
<tr>
<td>6</td>
<td>11月 29, 2001</td>
</tr>
<tr>
<td>7</td>
<td>1月 28, 2003</td>
</tr>
<tr>
<td>8</td>
<td>4月 19, 2005</td>
</tr>
<tr>
<td>9</td>
<td>6月 20, 2006</td>
</tr>
<tr>
<td>9.5</td>
<td>6月 12, 2008</td>
</tr>
<tr>
<td>10</td>
<td>9月 1, 2009</td>
</tr>
<tr>
<td>11</td>
<td>12月 16, 2010</td>
</tr>
<tr>
<td>11.1</td>
<td>12月 16, 2010</td>
</tr>
<tr>
<td>11.5</td>
<td>6月 28, 2011</td>
</tr>
</tbody>
</table>
<h4>趣事</h4>
<ul>
<li>在Opera 2之前，Opera并没有公开发行版</li>
<li>在研究这个历史之前，我并不知道Opera已经存在这么久了。它们其实有多次机会提升市场份额，但是貌似他们的版本发布间隔对此不利。</li>
</ul>
<h2>结语</h2>
<p>所有数据来自于每个浏览器各自的wikipedia条目，以及一些相关的文章。</p>
<p>我认为，Chrome的发布周期和方法是最好的。浏览器应该在后台自动更新，并且经常更新版本。</p>
<p>在我(原作者)看来，IE、Safari以及Opera份额变少的原因是它们在版本之间有比较大的间隔——以至于让Chrome转了空子？</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/bKhFm-fEvDI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/release-history-major-browsers.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CSS3 icon font完全指南</title>
		<link>http://www.qianduan.net/css3-icon-font-guide.html</link>
		<comments>http://www.qianduan.net/css3-icon-font-guide.html#comments</comments>
		<pubDate>Mon, 12 Mar 2012 07:34:27 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[font-face]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13021</guid>
		<description><![CDATA[大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face)，包括IE6都支持，只是各自对字体文件格式的支持不太一样。那么对于网站中用到的各种icon，我们就可以尝试使用font来实现，本文... ]]></description>
			<content:encoded><![CDATA[<p>大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face)，包括IE6都支持，只是各自对字体文件格式的支持不太一样。那么对于网站中用到的各种icon，我们就可以尝试使用font来实现，本文将详细讲解这种用法。<br />
<span id="more-13021"></span></p>
<h2>为什么要将icon做成字体？</h2>
<p>在很多网站项目中，我们常常会用到各种<strong>透明</strong>小图标，然后网站要兼容各个浏览器，也可能会有多个尺寸，甚至还要考虑换肤等需求。那么我们就要将这些小图标输出为多种尺寸、颜色和文件格式，比如png8 alpha透明或者png8 index透明等。</p>
<p>比如，twitter用到的各种小icon：</p>
<p><img class="alignnone size-full wp-image-13022" title="twitter" src="http://www.qianduan.net/wp-content/uploads/2012/03/twitter.jpg" alt="" width="345" height="69" /></p>
<p>这种情况下，使用字体来实现图标就有很多优势：</p>
<ul>
<li>字体文件小，一般20-50kb；</li>
<li>容易编辑和维护，尺寸和颜色可以用css来控制；</li>
<li>透明完全兼容IE6；</li>
</ul>
<h2>如何将icon变成字体？</h2>
<p>最关键的是要将设计稿中的icon(要有矢量路径，位图没法转化)完美还原成字体，这并不是很麻烦。</p>
<p>我们要用到一些字体编辑软件，比如FontCreator、FontLab等，这里我们用FontLab来演示。</p>
<p>还原步骤很简单：</p>
<p>PSD&#8211;&gt;eps&#8211;&gt;FontLab，即将PSD转换为illustrator的eps格式，然后将某个字符复制到FontLab中即可。</p>
<h3>具体步骤：</h3>
<p>打开设计稿psd，将其保存为Photoshop eps格式，我们这里以Qzone中说说发表框的表情icon为例：</p>
<p><img class="alignnone size-full wp-image-13023" title="font1" src="http://www.qianduan.net/wp-content/uploads/2012/03/font1.jpg" alt="" width="360" height="300" /></p>
<p>在illustrator中打开保存的eps文件：</p>
<p><img class="alignnone size-full wp-image-13024" title="font_eps" src="http://www.qianduan.net/wp-content/uploads/2012/03/font_eps.jpg" alt="" width="360" height="300" /></p>
<p>取消分组，然后点选某个icon，复制。</p>
<p>打开FontLab，随便打开一款字体文件，比如tahoma.ttf：</p>
<p><img class="alignnone size-full wp-image-13025" title="fontlab" src="http://www.qianduan.net/wp-content/uploads/2012/03/fontlab.jpg" alt="" width="360" height="300" /></p>
<p>然后双击某个字符，将原有图形删除，粘贴刚才复制的icon对象：</p>
<p><img class="alignnone size-full wp-image-13026" title="font_fontlab" src="http://www.qianduan.net/wp-content/uploads/2012/03/font_fontlab.jpg" alt="" width="360" height="300" /></p>
<p>调整图形大小，一个icon就完成还原了。</p>
<p>就是这么简单。所有icon还原完之后，生成字体文件就可以了。</p>
<p>查看字体对应字符，可以在字体列表中，在某个字体上右键查看属性(快捷键Alt+Enter)，查看该字体对应的字符：</p>
<p><img class="alignnone size-full wp-image-13027" title="font_charactar" src="http://www.qianduan.net/wp-content/uploads/2012/03/font_charactar.jpg" alt="" width="360" height="300" /></p>
<p>可以看到字体对应的字符是i，unicode编码是0069。</p>
<h2>字体格式的浏览器支持：</h2>
<p>目前，各个浏览器对字体格式的支持是最大的区别：</p>
<ul>
<li>
webkit/safari：支持TrueType/OpenType(.ttf)，OpenType PS(.otf)，iOS4.2+支持.ttf，iOS 4.2以下只支持SVG字体；
</li>
<li>
Chrome：除webkit支持的以外，从Chrome 6开始，开始支持woff格式；
</li>
<li>
Firefox：支持.ttf和.otf，从Firefox 3.6开始支持woff格式；
</li>
<li>
Opera：支持.ttf、.otf、.svg。<del datetime="2012-04-06T07:25:13+00:00">尚不支持woff</del> Opera 11开始支持WOFF(多谢Apostle提醒~~)；
</li>
<li>
IE：只支持eot格式，IE9开始支持woff。
</li>
</ul>
<p>注：以上资料来自于：<a href="http://webfonts.info/wiki/index.php?title=@font-face_browser_support">webfonts.info</a></p>
<p>注：woff是最新的web开放字体格式(web open font format)，w3c推荐，主要优势是针对浏览器进行优化，字体文件小。详情可查看<a title="Web开放字型格式" href="http://zh.wikipedia.org/wiki/WOFF" target="_blank">wiki</a>：</p>
<h2>在CSS中使用icon字体：</h2>
<p>先使用font-face声明字体：</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;">@font-face {</span>
    <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'emotion'</span><span style="color: #00AA00;">;</span>
    src<span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'emotion.eot'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE9*/</span>
    src<span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'emotion.eot?#iefix'</span><span style="color: #00AA00;">&#41;</span> format<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'embedded-opentype'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> <span style="color: #808080; font-style: italic;">/* IE6-IE8 */</span>
         <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'emotion.woff'</span><span style="color: #00AA00;">&#41;</span> format<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'woff'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> <span style="color: #808080; font-style: italic;">/* chrome、firefox */</span>
         <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'emotion.ttf'</span><span style="color: #00AA00;">&#41;</span>  format<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'truetype'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> <span style="color: #808080; font-style: italic;">/* chrome、firefox、opera、Safari, Android, iOS 4.2+*/</span>
         <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'emotion.svg#svgFontName'</span><span style="color: #00AA00;">&#41;</span> format<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'svg'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*  iOS 4.1- */</span>
    <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>然后，在icon元素上使用该字体就好了：</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: #993333;">icon</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;emotion&quot;</span> Tahoma<span style="color: #00AA00;">;</span>
...
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>最后，在页面中使用这个字体：</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;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;icon&quot;</span>&gt;</span>i<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></pre></div></div>

<p>支持CSS3的浏览器可以更上流一点儿，我们每次修改html可能没那么方便，如果要改变某个icon，则可能需要修改相关字符，比如将i修改为e等。如果使用css3的伪元素，可以方便很多：</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
14
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.<span style="color: #993333;">icon</span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span>inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">16px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">16px</span><span style="color: #00AA00;">;</span><span style="color: #808080; font-style: italic;">/*占个位**/</span>
...
<span style="color: #00AA00;">&#125;</span>
.<span style="color: #993333;">icon</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">,</span>.<span style="color: #993333;">icon</span><span style="color: #00AA00;">:</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;emotion&quot;</span> Tahoma<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span>inline-<span style="color: #993333;">block</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;i&quot;</span><span style="color: #00AA00;">;</span><span style="color: #808080; font-style: italic;">/*在这里调用字符*/</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">16px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">16px</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;">-16px</span><span style="color: #00AA00;">;</span><span style="color: #808080; font-style: italic;">/*position:absolute什么的也可以，看具体情况*/</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>嗯，就是用实际元素占位，用伪元素+content属性显示icon，然后覆盖到实际元素上面，之后我们修改某个icon只需要更改css样式就可以了。</p>
<h4>IE依然棘手：</h4>
<p>因为IE9以前只支持eot格式，所以需要将ttf转换为eot先，这里可以使用微软官方的WEFT软件，也可以使用一些在线工具：</p>
<ul>
<li><a href="http://www.kirsle.net/wizards/ttf2eot.cgi">http://www.kirsle.net/wizards/ttf2eot.cgi</a> 在线转ttf为eot格式；</li>
<li><a href="http://www.fontsquirrel.com/fontface/generator">http://www.fontsquirrel.com/fontface/generator</a>强大的在线转ttf为eot、woff等字体格式</li>
</ul>
<p>另外，eot文件必须添加域名白名单才可以使用，这里推荐使用CreateMyEOT：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2012/03/createmyeot.jpg" alt="" title="createmyeot" width="457" height="389" class="alignnone size-full wp-image-13029" /></p>
<h2>总结：</h2>
<p>其实，这种方法有一个不足，就是<strong>只支持纯色icon</strong>，最多能高端浏览器上实现渐变色或图形蒙板。</p>
<p>当然，我们有很多场景是用纯色icon，特别是在Windows 8这种Metro UI开始越来越多的时候。</p>
<p>另外，这种方法可以有效减少页面的请求，但是对于习惯使用<a href="http://www.99css.com/archives/542">CSSGaGa</a>的auto sprite功能的同学来说，这种方法对页面性能的提升不大。</p>
<p>但是对于移动终端，特别是webapp中，这种方法还是有很大的用武之地的，可以很方便的兼容多分辨率，配合离线存储效果更佳。</p>
<p>如果你有这方面更好的建议和意见，欢迎提出。</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/lO6wn06gTD4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css3-icon-font-guide.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>【招聘】腾讯无线招聘前端开发工程师</title>
		<link>http://www.qianduan.net/recruitment-tencent-wireless-recruitment-front-end-development-engineer.html</link>
		<comments>http://www.qianduan.net/recruitment-tencent-wireless-recruitment-front-end-development-engineer.html#comments</comments>
		<pubDate>Fri, 09 Mar 2012 10:56:29 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[ShowCase]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=13016</guid>
		<description><![CDATA[腾讯无线招聘前端开发工程师，主要负责腾讯无线业务的web及mobile/wap的前端开发。如果你热爱面向移动终端的前端开发工作，欢迎前来应聘，机会难得，各种挑战等着你～... ]]></description>
			<content:encoded><![CDATA[<p>腾讯无线招聘前端开发工程师，主要负责腾讯无线业务的web及mobile/wap的前端开发。如果你热爱面向移动终端的前端开发工作，欢迎前来应聘，机会难得，各种挑战等着你～～</p>
<p><span id="more-13016"></span>岗位要求：</p>
<ul>
<li>计算机专业或相关专业大学本科以上学历，2年以上工作经验。</li>
<li>精通web标准的网站构建，有成功案例，精通html、css，熟悉xml。</li>
<li>精通图像处理软件与网页编辑软件。</li>
<li>熟悉HTML5和CSS3以及移动终端特性。</li>
<li>熟悉Javascript及主流js库，有前台开发经验者优先考虑。</li>
<li>对业界最新的前端技术和实现有浓厚的兴趣及深入的见解。</li>
<li>逻辑分析能力强，善于沟通，较强的学习能力。</li>
</ul>
<p>相信自己，相信移动互联网的未来，请发送简历至：Bryan#vip.qq.com 或加 QQ：44331660～～</p>
<img src="http://feeds.feedburner.com/~r/qianduannet/~4/3jIVaBxlZdg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/recruitment-tencent-wireless-recruitment-front-end-development-engineer.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

