<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[css探索之旅]]></title>
<link>http://blog.doyoe.com/</link>
<description><![CDATA[飘零雾雨的庄园]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[dooyoe@gmail.com(飘零雾雨)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>css探索之旅</title>
	<url>http://blog.doyoe.com/images/logos.gif</url>
	<link>http://blog.doyoe.com/</link>
	<description>css探索之旅</description>
</image>

			<item>
			<link>http://blog.doyoe.com/article.asp?id=239</link>
			<title><![CDATA[CSS参考手册问题收集]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Sun,22 May 2011 11:41:11 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=239</guid>
		<description><![CDATA[<p>　　在线地址：<a href="http://css.doyoe.com/" target="_blank">web前端开发参考手册系列之CSS参考手册</a></p>
<p>　　chm版下载：<a target="_blank" href="http://css.doyoe.com/css.chm"><strong>CSS参考手册v1.2.2</strong></a></p>
<p>　　1. 有部分童鞋反应，下载了chm的CSS参考手册后，出现网页打不开的情况，如下图：</p>
<p><img alt="" src="http://blog.doyoe.com/attachments/month_1105/x2011522114617.jpg" /></p>
<p>解决方法（下图示）：</p>
<p><img alt="" src="http://blog.doyoe.com/attachments/month_1105/t2011522114644.jpg" /></p>
<p>在 css.chm文件名上邮件，选&ldquo;属性&rdquo;，然后在上图中的&ldquo;安全&rdquo;一项点击&ldquo;解除锁定&rdquo;即可。</p>
<p>　　在线地址：<a href="http://css.doyoe.com/" target="_blank">web前端开发参考手册系列之CSS参考手册</a></p>
<p>　　chm版下载：<a target="_blank" href="http://css.doyoe.com/css.chm"><strong>CSS参考手册v1.2.2</strong></a></p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=238</link>
			<title><![CDATA[CSS参考手册新鲜出炉]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Sat,21 May 2011 22:26:38 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=238</guid>
		<description><![CDATA[<p>　　在线地址：<a target="_blank" href="http://css.doyoe.com/">web前端开发参考手册系列之CSS参考手册</a></p>
<p>　　chm版下载：<a href="http://css.doyoe.com/css.chm" target="_blank"><strong>CSS参考手册v1.2.2</strong></a></p>
<p>　　坚持了近半年，这本全新的CSS参考手册终于面世了。内容涵盖CSS2.1和大部分CSS3。</p>
<p>　　由于个人的精力有限，手册内容难免出现错误和问题，望广大网友不吝斧正。请将您发现的问题提交到<a href="http://www.doyoe.com/suggestion/?sid=css" target="_blank" rel="external" class="external">CSS参考手册问题反馈</a>，用以表达对您的感激，将会在手册内的<strong>鸣谢</strong>页面列出您的名字。</p>
<p>　　同时，您可以随时访问 <a href="http://css.doyoe.com/" target="_blank">CSS参考手册官网</a> 检查并获取更新版本。</p>
<p>　　本手册的部分内容参考了苏沈小雨版的CSS2.0手册及World Wide Web Consortium (W3C)公开的网络文档。</p>
<p>　　衷心感谢所有支持本手册的朋友，正是有了你们，本手册才会越来越完善。</p>
<p>　　列举手册的几个特征：</p>
<ul>
    <li>内容包括CSS2.1和大部分CSS3</li>
    <li>所有手册内容都写有对IE6, IE7, IE8, IE9, Firefox, Chrome, Safari, Opera支持程度</li>
    <li>每个属性及其它相关内容都有可浏览的DEMO示例</li>
    <li>手册的在线版也适当的使用了一些CSS3，感兴趣的朋友据此可以直接体验到CSS3的部分特征</li>
</ul>
<p>　　手册部分内容截图：</p>
<p><img alt="" src="http://blog.doyoe.com/attachments/month_1105/b201152123516.jpg" /></p>
<p>　　如上图为border-image语法</p>
<p><img src="http://blog.doyoe.com/attachments/month_1105/m2011521231031.jpg" alt="" /></p>
<p>　　如上图为对Multiple background的详细说明</p>
<p>　　更多精彩内容尽在手册内，欢迎使用。</p>
<p>　　在线地址：<a target="_blank" href="http://css.doyoe.com/">web前端开发参考手册系列之CSS参考手册</a></p>
<p>　　chm版下载：<a href="http://css.doyoe.com/css.chm" target="_blank"><strong>CSS参考手册v1.2.2</strong></a></p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=237</link>
			<title><![CDATA[Silverlight中Path无法多次使用的解决方案]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[Silverlight]]></category>
			<pubDate>Sat,12 Mar 2011 10:21:56 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=237</guid>
		<description><![CDATA[<p>　　在Silverlight中，多个Path控件在引用相同Style静态资源后，只能显示其中的一个。</p>
<p>　　场景是将Data属性也在Style静态资源中定义，这时候就会产生上述问题。</p>
<p class="tit-quote">如以下定义一个&ldquo;打勾&rdquo;的图标资源：</p>
<pre class="quote"><code>&lt;Style x:Key=&quot;IcoHook&quot; TargetType=&quot;Path&quot;&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Data&quot; value=&quot;这里是Data的Value&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Fill&quot; value=&quot;#ffeeeeee&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Stretch&quot; value=&quot;Fill&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Width&quot; value=&quot;16&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Height&quot; value=&quot;16&quot;/&gt;<br />&lt;/Style&gt;</code></pre>
<p>　　假设我们有以上一段目标类型为Path的Style静态资源，那么如果这时如果有多个Path控件如下面的代码引用这个资源：</p>
<pre class="quote"><code>&lt;Path Style=&quot;{StaticResource </code><code>IcoHook</code><code>}&quot;/&gt;</code></pre>
<p>　　则最终这多个Path只有一个会被显示。</p>
<p>　　解决方案是将Data属性从Style静态资源中删除，并将Data的Value值单独定义为System.String静态资源，然后Path控件同时引用Data和Style这2个静态资源。</p>
<p class="tit-quote">用新方案重新定义这个个&ldquo;打勾&rdquo;的图标：</p>
<pre class="quote"><code>&lt;System.String</code><code> x:Key=&quot;IcoHookData&quot;</code><code>&gt;这里是Data的Value&lt;/System.String&gt;</code>
<code>&lt;Style x:Key=&quot;IcoHook&quot; TargetType=&quot;Path&quot;&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Fill&quot; value=&quot;#ffeeeeee&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Stretch&quot; value=&quot;Fill&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Width&quot; value=&quot;16&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;Setter Property=&quot;Height&quot; value=&quot;16&quot;/&gt;<br />&lt;/Style&gt;</code></pre>
<p class="tit-quote">引用方式：</p>
<pre class="quote"><code>&lt;Path Data=&quot;</code><code>{StaticResource </code><code>IcoHookData</code><code>}</code><code>&quot; Style=&quot;{StaticResource </code><code>IcoHook</code><code>}&quot;/&gt;</code></pre>
<p>　　此时，该&ldquo;打勾&rdquo;图标就能在任意多处使用。</p>
<p>　　Tips: 在Blend里，如果是以第一种方案来引用资源，除了不能多处使用外，还是不可视的，只有运行出来后才能看到，如果是以第二种方案来做，则在Blend里能实现可视。在VS里2种方案都不能被可视，但第二种方案的使用是正常的。</p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=236</link>
			<title><![CDATA[IE6倒计时]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[Other]]></category>
			<pubDate>Sat,05 Mar 2011 16:37:20 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=236</guid>
		<description><![CDATA[<p>　　今天，微软上线了一个<a target="_blank" href="http://www.ie6countdown.com/">IE6 Countdown</a>的网站，鼓励全球用户与IE6说再见。并制作了一幅IE6全球分布图，其中橙色代表使用率超过25%的地区，颜色越淡代表该地区的IE6占有率越小。</p>
<p style="text-align: center">&nbsp;<img alt="" src="http://blog.doyoe.com/attachments/month_1103/220113616514.jpg" /></p>
<p style="text-align: center"><img alt="" src="http://blog.doyoe.com/attachments/month_1103/5201136165151.jpg" /></p>
<p>　　很遗憾，中国仍是使用IE6的主力军，<strong>IE6在中国的用户高达34.5%，占全球IE6使用率12.0%中的5.9%，这也就是说IE6的使用者有一半来自中国</strong>。</p>
<p>　　<strong>从身边开始，影响每一个人，我们不应成为&ldquo;文明&rdquo;进步的绊脚石。升级你的IE6，是时候与IE6 Say Goodbye了。</strong></p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=234</link>
			<title><![CDATA[CSS3 background-size让背景图寸尺大小可控]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Thu,05 Aug 2010 14:19:59 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=234</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a href="http://blog.doyoe.com/" title="css探索之旅-飘零雾雨的庄园">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=234">CSS3 background-size让背景图寸尺大小可控</a></p>
<p>　　<dfn>background-size</dfn>是CSS3提供的一个新特性，它可以让你随心所欲的控制背景图的尺寸大小。先简要的看看<a target="_blank" href="http://demo.doyoe.com/css3/background-size/">background-size的用法</a>。我们知道在CSS2中，背景图的大小在样式中是不可控的，比如要想使得背景图填充满某个区域，你要么重新做帐大点的图，要么就只能让它以平铺的方式来填充。</p>
<p>　　如今background-size让你既可以直接缩放背景图来填充满这个区域，也可以让你先给背景图设置大小，然后以设置好的尺寸去平铺满这个区域。</p>
<p>　　一起来认识认识background-size吧。</p>
<p>　　<strong>background-size的值类型：</strong></p>
<p>　　background-size需要1个或2个值，这些值既可以是像素px，也可以是百分比%或auto，还可以是特定值cover, contain。</p>
<p>　　<strong>background-size的值定义：</strong></p>
<p><strong>　　</strong>background-size可以设置2个值，1个为必填，1个为可选。<br />
<strong>　　</strong>其中第1个值用于指定背景图的width，第2个值用于指定背景图的height，如果只给background-size设置1个值，则第2个值默认为auto（cover和contain特定值除外）。</p>
<p class="quote">div{<br />
&nbsp;&nbsp; background-image:url(test.png);<br />
&nbsp;&nbsp; background-repeat:no-repeat;<br />
&nbsp;&nbsp; background-size:100px;<br />
}</p>
<p>　　等价于：</p>
<p class="quote">div{<br />
&nbsp;&nbsp; background-image:url(test.png);<br />
&nbsp;&nbsp; background-repeat:no-repeat;<br />
&nbsp;&nbsp; background-size:100px auto;<br />
}</p>
<p>　　查看具体DEMO: <a target="_blank" href="http://demo.doyoe.com/css3/background-size/background-size-value.htm">background-size的值定义</a>。当你使用firebug抓取到那个实例节点时，你会发现第二个值被自动加上了并且值为auto。当然，你也可以手动将第2个值设置为auto，然后与该DEMO的实例对比，它们的效果将是相同的。</p>
<p>　　<strong>background-size的特定值：</strong></p>
<ol>
    <li>cover: 保持图像本身的宽高比例，将图片缩放到正好完全覆盖定义背景的区域；</li>
    <li>contain: 保持图像本身的宽高比例，将图片缩放到宽度或高度正好适应定义背景的区域；</li>
</ol>
<p class="tit-quote"><strong>cover值：</strong></p>
<p class="quote">div{<br />
&nbsp;&nbsp; background-image:url(test.png);<br />
&nbsp;&nbsp; background-repeat:no-repeat;<br />
&nbsp;&nbsp; background-size:cover;<br />
}</p>
<p>　　上例，背景图片将覆盖整个div区域。查看具体DEMO: <a target="_blank" href="http://demo.doyoe.com/css3/background-size/background-size-cover.htm">background-size:cover</a>。</p>
<p class="tit-quote"><strong>contain值：</strong></p>
<p class="quote">div{<br />
&nbsp;&nbsp; background-image:url(test.png);<br />
&nbsp;&nbsp; background-repeat:no-repeat;<br />
&nbsp;&nbsp; background-size:contain;<br />
}</p>
<p>　　上例，背景图将缩放到宽度或高度的任意一边与div区域适应。查看具体DEMO: <a target="_blank" href="http://demo.doyoe.com/css3/background-size/background-size-contain.htm">background-size:contain</a>。</p>
<p>&nbsp;　　<strong>background-size</strong><strong>简单的应用示例：</strong></p>
<ol>
    <li><a target="_blank" href="http://demo.doyoe.com/css3/background-size/background-size-adapt.htm">背景图自适应容器大小</a></li>
    <li><a target="_blank" href="http://demo.doyoe.com/css3/background-size/background-size-resize-repeat.htm">设置背景图大小与平铺</a></li>
</ol>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=233</link>
			<title><![CDATA[CSS3 background-image允许你使用多背景图]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Fri,30 Jul 2010 11:15:58 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=233</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a href="http://blog.doyoe.com/" title="css探索之旅-飘零雾雨的庄园">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=233">CSS3 background-image允许你使用多背景图</a></p>
<p>　　如果尚未对CSS3有一定的了解，相信你还会为要给同一个元素设置多个背景图而头痛。于是就衍生出一些使用伪对象来实现的解决方案，如使用<code>:first-letter</code>，<code>:first-line</code>，<code>:befor</code>，<code>:after等；又或是使用多个无意义标记堆叠来实现；又或是其它的什么方法。</code></p>
<p><code>　　</code>当然，方法没有错误，有的只是寻求最适合和最简单的。</p>
<p>　　相信在CSS3 multiple <code>background-image</code>尚未出现之前，亦没有人会说自己的某某方法是最佳的，有的只是满足需求的一些变通方案（即使是在现在这种CSS3尚未被所有浏览器支持的情况下，是否要在项目中使用multiple <code>background-image，也是你必须要考虑的问题)</code>。</p>
<p>　　所谓有需求就会有变化，也许正是基于这样或那样的考虑，background-image终于将多背景图纳入了自己势力的范围之内。</p>
<p>　　有之前使用background-image的经验，多背景图对于你来说，完全是锦上添花，你甚至都不必花更多的时间去了解它，因为多背景图与之前的单一背景图并无大的区别，让我么来看看简单的DEMO吧：<a href="http://demo.doyoe.com/css3/background-image/" target="_blank">css3 multiple background-image多组背景图</a>。</p>
<p>　　<strong>两者的细微区别：</strong></p>
<ul>
    <li>单一背景图语法：background-image:url();</li>
    <li>多重背景图语法：background-image:url(),url(),url()...</li>
</ul>
<p>　　你会发现多背景图只是在单一背景图的基础上，多添加一层背景图，就多设置一个url()，每个url()之间以半角逗号分隔。这种方式应该很常见了，比如说多字体间的间隔，不也正是这样么。</p>
<p>　　<strong>组合与拆分写法：</strong></p>
<p class="tit-quote"><strong>组合：</strong></p>
<p class="quote">.test{<br />
&nbsp;&nbsp;&nbsp; background:url(1.jpg) no-repeat,url(2.jpg) no-repeat 25px 25px,url(3.jpg) no-repeat 50px 50px;<br />
}</p>
<p class="tit-quote"><strong>拆分：</strong></p>
<p class="quote">.test{<br />
&nbsp;&nbsp;&nbsp; background-image:url(1.jpg),url(2.jpg),url(3.jpg);<br />
&nbsp;&nbsp;&nbsp; background-repeat:no-repeat;<br />
&nbsp;&nbsp;&nbsp; background-position:0 0,25px 25px,50px 50px;<br />
}</p>
<p>　　如上组合与拆分这两种写法是等效的，依据实际情况使用适合的写法。拆分写法中的background-repeat:no-repeat之所以可以缩写成这样，是因为该示例代码中的3个背景的平铺方式都为no-repeat。完整代码为： background-repeat:no-repeat,no-repeat,no-repeat;</p>
<p>　　<strong>值得注意的地方：</strong></p>
<p>　　如果设置的多重背景图之间存在着交集（即存在着重叠关系），前面的背景图会覆盖在后面的背景图之上。DEMO请看这里：<a target="_blank" href="http://demo.doyoe.com/css3/background-image/background-image-stack.htm">多背景图之间的层叠关系</a>。</p>
<p>　　如果存在着可比性的话，那么这个情况与元素的z-index正好相反，z-index默认下后者会覆盖前者，当然，其实这2者间不存在可比性，只是都有覆盖的情况，顺带一提。</p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=232</link>
			<title><![CDATA[CSS3 RGBA不是简单的RGB与opacity相加]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Tue,27 Jul 2010 17:15:03 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=232</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a title="css探索之旅-飘零雾雨的庄园" href="http://blog.doyoe.com/">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=232">CSS3 RGBA不是简单的RGB与opacity相加</a></p>
<p>　　&ldquo;有了新盖中盖高钙片，一片顶过去五片，高钙片，水果味，一个片嘣五楼，不费劲儿！&rdquo;</p>
<p>　　这句广告词估计大家都早已烂熟于胸，多年的狂轰乱炸，想记不住也是不可能的。比起新盖中盖高钙片广告词中的神效，CSS3 RGBA之与RGB又或HEX，应该可以对等。</p>
<p>&nbsp;　　为什么要这么说？想想不使用CSS3，我们一直是如何满足&ldquo;背景透明，文字（内容）不透明&rdquo;这种需求的？</p>
<p>　　例如现在有个需求：</p>
<ol>
    <li>有个长300px，高100px的div在body为红色的页面中；</li>
    <li>该div拥有不透明度为50%的黑色背景颜色；</li>
    <li>该div内容不允许出现半透明效果，且文字为白色。</li>
</ol>
<p>　　根据该需求中的3点要求，我们需要得出的效果应如下图：</p>
<p>　　<img src="http://demo.doyoe.com/css3/rgba/artimg/hex-opacity.png" alt="hex-opacity image" /><br />
<strong>　　Figure 1:</strong> 背景透明内容不透明</p>
<p class="tit-quote">根据需求里的已知条件，我们代码如下：</p>
<p class="quote">body{<br />
&nbsp;&nbsp;&nbsp; background:#f00;<br />
}<br />
#opacity{<br />
&nbsp;&nbsp;&nbsp; width:400px;<br />
&nbsp;&nbsp;&nbsp; height:100px;<br />
&nbsp;&nbsp;&nbsp; background-color:#000;<br />
&nbsp;&nbsp;&nbsp; color:#fff;<br />
&nbsp;&nbsp;&nbsp; filter:alpha(opacity=50);&nbsp;&nbsp;&nbsp;&nbsp; /* For IE */<br />
&nbsp;&nbsp;&nbsp; opacity:.5;<br />
}<br />
<br />
&lt;div id=&quot;opacity&quot;&gt;怎样实现背景透明，内容不透明？&lt;/div&gt;</p>
<p>&nbsp;　　运行这段代码后，效果与需求3不符合，内容也随着容器成了半透明的，看DEMO：<a target="_blank" href="http://demo.doyoe.com/css3/rgba/opacity-fail.htm">不成功的背景透明内容不透明效果</a>。其效果如下图：</p>
<p>　　<img src="http://demo.doyoe.com/css3/rgba/artimg/hex-opacity-fail.png" alt="hex-opacity-fail image" /><br />
<strong>　　Figure 2:</strong> 内容也半透明了</p>
<p>　　有经验的前端工程师知道，要达到需求所述的效果，上面的代码需要做些许变动：</p>
<ol>
    <li>如果仅需满足IE，那么在原有的结构上加多一层，并将其设置为position:relative。示例DEMO：<a href="http://demo.doyoe.com/css3/rgba/opacity-only-ie.htm" target="_blank">only ie的背景透明内容不透明效果</a>。</li>
    <li>兼容大部分浏览器的处理方式：这也需要加多一层，不过要与原结构&ldquo;同级&rdquo;。示例DEMO：<a target="_blank" href="http://demo.doyoe.com/css3/rgba/opacity.htm">兼容大部分浏览器的背景透明内容不透明效果</a>。</li>
</ol>
<p>　　以上2中方式，其中only ie的自然是不可取的，因为这是前端工程师的职责所在，我们必须使得大部分用户能得到相同的体验，而不仅仅是某个范围。</p>
<p>　　至于第二种，这是现在比较流行的处理方式。不过这种方式也不是那么完美，这个缺憾表现在：</p>
<ol>
    <li>代码量增加：需加多额外一层无意义标签；与此同时，相应的CSS代码也将增加</li>
    <li>不灵活：由于新增的一层与内容层是并级的，所以新增层的宽高不能动态的随着内容层的中内容的增减而变化。</li>
</ol>
<p>　　这个时候CSS3 RGBA的优势就体现出来了，从字面看，RGBA = RGB + alpha。但事实上RGBA并不是简单的RGB与alpha的相加。请看例子<a href="http://demo.doyoe.com/css3/rgba/">CSS3 RGBA color详解</a>中几种颜色类型的对比。</p>
<p>　　我们知道opacity（IE下用filter:alpha(opacity=??)）是让整个元素渲染成半透明的效果，而不能单独指定是否只有颜色为半透明。我想这也许正是RGBA和HSLA这种类型颜色的出现原因。</p>
<p>　　RGBA的语法非常简单，如果你熟悉RGB颜色话。</p>
<p>　　<strong>rgba(0-255,0-255,0-255,0-1)</strong> 这就是RGBA的语法，前三个参数为色调，取值可在0-255之间，第四个参数则为alpha，取值为0-1之间。</p>
<p class="tit-quote">以上面的需求第2点为例，用RGBA可以这样表示</p>
<p class="quote">background-color:rgba(0,0,0,.5);</p>
<p>　　这样就只有背景色为半透明，其它的俱不受影响。最大的问题被轻松搞定，那整个需求即变得异常简单起来，迟疑什么？立即看看用CSS3 RGBA实现的<a target="_blank" href="http://demo.doyoe.com/css3/rgba/rgba.htm">背景透明内容不透明效果</a>DEMO吧。而之前在第二种实现方案中所提及的2个缺憾，在RGBA的实现方案中，似乎根本不存在。</p>
<p>　　DEMO看完后，相信你也能体会到RGBA这种颜色类型的强大力量。CSS3离你还远吗？</p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=231</link>
			<title><![CDATA[CSS3 box-shadow阴影之美]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Sun,25 Jul 2010 14:47:49 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=231</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a title="css探索之旅-飘零雾雨的庄园" href="http://blog.doyoe.com/">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=231">CSS3 box-shadow阴影之美</a></p>
<p>　　与圆角border-radius属性一样，盒阴影box-shadow也是一个令人激动的属性。</p>
<p>　　W3C将<a rel="external" href="http://www.w3.org/TR/css3-background/#box-shadow" target="_blank"><strong>box-shadow</strong></a>加入CSS3属性列表，并使其标准化，应该是件值得高兴的事。也许，从此你再也不会因为&ldquo;实现代价&rdquo;而与设计师争得脸红。</p>
<p>　　那么，box-shadow究竟是如何被人们所称道的？</p>
<p>　　如果你是前端工程师，你可能有过这些痛苦的经历：</p>
<ol>
    <li>面对到处都是圆角的设计稿；</li>
    <li>面对到处都是圆角+阴影的设计稿；</li>
    <li>面对到处都是圆角+阴影+半透明的设计稿。</li>
</ol>
<p>　　如果你还没有接触过CSS3，或者你所负责的这个项目，必须兼容IE系列。那么，无论是面对上面的哪一点，都可以耗费你不少的精力和时间。</p>
<p>　　这里，我们搁下IE不谈，只谈谈box-shadow。</p>
<p>　　<strong>box-shadow</strong><strong>属性至多有6个参数可以设置：</strong></p>
<ol>
    <li>阴影水平偏移量：如果该参数为正值，则阴影在box的右边；如果该参数为负，则阴影在box的左边</li>
    <li>阴影垂直偏移量：如果该参数为正值，则阴影在box的底部；反之，则在box顶部</li>
    <li>阴影模糊距离（大小）：此参数可选，只能是正值。如果该参数值为0，则阴影的边缘犀利；该值越大，阴影的边缘越模糊</li>
    <li>阴影扩展距离：此参数可选。如果该参数为正，则整个阴影都延展扩大；反之，则缩小。</li>
    <li>阴影颜色：此参数可选。如果不写，则会选取默认颜色。至于默认颜色会是什么，不清楚（在webkit核心下为无色，即透明），建议不要省略该值。</li>
    <li>阴影类型：此参数可选。有唯一值&lsquo;inset&rsquo;，如果存在该值，那么阴影将为内阴影；如果不写该值，则为缺省的外阴影。</li>
</ol>
<p>　　<strong>box-shadow的特征：</strong></p>
<ol>
    <li>通过对阴影偏移量的设置，可以使得阴影出现在&ldquo;上、右、下、左&rdquo;任一方向；</li>
    <li>阴影大小、边缘模糊、颜色可自定义；</li>
    <li>可设置内阴影及外阴影；</li>
    <li><strong>可设置&ldquo;多组&rdquo;阴影。</strong></li>
</ol>
<p>　　<strong>box-shadow实例：</strong></p>
<p>　　来实现一个最基本的阴影的效果，如下图：</p>
<p>　　<img src="http://demo.doyoe.com/css3/box-shadow/artimg/box-shadow-simple.png" alt="simple image of box-shadow" /><br />
<strong>　　Figure 1:</strong> 基本阴影效果</p>
<p>　　就是这样的一个具有最简单阴影的效果，如果不用box-shadow做，那么要实现的话，也必要再多堆叠一层无实质意义的标签。</p>
<p class="tit-quote">再来看看box-shadow的代码实现：</p>
<pre class="quote"><code>box-shadow:5px 5px #888;background:#eee;</code></pre>
<p>　　该实例的DEMO展示：<a href="http://demo.doyoe.com/css3/box-shadow/box-shadow-simple.htm" target="_blank">simple box-shadow</a>。同时，可以通过对偏移量数值的更改以查看其它的效果，实现<strong>特征1</strong>所述效果。</p>
<p class="tit-quote">如果，你想要得到一个内阴影的效果，只需在上诉代码中加上一个'inset'即可：</p>
<pre class="quote"><code>box-shadow:5px 5px #888 inset;background:#eee;</code></pre>
<p>　　经此一改，效果立即变成：</p>
<p>　　<img src="http://demo.doyoe.com/css3/box-shadow/artimg/box-shadow-inset.png" alt="simple image of box-shadow" /><br />
<strong>　　Figure 2:</strong> 内阴影效果</p>
<p>　　至于阴影出现的方向，仍然可以通过对偏移量的更改来控制，看看DEMO：<a target="_blank" href="http://demo.doyoe.com/css3/box-shadow/box-shadow-inset.htm">内阴影</a></p>
<p>　　通过box-shadow，阴影的实现是如此的方便；而圆角也一如本文开头所说，用border-radius也可轻松搞定。如果你对CSS3中圆角的实现不大了解，请看： <a href="http://blog.doyoe.com/article.asp?id=226">CSS3 border-radius圆角的优雅实现</a>。</p>
<p>　　如此一来，开篇所述的<strong>3大痛苦经历</strong>，前2大已经变得那么微不足道了。如果把半透明阴影也搞定了，那3大痛苦经历似乎也不再那么纠结了。</p>
<p>　　那么半透明阴影有解么？是的，有，而且异常简单。</p>
<p>　　你或许已经听说过RGBA colors与HSLA colors，没听说过也无妨，CSS3为了让半透明的实现更简单，新增了RGBA和HSLA这样的颜色属性。相比于RGB，RGBA多了一个&lsquo;A&rsquo;，而这个A正是alpha（透明度）的缩写。这样的组合要告诉我们的是，CSS3允许你使用一个可以调节透明度的颜色。</p>
<p>　　我们看看半透明阴影与普通阴影的对比DEMO：<a target="_blank" href="http://demo.doyoe.com/css3/box-shadow/box-shadow-alpha.htm">半透明阴影</a>。</p>
<p>　　<strong>一个小应用：</strong></p>
<p>　　曾惊艳于Chrome与Safari的文本框聚焦效果，却也不甚欢喜其实现的繁杂。</p>
<p>　　<img src="http://demo.doyoe.com/css3/box-shadow/artimg/box-shadow-input.png" alt="input of box-shadow" /><br />
<strong>　　Figure 3:</strong> Safari下常态文本框</p>
<p>　　<img src="http://demo.doyoe.com/css3/box-shadow/artimg/box-shadow-input-focus.png" alt="focus input of box-shadow" /><br />
<strong>　　Figure 4:</strong> Safari下获取焦点的文本框</p>
<p>　　如今，对着如<strong>Figure 4</strong>的效果，你可以微笑着说：&ldquo;这个，简单！&rdquo;</p>
<p>　　不信，我们可以一起去看看DEMO：<a target="_blank" href="http://demo.doyoe.com/css3/box-shadow/box-shadow-input.htm">文本框聚焦效果</a>。</p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=230</link>
			<title><![CDATA[CSS3 border-image边框的华彩外衣]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Tue,20 Jul 2010 14:15:27 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=230</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a href="http://blog.doyoe.com/" title="css探索之旅-飘零雾雨的庄园">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=230">CSS3 border-image边框的华彩外衣</a></p>
<p>　　得益于CSS3，现如今边框（border）也颇具可玩性了。它正在慢慢摆脱只能设置纯色，只能是规规矩矩的矩形的约束，穿上一件华彩的外衣。</p>
<p>　　当然，无图无真相，只说不做难以令人信服。那就先上个图吧。</p>
<p>　　<img alt="border-image-autoframe" src="http://demo.doyoe.com/css3/border-image/artimg/border-image-autoframe.png" /><br />
<strong>　　Figure 1:</strong> 自适应大小的边框</p>
<p>　　相信类似<strong>Figure 1</strong>图示的效果，大家都不会陌生。并且，很多人为做类似的效果还颇费了一番功夫。css sprites自是不必多说，肯定是要用到的，为了实现它，同时还要&ldquo;绑架&ldquo;好些个标签。是不是有人要说，我只要一个标签照样可以实现？我想说，若不借力于CSS3，你做不到，因为需求是这个边框会随着内容的大小改变而改变，而并非大小固定。</p>
<p>　　那CSS3真的可以用&rdquo;1个标签&ldquo;实现类似的效果吗？如果能，怎么做呢？</p>
<p>　　答案是肯定的，你且过来看<strong>DEMO 1</strong>：<a href="http://demo.doyoe.com/css3/border-image/"><strong>border-image自适应大小的边框</strong></a>。至于实现方式，请听我慢慢道来：</p>
<p>　　<strong>首先，我们这个华丽的外框，我们还是需要用图片来做的，所以我们提供这样一个图片：</strong></p>
<p>　<img alt="border-image" src="http://demo.doyoe.com/css3/border-image/skin/border-image2.png" /><br />
<strong>　　Figure 2:</strong> 边框图片</p>
<p>　　是的，你没看错，就是<strong>Figure 2</strong>这么一张小图，我们就能实现<strong>Figure 1</strong>的效果，并且可以让它想大就大，想小就小，如有怀疑，你可以在<strong>DEMO 1</strong>里去修改图片的大小试试。</p>
<p>　　<strong>第二，你需要了解CSS3的新特性border-image，因为我们需要借助的就是它。</strong></p>
<p>　　初看到border-image，很多人会马上想起background-image。确实，它们之间有一些类似之处，其中包括对图片的引用及图片排列方式。</p>
<p>　　如同background般，border-image也是多值的，所以可以对它进行<strong>形式上的属性分解</strong>：</p>
<ol>
    <li><dfn id="border-image-source">border-image-source</dfn></li>
    <li><dfn id="border-image-slice">border-image-slice</dfn></li>
    <li><dfn id="border-image-width">border-image-width</dfn></li>
    <li><dfn id="border-image-repeat">border-image-repeat</dfn></li>
</ol>
<p>　　<strong>border-image-source</strong>用来引入图片，格式与background-image一致：</p>
<ol>
    <li>写法：border-image-source:url(image URL)</li>
</ol>
<p>　　<strong>border-image-slice</strong>用来分解引入的图片，将之拆解成9份，形成一个九宫格造型。参见：<a href="http://www.w3.org/TR/css3-background/#border-image-slice" target="_blank">W3C borer-image-slice</a>。</p>
<ol>
    <li>写法：border-image-slice:10 10 10 10；</li>
    <li>方位：跟如margin,padding等属性一样，这4个数值所对应的方位仍然是&ldquo;上、右、下、左&rdquo;；</li>
    <li>处理：如上面的代码其实可缩写成border-image-slice:10 10，或者进一步缩写成border-image-slice:10，这点可以参照margin等属性，其对数值的处理方式是相同的。</li>
    <li>单位：你会发现这4个数值均无单位，其实这些数字已被固定单位为px了，所以不必写上，如果加了单位就错了；当然，也可以用百分比来设置这些数值。</li>
</ol>
<p>　　<strong>border-image-width</strong>用来指定border的width，为边框图片的显示提供地方；</p>
<ol>
    <li>写法：border-image-width:10px 10px 10px 10px；</li>
    <li>处理：数字的处理方式如margin,padding等属性。</li>
</ol>
<p>　　<strong>border-image-repeat</strong>用来指定边框图片的排列方式；</p>
<ol>
    <li>拉伸写法：border-image-repeat:stretch stretch; 参见<strong>DEMO 2: </strong><a href="http://demo.doyoe.com/css3/border-image/border-image-repeat-stretch.htm" target="_blank"><strong>stretch拉伸方式</strong></a></li>
    <li>重复写法：border-image-repeat:repeat repeat; 参见<strong>DEMO3: </strong><a href="http://demo.doyoe.com/css3/border-image/border-image-repeat-repeat.htm" target="_blank"><strong>repeat重复方式</strong></a></li>
    <li>平铺写法：border-image-repeat:round round; 参见<strong>DEMO4:</strong> <a href="http://demo.doyoe.com/css3/border-image/border-image-repeat-round.htm" target="_blank"><strong>round平铺方式</strong></a></li>
    <li>语法：border-image-repeat可以指定2个值，分别表示水平方向和垂直方向；当水平和垂直方向的排列方式相同时，可以将2个值合并写成1个，同时由于该属性的默认值为stretch，所以当水平和垂直方向均为stretch时，可以省略不写；当然2个方向可以使用不同的排列方式，参见<strong>DEMO 5:</strong> <a target="_blank" href="http://demo.doyoe.com/css3/border-image/border-image-repeat.htm"><strong>混合方式</strong></a>。</li>
</ol>
<p>　　上面我们说过，对border-image的属性拆分只是形式上的，用于帮助理解每个参数的意思。实际在应用的时候，是不能拆分的，必须是缩写在一起，如：</p>
<p class="quote">　　border-image:url(xx.png) 10/10px stretch stretch;</p>
<p>　　按本文对border-image-repeat的语法里所说，上面代码其实可以简写成：</p>
<p class="quote">　　border-image:url(xx.png) 10/10px stretch;</p>
<p>　　或者：</p>
<p class="quote">　　border-image:url(xx.png) 10/10px;</p>
<p>　　<strong>第三：了解各浏览器对CSS3的支持程度。</strong>这也是我一直想说的，既然是讲CSS3，大家在看的时候，或者在练习的时候，总不至于还会说：IE下怎么没效果啊，某某浏览器怎么不是这样的啊（我在每个DEMO里都已注明浏览器版本参照基准和支持程度）。同时，这里也不讨论CSS3还要多久可以普及，IE什么时候可以被推到，我们只是去尝尝鲜而已，看看新技术的发展方向。</p>
<p>　　一口气说完&ldquo;第三&rdquo;点这么长的一句话后，忽然想起还有一个地方需要跟大家说说：</p>
<p>　　border-image-width，对，这个是定义边框width的，用来为边框图片的显示提供地方，这点前面已经说了。遗漏没说的是，对于边框width的定义以前还有一个border-width可以做到。在这里也不例外，你可以使用border-wdith代替border-image-width的定义，参见<strong>DEMO 6:</strong> <a href="http://demo.doyoe.com/css3/border-image/border-image-width.htm" target="_blank"><strong>border-image-width之与border-width</strong></a>。如果这样的话，那么上面的代码则可写成：</p>
<p class="quote">　　border-width:10px;<br />
border-image:url(xx.png) 10;</p>
<p>　　<strong>最后：一起写个小例子看看吧</strong></p>
<p>　　弄清楚上面这些后，让我们来做个小东西试试：我们暂且只拿一张简陋的草图来做我们的border-image。写这样一句代码：</p>
<p class="quote">　　border-image:url(xx.png) 5 8 5 10/5px 8px 5px 10px repeat stretch;</p>
<p>　　那么，解析这句代码就会得到：这张&ldquo;草图&rdquo;，实际上会先被分解成如下图般的1，2，3，4，A，B，C，D，E  9个部分。1，2，3，4不参与border-image-repeat(排列方式)；A，B，C，D，E5部分，其中AC为参与水平方向的 border-image-repeat（即代码里的repeat），BD参与垂直方向的border-image-repeat（即代码里的 stretch），E同时参与水平和垂直2种排列方式（即水平方向repeat，垂直方向stretch）。</p>
<p><img alt="border-image" src="http://demo.doyoe.com/css3/border-image/artimg/border-image-slice.png" /><br />
<strong>　　Figure 3:</strong> 边框图分解</p>
<p>　　顺便看看这个小例子的实现吧：<a target="_blank" href="http://demo.doyoe.com/css3/border-image/border-image-slice.htm"><strong>DEMO 7</strong></a></p>
<p>　　了解了这些，还犹豫什么，找一张COOL点的图来代替<strong>Figure 3</strong>，试着为你的border穿起华丽的衣裳吧。</p>]]></description>
		</item>
		
			<item>
			<link>http://blog.doyoe.com/article.asp?id=229</link>
			<title><![CDATA[双线框之CSS3 VS. CSS1]]></title>
			<author>dooyoe@gmail.com(飘零雾雨)</author>
			<category><![CDATA[CSS]]></category>
			<pubDate>Thu,15 Jul 2010 13:51:59 +0800</pubDate>
			<guid>http://blog.doyoe.com/default.asp?id=229</guid>
		<description><![CDATA[<p class="tit-quote">转载请注明出处：<a href="http://blog.doyoe.com/" title="css探索之旅-飘零雾雨的庄园">css探索之旅</a>；本文地址：<a href="http://blog.doyoe.com/article.asp?id=229">双线框之CSS3 VS. CSS1</a></p>
<p>　　初看标题，你可能还反应不过来什么是&ldquo;双线框&rdquo;。没关系，因为这个叫法可能只是我&ldquo;杜撰&rdquo;的，或许它有其它的叫法，不过不必深究。</p>
<p>　　我想，如果有张图来让你看到什么是我所谓的&ldquo;双线框&rdquo;，那么，接下来应该可以让你我的距离拉近一些。</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/normal-double-border.png" alt="normal double border双线框" /><br />
<strong>　　Figure 1:</strong> 常规双线框</p>
<p>　　有了<strong>Figure 1</strong>的图示，估计很多人已想到了实现该图效果的方法。是的，就算没有CSS3，实现这样的效果也是信手拈来。</p>
<p>　　其实，看到double border这样的字眼，应该就会想到，border-style（在CSS1中已实现，故所有现代浏览器均支持）有个double参数值。double所表现出来的效果就是如<strong>Figure 1</strong>般：2条有间隔（你所看到的这个白色间隔并不是1根白色的线条，而是真正的缝隙）的线条。</p>
<p>　　需要说明的是：<strong>border-style的double参数值需要border-width在不小于3px的情况下使用</strong>，2条线条与之间的间隔之和等于border-width的值。</p>
<p class="tit-quote"><strong>我们来看看Figure 1的</strong><strong>border-style</strong><strong>实现（Code 1）：</strong></p>
<pre class="quote"><code>.test{<br />	border:3px double #000;<br />}<br />&lt;div class=&quot;test&quot;&gt;double border&lt;/div&gt;</code></pre>
<p>　　你可以试着将<strong>Code 1</strong>的3px进行修改，会发现，2条线条和间隔，这3者总是自动去对这个值进行分配，所以无法有针对的指定对2条线条和间隔的width。也就是说，你无法实现2条1px的线条夹着1个3px的间隔，也无法实现2条3px的线条夹着1个1px的间隔。</p>
<p>　　当然，上面所说的这点，并不是最纠结的问题。真正影响实际应用的问题在于：</p>
<ol>
    <li>无法为2根线条指定不同的颜色；</li>
    <li>无法单独为这个间隔指定背景色；</li>
    <li>无法只保留外边框而去掉内边框。</li>
</ol>
<p>　　也就是说你可以通过<strong>Code 1</strong>的方法去实现<strong>Figure 1</strong>，并且也能实现如下列的<strong>Figure 2</strong>和<strong>Figure 3</strong>。</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/normal-double-border2.png" alt="normal double border双线框" /><br />
<strong>　　Figure 2:</strong> 带背景色的双线框</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/normal-double-border3.png" alt="normal double border双线框" /><br />
<strong>　　Figure 3:</strong> 背景色不包括border的双线框</p>
<p>　　但却做不到如下列的<strong>Figure 4</strong>，<strong>Figure 5</strong>，<strong>Figure 6</strong>。</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/double-border.png" alt="normal double border双线框" /><br />
<strong>　　Figure 4:</strong> 2条线条颜色不同的双线框</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/double-border2.png" alt="normal double border双线框" /><br />
<strong>　　Figure 5:</strong> 间隔设置了颜色的双线框</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/double-border3.png" alt="normal double border双线框" /><br />
<strong>　　Figure 6:</strong> 去掉了内边框的双线框</p>
<p>　　自然，如<strong>Figure 7</strong>的常见效果就无法做到了。</p>
<p>　　<img src="http://demo.doyoe.com/css3/double-border/artimg/double-border4.png" alt="normal double border双线框" /><br />
<strong>　　Figure 7: </strong>常见双线框效果</p>
<p>　　既然标题是CSS3 VS. CSS1，那么CSS1的实现方法已经有了，我们再看看CSS3的实现方式吧。很简单，我们要用到的正是我之前所写文章&ldquo;<a href="http://blog.doyoe.com/article.asp?id=228">CSS3 border-colors创建惊艳多重边框色</a>&ldquo;中的多重边框色：<strong>border-colors</strong>。</p>
<p>　　也就是说，只需要多每组的颜色进行一些设置，就可以实现border-style方案所纠结的问题。<strong>但这种方法也存在着瓶颈，因为当前并非所有浏览器都对CSS3支持良好</strong>。</p>
<p>　　看看DEMO：<a href="http://demo.doyoe.com/css3/double-border/">css3 double border双线框效果的2种实现方式</a>。你可以在该DEMO内的border-colors方法里修改一些颜色和边框的宽度，就能实现从Figure 1到Figure 6，至于Figure 7，只是背景色由纯色变成了渐变色而已。如果你了解CSS3的gradient属性，这个也很容易实现。如果不了解，就让我们下次再说说gradient吧。</p>]]></description>
		</item>
		
</channel>
</rss>

