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

<channel>
	<title>样式之美</title>
	<atom:link href="http://www.aoao.org.cn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aoao.org.cn</link>
	<description>没落的角落</description>
	<lastBuildDate>Tue, 03 Apr 2012 16:40:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Retina 显示屏下 @2x 图片的模拟</title>
		<link>http://www.aoao.org.cn/blog/2012/04/retina-display-image-2x/</link>
		<comments>http://www.aoao.org.cn/blog/2012/04/retina-display-image-2x/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 06:52:11 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=174</guid>
		<description><![CDATA[前几天在不小心看到传说中Apple在其网站让网页图片支持 Retina Display 的 JS image_replacer.js ，结果认真看了一下，代码中比较好玩的地方是用 ☃ 当“变量”，但核心实现却无比坑爹，居然是图片多做一份@2x 的版本，发现是高分屏，就把图片的地址换下。 =。= 在高分屏下，正常图片一般让人感觉模糊一点，条件允许的情况下，多做份@2x 的图片当然后是效果更好，...]]></description>
			<content:encoded><![CDATA[<p>前几天在不小心看到传说中Apple在其网站让网页图片支持 Retina Display 的 JS <a href="https://gist.github.com/2029936">image_replacer.js</a> ，结果认真看了一下，代码中比较好玩的地方是用 ☃ 当“变量”，但核心实现却无比坑爹，居然是图片多做一份@2x 的版本，发现是高分屏，就把图片的地址换下。 =。=</p>
<p>在高分屏下，正常图片一般让人感觉模糊一点，条件允许的情况下，多做份@2x 的图片当然后是效果更好，并不是所有的图片都方便处理成@2x，有没有@2x的版本还不知道呢，程序如果能自动化处理的话，成本自然低了，不过，我还不知道有啥程序算法可以把已经丢了细节的图片还原回去。</p>
<p>这时我想起了 <a href="http://shawphy.com/2011/08/convolution-matrix-in-canvas.html">在HTML 5 的 Canvas 中应用卷积矩阵对图像处理</a>，我偷拷了他的代码 顺便修改了处理图片边缘跟透明度的部分，做了个<a href="http://labs.aoao.org.cn/demo/image@2x">图片锐化的效果</a>，如果你用电脑看的话，放大一下网页还是勉强可以看出效果，不过没 Retina Display 的设备明显，可以用iPhone 4+ 或者new iPad 试一下，或者看我的截图。<br />
<img class="alignnone size-full wp-image-175" title="用canvas模拟@2x 图片的效果" src="http://www.aoao.org.cn/wp-content/uploads/2012/04/2x.jpg" alt="" width="640" height="960" /></p>
<p>优点</p>
<ul>
<li>大部分图片效果比原来好，不用做@2x 的图片</li>
<li>多终端统一维护，脚本渐进增强</li>
<li>文件小省带宽，3G 时还是有一定的优势 用EDGE的就更不用说了。</li>
</ul>
<p>缺点</p>
<ul>
<li>效果真心没 @2x的好，当然如果有更好的算法也难说</li>
<li>canvas 读图片数据存在跨域问题 （有所谓的解决方案，见后面）</li>
<li>锐化目前的实现，基本就是读点的操作，大图片手机估计吃不消</li>
</ul>
<p>以上方案纯属研究，如要投入生产还要再三考虑。</p>
<p>顺便说下 js可以能过 <code>window.devicePixelRatio</code> 来判断 是否为Retina。</p>
<p><strong>canvas 读取跨域图片数据的解决方案</strong></p>
<p>当年用的iframe 来解决跨域的方案再次改造实现，挖哈哈。在图片所在的域下放一网页用来读图片数据跟通讯，不过这次是改用 <code>postMessage</code> 来传图片数据。</p>
<p>这里有份之前实现的代码 <a href="https://github.com/aoao/Image64">github.com/aoao/Image64</a> ，那时是做图片分析时写的，有兴趣的同学可以看一下。如果有更好的方式也介绍给我，我一直觉得这方式太坑爹了，在电脑上用可能还行，在手机上跑可能比较不适合。</p>
<p>扩展阅读</p>
<ul>
<li><a href="http://shawphy.github.com/share/2011/matrix.html">应用卷积矩阵对图片进行模糊、锐化、浮雕等效果体验</a></li>
<li><a href="http://css3.bradshawenterprises.com/blog/retina-image-replacement-for-new-ipad/">Retina Image Replacement for the New iPad</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2012/04/retina-display-image-2x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>transform:rotate在手机上显示有锯齿的解决方案</title>
		<link>http://www.aoao.org.cn/blog/2012/03/transform-rotate-anti-aliasing/</link>
		<comments>http://www.aoao.org.cn/blog/2012/03/transform-rotate-anti-aliasing/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 13:42:32 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=171</guid>
		<description><![CDATA[transform:rotate 属于简单好用的效果，但在手机上显示时，会有比较明显锯齿。 解决方案也很简单， 利用外层容器的overflow:hidden 加上图片margin:-1px 就可以解决。 原理没去深究，理论上是矢量跟位图的处理不一样，这个方案也有个小问题 就是图片变小了 ^_^ 可以用手机看看demo http://labs.aoao.org.cn/demo/transform-rotate/ update: 大家反应这方案在电脑上反而会出问题。 我测...]]></description>
			<content:encoded><![CDATA[<p>transform:rotate 属于简单好用的效果，但在手机上显示时，会有比较明显锯齿。<br />
<img src="http://www.aoao.org.cn/wp-content/uploads/2012/03/transform-rotate.jpg" alt="" title="transform-rotate" width="640" height="566" class="alignnone size-full wp-image-172" /></p>
<p>解决方案也很简单， 利用外层容器的<code>overflow:hidden</code> 加上图片<code>margin:-1px</code> 就可以解决。 </p>
<p>原理没去深究，理论上是矢量跟位图的处理不一样，这个方案也有个小问题 就是图片变小了 ^_^  可以用手机看看<a href="http://labs.aoao.org.cn/demo/transform-rotate/">demo http://labs.aoao.org.cn/demo/transform-rotate/</a></p>
<p>update:  大家反应这方案在电脑上反而会出问题。</p>
<p>我测试了个新的方案<code>rotate3d</code> + <code>border:1px solid transparent;</code>，问题也算是解决了。</p>
<p>同时发现另一个小问题，缩放的图片使用rotate3d 在非retina 屏下图片会变模糊了点点（属于不对比不发现的），而用rotate就没这问题，这个问题在old iPad 发现。</p>
<p>同时又发现另另一个小问题，iOS 4.x上的 想要平滑，缩放图片哪种都会变模糊了点点（同样属于不对比不发现的），这个问题在old old iPhone 发现的。</p>
<p>当然，本来缩放图片是件不好的事，可是缩放图片在这里是故意的，大家选适合的方案在对应的场景使用吧，原本方案就没想着要在电脑上的浏览器上使用的</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2012/03/transform-rotate-anti-aliasing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>暂停页面资源占用</title>
		<link>http://www.aoao.org.cn/blog/2012/01/pause-page/</link>
		<comments>http://www.aoao.org.cn/blog/2012/01/pause-page/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 16:05:04 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[性能优化]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=169</guid>
		<description><![CDATA[“暂停页面资源占用”其实是个function，javascript也是可以用中文来写滴 function 暂停页面资源占用(){ 幻灯广告2.暂停(); 文字滚动5.暂停(); 啥啥啥动画.暂停(); 定时更新长链接.低迷模式(); } 为什么要这样做呢？ 装厚道，把资源让给别人，有些情况下还可以省自己服务器的资源。 那什么时候调用他呢？ onblur，那怎样变回正常呢？再写一个对应滴。 但是这样看起来...]]></description>
			<content:encoded><![CDATA[<p>“暂停页面资源占用”其实是个function，javascript也是可以用中文来写滴</p>
<pre class="code"><code>function 暂停页面资源占用(){
	幻灯广告2.暂停();
	文字滚动5.暂停();
	啥啥啥动画.暂停();
	定时更新长链接.低迷模式();
}</code></pre>
<p>为什么要这样做呢？ 装厚道，把资源让给别人，有些情况下还可以省自己服务器的资源。</p>
<p>那什么时候调用他呢？ <code>onblur</code>，那怎样变回正常呢？再写一个对应滴。</p>
<p>但是这样看起来不是特别高级，怎样更高级呢？自定义事件 我记得好久好久前写过个task 让那些爱动的元素玩上 <code>onElementShow</code> <code>onElementHide</code> 这样的事件，然后就把上面的 function 分开了，让元素看不到时就可以开始暂停。</p>
<p>其实还不够高级，我们还可以把 元素看不到 、页面 blur、窗口最小化 做进一步细分，不同阶段做不同深度的事。</p>
<p>附窗口最小化检查</p>
<pre class="code"><code>function isMinStatus() {
	var isMin = false;
	if(window.outerWidth != undefined){
		isMin = window.outerWidth <= 160 &#038;&#038; window.outerHeight <= 27;
	}else{
		isMin = window.screenTop < -30000 &#038;&#038; window.screenLeft < -30000;
	}
	return isMin;
} </code></pre>
<p>这代码也不是我发明的。。很久前找到的，忘记出处了。win下基本都能用。mac 研究了发现没啥好办法发现最小化，最后用了个很土的办法，键盘控有效。囧rz</p>
<pre class="code"><code>event.metaKey &#038;&#038; event.keyCode =='77' //&#x2318;command + m</code></pre>
<p>大家有其他好办法没？</p>
<p>update<br />
小光说的Page Visibility <a href="http://www.samdutton.com/pageVisibility/" title="Using the Page Visibility API">测试地址</a> <a href="http://ie.microsoft.com/testdrive/Performance/PageVisibility/Default.html" title="Page Visibility API">M$测试地址</a>，ie10 Chrome ff10+ 都支持， ff在mac支持得比较好，最小化算，但command+h 也不算，不知道为什么，突然在想显示桌面(F11/fn+F11) 要不要算。</p>
<p>相关资料 </p>
<ul>
<li><a href="http://www.w3.org/TR/page-visibility/">w3c:Page Visibility</a></li>
<li> <a href="http://blogs.msdn.com/b/ie/archive/2011/07/08/using-pc-hardware-more-efficiently-in-html5-new-web-performance-apis-part-2.aspx">Using PC Hardware more efficiently in HTML5: New Web Performance APIs</a></li>
</ul>
<p>btw: 这内容是很久很久前写的，那时是想写个前端长篇小说，但后来不知道怎样没了，今天碰巧跟同学聊到这事，我整理整理发出来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2012/01/pause-page/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>带图案的二维码</title>
		<link>http://www.aoao.org.cn/blog/2011/08/qr-code/</link>
		<comments>http://www.aoao.org.cn/blog/2011/08/qr-code/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 14:39:35 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[乱七八糟]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=163</guid>
		<description><![CDATA[那个黑不溜秋的二维码大家都见过吧。最近随着高档手机才稍微有人知道，大家用这个 QR-Code Generator，生成自己想要的信息，比如生成这样： ^_^ 如果你用iPhone 的话。可以用Scan 或 ScanIt 这样的app来解码。其他手机自己想办法。 好了，现在来说明为什么那个二维码有图案，据说二维码的容错非常高，所以，只把图片或者字找个相似的地方放上去就行。。这里有令...]]></description>
			<content:encoded><![CDATA[<p>那个黑不溜秋的二维码大家都见过吧。最近随着高档手机才稍微有人知道，大家用这个 <a href="http://qrcode.kaywa.com/">QR-Code Generator</a>，生成自己想要的信息，比如生成这样：</p>
<p><img src="http://www.aoao.org.cn/wp-content/uploads/2011/08/qr.png" alt="" title="qr" width="186" height="186" class="alignnone size-full wp-image-164" /> ^_^</p>
<p>如果你用iPhone 的话。可以用<a href="http://itunes.apple.com/us/app/scan/id411206394?mt=8">Scan</a> 或 <a href="http://itunes.apple.com/us/app/scanit/id387433941?mt=8">ScanIt</a> 这样的app来解码。其他手机自己想办法。</p>
<p>好了，现在来说明为什么那个二维码有图案，据说二维码的容错非常高，所以，只把图片或者字找个相似的地方放上去就行。。这里有<a href="http://www.36kr.com/15-awesome-qr-codes/">令人拍案叫绝的15个二维码</a>，可以看看，我最喜欢的是这个：</p>
<p><img src="http://www.aoao.org.cn/wp-content/uploads/2011/08/louis.jpg" alt="" title="louis" width="466" height="450" class="alignnone size-full wp-image-167" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2011/08/qr-code/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>判断一个网页是否适合手机浏览</title>
		<link>http://www.aoao.org.cn/blog/2011/07/mobile-accessibility/</link>
		<comments>http://www.aoao.org.cn/blog/2011/07/mobile-accessibility/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 09:19:29 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=159</guid>
		<description><![CDATA[最近在做一个项目，需要知道一个网页是否适合手机浏览，想了点方案。 1.域名: 二、三级域名中包含有m 3g wap mobile 的算是。当然像 mobile也有坑爹的 比如像mobile.qq.com，mobile.yahoo.com 2.网页的DTD: XHTML MP 或 wap &#60;!DOCTYPE html PUBLIC -//WAPFORUM//DTD XHTML Mobile 1.0//EN http://www.wapforum.org/DTD/xhtml-mobile10.dtd&#62; &#60;!DOCTYPE wml PUBLIC -//WAPFORUM//DTD WML 1.1//EN http://www.wapforum.org/DTD/wml_1.dtd...]]></description>
			<content:encoded><![CDATA[<p>最近在做一个项目，需要知道一个网页是否适合手机浏览，想了点方案。</p>
<p>1.域名: 二、三级域名中包含有m 3g wap mobile 的算是。当然像 mobile也有坑爹的 比如像mobile.qq.com，mobile.yahoo.com</p>
<p>2.网页的DTD: XHTML MP 或 wap</p>
<pre class="code"><code>&lt;!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"&gt;</code></pre>
<pre class="code"><code>&lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.dtd"&gt;</code></pre>
<p>但是wap并不一定适合手机浏览，有种破手机叫iPhone。他有个破浏览器叫Safari</p>
<p>3.网页的meta里有viewport 如</p>
<pre class="code"><code>&lt;meta name="viewport" content="width=xxx; ..... "/&gt;</code></pre>
<p>但是，可能只适合某些手机。适合手机访问不代表一定是手机版，某搜索就直接用这个判定为网页是手机版</p>
<p>4.网页标题包含有“手机版” &#8220;触屏版&#8221;</p>
<p>接着另一个问题，<strong>怎样让不适合手机浏览的网页变得适合呢？</strong></p>
<p>5.让spider 装手机去逛，看会不会适配。</p>
<p>6.特定网站集的把topN的人肉找出手机版，找出与pc版匹配的规则，配</p>
<p>7.使用中转服务</p>
<ul>
<li>百度：<a href="http://gate.baidu.com">http://gate.baidu.com</a></li>
<li>Google：<a href="http://www.google.com/gwt/x">http://www.google.com/gwt/x</a></li>
<li>爱问：非官方提供<a href="http://h2w.iask.cn/html2wml?url=http%3A%2F%2Fwww.aoao.org.cn">http://h2w.iask.cn/html2wml?url=http%3A%2F%2Fwww.aoao.org.cn</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2011/07/mobile-accessibility/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone Web App 动态 icon</title>
		<link>http://www.aoao.org.cn/blog/2011/01/iphone-web-app-dynamic-icon/</link>
		<comments>http://www.aoao.org.cn/blog/2011/01/iphone-web-app-dynamic-icon/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 15:11:11 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=151</guid>
		<description><![CDATA[不记得什么时候发现 iPhone 收藏到桌面的网页，在每次打开后会更新apple-touch-icon 的图片，也正是因为这个特性，我们可以用来动态更新icon 看下这个例子 http://aoao.ws/app/testicon/ 这个真的是iPhone Web App哦。不是iOS的，不信用iPad试下。。XD 测试时，发现启动图也可以变更。但是，切记 iPhone 的启动图大小只能是320*460 。为什么不是320*480呢，这是为了让web app启动时，...]]></description>
			<content:encoded><![CDATA[<p>不记得什么时候发现 iPhone 收藏到桌面的网页，在每次打开后会更新apple-touch-icon 的图片，也正是因为这个特性，我们可以用来动态更新icon</p>
<p>看下这个例子 <a href="http://aoao.ws/app/testicon/">http://aoao.ws/app/testicon/</a> 这个真的是iPhone Web App哦。不是iOS的，不信用iPad试下。。XD</p>
<p>测试时，发现启动图也可以变更。但是，切记 iPhone 的启动图大小只能是320*460 。为什么不是320*480呢，这是为了让web app启动时，如果是横屏，能留20px的白边玩的。iPad 的启动图是768*1004，目前的测试发现只支持竖屏，囧rz </p>
<p>然后又想了半天，发现除了日历、天气外，好像没啥啥应用要动态更新icon的样子。</p>
<p>做了个体验性的天气 <a href="http://aoao.ws/app/weather/?w=北京">http://aoao.ws/app/weather/?w=北京</a>。</p>
<p><img src="http://www.aoao.org.cn/wp-content/uploads/2011/01/iphone-weather-icon.png" alt="iphone weather icon" title="iphone-weather-icon" width="120" height="120" class="alignnone size-full wp-image-153" /> <img src="http://qrcode.kaywa.com/img.php?s=5&#038;d=http%3A%2F%2Faoao.ws%2Fapp%2Fweather%2F%3Fw%3D%E5%8C%97%E4%BA%AC" alt="qrcode"  /></p>
<p>写了才发现。。canvas在iOS3.x上真不给力。。<code>fillText</code>可以考虑用<a href="http://jim.studt.net/canvastext/">canvastext</a>不然你的文字不知道飞到哪。不过这个也只能解决英文的问题，中文就别折腾了，真的要做服务的话，可以考虑服务端生成对应的图片。</p>
<p>如果app太久没开的话，它还会坏掉，就成了这样</p>
<p><img src="http://www.aoao.org.cn/wp-content/uploads/2011/01/iphone-weather-bug-icon.png" alt="iphone weather bug icon" title="iphone-weather-bug-icon" width="120" height="120" class="alignnone size-full wp-image-154" /></p>
<p>T_T 自己加上系统的高光，<del datetime="2011-02-09T04:18:13+00:00">初步估计原因可是为 iOS会在没开app的情况，自己去更新apple-touch-icon-precomposed.png ，但因为这图片实际又不存在，然后就自做主张了，</del><ins datetime="2011-02-09T04:18:13+00:00">加入收藏时，桌面图标是好的，但其实已经坏掉了，双击home键时可以看到，只要动态改的就会坏，准确的说用data:image/png;base64,这种方式写入的会坏，但对于桌面的什么时候会变坏还是不清楚</ins>，同时发现我的高光画的不好，为什么要自己画高光呢，因为原生带的天气也不是用系统的高光，不过绘下边的文字还是偷懒了，其实可以做得更好。</p>
<p>=。= 目前不支持 Retina Display ，其实写过测试，但发现图片得大点，Native App的优势体现了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2011/01/iphone-web-app-dynamic-icon/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>所谓招聘</title>
		<link>http://www.aoao.org.cn/blog/2010/10/job/</link>
		<comments>http://www.aoao.org.cn/blog/2010/10/job/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 15:16:39 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[乱七八糟]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=150</guid>
		<description><![CDATA[最近做了个好玩的招聘视频，大家娱乐一下。 看不到的同学可以到http://v.youku.com/v_show/id_XMjA5ODI2OTE2.htm...]]></description>
			<content:encoded><![CDATA[<p>最近做了个好玩的招聘视频，大家娱乐一下。</p>
<p><embed src="http://player.youku.com/player.php/sid/XMjA5ODI2OTE2/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed></p>
<p>看不到的同学可以到<a href="http://v.youku.com/v_show/id_XMjA5ODI2OTE2.html" title="在线视频: 百度有啊 前端招聘">http://v.youku.com/v_show/id_XMjA5ODI2OTE2.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2010/10/job/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>JavaScript组件打包模式</title>
		<link>http://www.aoao.org.cn/blog/2010/04/js-resource-packages/</link>
		<comments>http://www.aoao.org.cn/blog/2010/04/js-resource-packages/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 08:37:34 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[Data URI]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MHTML]]></category>
		<category><![CDATA[性能优化]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=149</guid>
		<description><![CDATA[js组件通常带着css image ，但这样使用起来可能会有些小麻烦，为了让组件足够的solo，有了把css image也打包在js的想法，然后顺便把请求数变少，这个顺便好像更重要，呵呵。 那怎样打包呢，虽然有resource-packages这样的方案，可是我们的核心用户还在玩ie6这种时尚的浏览器呢！ 我的方案： CSS：CSS可以当成字符串存在js里，并由js动态加到页面上，页面用的可能不...]]></description>
			<content:encoded><![CDATA[<p>js组件通常带着css image ，但这样使用起来可能会有些小麻烦，为了让组件足够的solo，有了把css image也打包在js的想法，然后顺便把请求数变少，这个顺便好像更重要，呵呵。</p>
<p>那怎样打包呢，虽然有<a href="http://limi.net/articles/resource-packages">resource-packages</a>这样的方案，可是我们的核心用户还在玩ie6这种时尚的浏览器呢！</p>
<h4>我的方案：</h4>
<ul>
<li><strong>CSS</strong>：CSS可以当成字符串存在js里，并由js动态加到页面上，页面用的可能不适合，但组件通常不会影响。</li>
<li><strong>image</strong>：CSS里用的图片用dataURI（<a href="http://tools.ietf.org/html/rfc2397">RFC 2397</a>）跟MHTML（<a href="http://tools.ietf.org/html/rfc2557">RFC 2557</a>）的方式编到js里面。（秦歌写的<a href="http://dancewithnet.com/2009/08/15/data-uri-mhtml/">dataURI和MHTML</a>依然推荐给不知道是什么东东的同学看）。CSS里如果要绝对路径同样可以存js，js如果有直接用到的理论上也是可以，但js通常只改className会比较好。</li>
<li><strong>flash</strong>：一些比较小的flash，比如存储，复制等也可以选择打包，不过现在米解决非IE的问题，非IE使用外链吧</li>
</ul>
<p>这个有个<a href="http://labs.aoao.org.cn/yep/test.html">打包测试的例子</a>。</p>
<h4>一些细节和纠结的地方</h4>
<ol>
<li>所有图片都打包到js里不一定合理，打包进去的应该是必用的图片。<br />那排除的图片是再打一个包好呢还是直接用图片？</li>
<li>图片可以先压后编，我选用的图片压缩工具是<a href="http://advsys.net/ken/utils.htm">pngout</a>，而且一般是用<code>-s5</code>。<br />有人做了些测试<a href="http://www.phpied.com/uncompressed-data-in-base64-probably-not/">Uncompressed data in base64? Probably not</a>，大家自行判断。</li>
<li>重复的图片引用直接用dataURI会搞得很大很大，gzip又笨得跟猪一样不会压掉。<br />我是选用存成js变量，淘宝的同学是用提class的方式</li>
<li>MHTML在ie7+/vista缺少结束分割符无法显示，win03sp2缺少<code>Content-Type</code>会有安全提示，原因都MIME不标准，不是所有的东西都可以省。</li>
<li>是选择把所有的东西都打包在一个文件还是按MHTML跟dataURI分类型打包成两份在server按ua派文件或由类库智能去读取，好像后者比较和谐。</li>
<li>swf用dataURI编入有问题，据说fp8没问题，现在都fp10了。<br />另一种solo的方案就是把js打包到swf，不过感觉不和谐</li>
</ol>
<h4>multipart/related例子</h4>
<p>不算标准但能跑，换行也是很重要的</p>
<pre class="code"><code>Content-Type:multipart/related;boundary="_BAIDU_YOUA_BB_YEP"

--_BAIDU_YOUA_BB_YEP
Content-Type:image/png
Content-Location:logo.png
Content-Transfer-Encoding:base64

...base64...

--_BAIDU_YOUA_BB_YEP
Content-Type:image/png
Content-Location:nono.png
Content-Transfer-Encoding:base64

...base64...

--_BAIDU_YOUA_BB_YEP--</code></pre>
<p>btw:上篇文章的评论里发现了<a href="http://duris.ru/">这个打包的站</a>，输出界面很帅 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2010/04/js-resource-packages/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>人民币的符号的正确表示法？一杠？两杠？￥还是¥呢？</title>
		<link>http://www.aoao.org.cn/blog/2010/03/rmb/</link>
		<comments>http://www.aoao.org.cn/blog/2010/03/rmb/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 11:30:21 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[font]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=147</guid>
		<description><![CDATA[因为做的项目会跟钱打了交道，所以被研究了。 那是一杠还是两杠呢？最简单的方式就是拿出钱包，掏出张“新”的50或100，翻到背面的银线上，就会发现两杠的符号。这个是以前跟同事在讨论是一杠还是两杠时，发现最有效的方案。 杠杠数的问题解决了，可￥（指的是通常输入法中文全角模式下按shift+4的那个）在宋体（v3.03, v5.0）的情况下是显示一杠 囧rz。...]]></description>
			<content:encoded><![CDATA[<p>因为做的项目会跟钱打了交道，所以被研究了。</p>
<p>那是一杠还是两杠呢？最简单的方式就是拿出钱包，掏出张“新”的50或100，翻到背面的银线上，就会发现两杠的符号。这个是以前跟同事在讨论是一杠还是两杠时，发现最有效的方案。</p>
<p>杠杠数的问题解决了，可￥（指的是通常输入法中文全角模式下按shift+4的那个）在宋体（v3.03, v5.0）的情况下是显示一杠 囧rz。不过还好的是，常见字体：微软雅黑（Microsoft YaHei），华文细黑（STXihei），細明體（MingLiu）能显示两杠，理论上以下写法可以解决大部分问题。</p>
<pre class="code"><code>font-family: 'Microsoft YaHei',STXihei,MingLiu </code></pre>
<p>虽然部分用unicode表示的中文字体名可能会更好（via <a href="http://lifesinger.org/blog/2009/08/font-family-in-css/">中文字体在 CSS 中的写法</a>），例如这样：</p>
<pre class="code"><code>font-family: '\5FAE\8F6F\96C5\9ED1','\534E\6587\7EC6\9ED1',MingLiu </code></pre>
<p>由于MingLiu也不是“盖”的，而且在12px上还算挺好看滴，看人个喜好，反正我不喜欢“乱码”。</p>
<p>当然，如果你有更好的方案也可以介绍给我，还有一些想到的方案:</p>
<ul>
<li>编个字体，里面只有一个￥,用font-face的方式来使用，不过我也就想想，有兴趣的同学可以玩下。</li>
<li>在研究过程中还发现了 ¥ （在HTML中，“¥”的命名实体是“<code>&amp;yen;</code>”，字符代码是“<code>&amp;#165;</code>”和“<code>&amp;#xA5;</code>”。mac os 按alt+y可输入 <a title="¥ - 维基百科" href="http://zh.wikipedia.org/wiki/%C2%A5">via</a> ），虽然从命名可以知道是yen而不是yuan，好像现在变能通用了，又不过很多情况别人会把¥当成JPY 而不是CNY。</li>
</ul>
<p>在找资料时还发现这个：有关于该符号的另一种诙谐讲法，说女人一旦嫁“到”了丈“夫”了就有钱了，所以“倒夫”字就是货币的符号了（<a href="http://zhidao.baidu.com/question/123454165.html">via</a>） </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2010/03/rmb/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>MHTML在ie7/vista bug 解决方案</title>
		<link>http://www.aoao.org.cn/blog/2010/01/fixed-mhtml-ie7-vista/</link>
		<comments>http://www.aoao.org.cn/blog/2010/01/fixed-mhtml-ie7-vista/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 13:55:45 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[MHTML]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=146</guid>
		<description><![CDATA[在多数情况下，以增加文件大小代价来换连接数是有价值。而MHTML+dataURI = 省连接数，如果你不知道这是什么东东，可以看秦歌写的Data URI 和 MHTML 因为之前发现在vista上的ie7有bug，且没有好解决方案，所以一直不敢项目上使用，之前虽然有看到有个用304的方案(via Data URIs, MHTML and IE7/Win7/Vista blues)，但觉一来做起来折腾，一来效果也不好，特别是hover时。 ie7 vista的bu...]]></description>
			<content:encoded><![CDATA[<p>在多数情况下，以增加文件大小代价来换连接数是有价值。而MHTML+dataURI = 省连接数，如果你不知道这是什么东东，可以看秦歌写的<a href="http://dancewithnet.com/2009/08/15/data-uri-mhtml/">Data URI 和 MHTML</a></p>
<p>因为之前发现在vista上的ie7有bug，且没有好解决方案，所以一直不敢项目上使用，之前虽然有看到有个用304的方案(via <a href="http://www.phpied.com/data-uris-mhtml-ie7-win7-vista-blues/">Data URIs, MHTML and IE7/Win7/Vista blues</a>)，但觉一来做起来折腾，一来效果也不好，特别是hover时。</p>
<p>ie7 vista的bug大约这样，相应文件一旦local cache 后，浏览器就读不到。</p>
<p>今天，我要骄傲的跟大家，有两种可行的解决方案</p>
<p>方案1</p>
<pre class="code"><code>Content-Type:multipart/related;boundary="_aoao_org_cn"
--_aoao_org_cn
Content-Location:aoao.gif
Content-Transfer-Encoding:base64
... base64...
--_aoao_org_cn--</code></pre>
<p>注意最后的“<code>--_aoao_org_cn--</code>” ，查了不少资料，原来标准写法就是这样！（via<a href="http://tools.ietf.org/html/rfc2557"> rfc2557 第7页</a>） 囧rz</p>
<p>这个故事跟我们说一件事：有问题，查文档。 我之前一直以为cache到本地后浏览器木权限用</p>
<p>方案2</p>
<pre class="code"><code>------=_NextPart_000_0000_12345678.12345678
Content-Location:aoao.gif
Content-Transfer-Encoding:base64
... base64...
</code></pre>
<p>如果你有用ie存mht并研究结构的话，应该会觉得很眼熟，很神奇，但唯一的问题就是只能用一张图片，囧rz 反正有方案1，无视之。</p>
<p>伴随这个不是bug的bug的终结，相应的工具与应用也要浮出水面了。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2010/01/fixed-mhtml-ie7-vista/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>一次炮轰引发的深思</title>
		<link>http://www.aoao.org.cn/blog/2009/09/book-x-review/</link>
		<comments>http://www.aoao.org.cn/blog/2009/09/book-x-review/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:31:09 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=143</guid>
		<description><![CDATA[话说前文，有人在无忧发了个书的推荐，然后hax与爱民同学讲解其样章N处不解（疑是错误，主要是作者认为不是错误，偶js又水平不行，不敢乱下定论）之处。。然后因为众所周知的原因，出现了炮轰事件，又见讨-论， 那样多人推荐的一本书为什么会炮轰呢？ 怎没人来炮轰我的书呢? T_T 我经过深思后感觉原因有3点: 我没RP 水平烂到了没人理的地步 没那样多人...]]></description>
			<content:encoded><![CDATA[<p>话说前文，有人在无忧发了个<a href="http://bbs.51js.com/viewthread.php?tid=85328&#038;extra=page%3D1&#038;page=1">书的推荐</a>，然后hax与爱民同学讲解其样章N处不解（疑是错误，主要是作者认为不是错误，偶js又水平不行，不敢乱下定论）之处。。然后因为众所周知的原因，出现了<a href="http://hax.javaeye.com/blog/474725">炮轰事件</a>，又见<a href="http://bbs.51js.com/viewthread.php?tid=85542&#038;extra=page%3D1">讨</a>-<a href="http://bbs.blueidea.com/thread-2950318-1-1.html">论</a>，</p>
<p>那样多人推荐的一本书为什么会炮轰呢？ 怎没人来炮轰我的书呢? T_T 我经过深思后感觉原因有3点:</p>
<ol>
<li>我没RP</li>
<li>水平烂到了没人理的地步</li>
<li>没那样多人给我推荐</li>
</ol>
<p>当然3是最不可能的原因，肯定不是因为很多人推荐本书（因为没看过书，还不敢说是好书，当然也有可能是烂书，想当时，好像我也光荣的被邀请写书评，不过因为时间关系导致没写）就被乱轰，</p>
<p>有人说是书的原因，这书到底好不好。个人很难断定，各有说法，当然像hax同学这种只看看样章就评价的行为并不是非常推荐的，不就在样章里找出一堆问题呢？难道整本书都跟样章一样，样章能代表这本书吗？再看看人家的专题站引用的评价的都是好的，哪来像你这样多问题，连<a href="http://bbs.51js.com/viewthread.php?tid=85328&#038;page=5&#038;fromuid=76364#pid596743">taobao的阿当</a>都说这书好（其实我不认识他，没听过，只是见作者引用，又失败一下），理论这样多人推荐应该算好吧，我们暂时先不讨论这书到底好不好。</p>
<p>又有人说书有没有错误并不是主要原因，说的好像也是。好像我的书也有一堆错别字，还有属性打少字母的。其实很多书第一版都会有些错误（当然错误也有分不同的错法），以前也没见到这样大的事件，有错误应该不是核心问题。</p>
<p>那又是什么原因呢？这让我大思不得其解，最后，不小心看到一篇名为《<a href="http://www.cnblogs.com/JeffreyZhao/archive/2009/09/23/1572868.html">一些技术图书编写、推荐、出版人员需要自重</a>》</p>
<p>好了。。不兜了 大家也勿盲目围观。围观的关键在于能否在围观过程中了解到有价值的东西。</p>
<p>最后希望大家买书时不要买到 &#8220;脑白金&#8221;。</p>
<p>扩展阅读：<a href="http://aimingoo.spaces.live.com/blog/cns!F9303C43D5CEAFB3!906.entry">从“装B被雷劈”讲起</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/09/book-x-review/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>superLink，让伪链接更有可用性</title>
		<link>http://www.aoao.org.cn/blog/2009/06/superlink/</link>
		<comments>http://www.aoao.org.cn/blog/2009/06/superlink/#comments</comments>
		<pubDate>Sun, 31 May 2009 17:48:02 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=142</guid>
		<description><![CDATA[前几天，看到有人写了个superLink的东东，主要的做什么用呢？ 我们有时会给在大块元素加个window.location='http://www.aoao.org.cn'，还顺便把光标定义成移上去会变成手势还代替链接，为什么不直接用&#60;a&#62;因为有时东西太多，不能放在链接里，比如hx、p、 li之类的。那问题来了，用js处理会让链接的功能没了一堆，作者在他的文章说到： 中键：新tab打开 （aoao注：...]]></description>
			<content:encoded><![CDATA[<p>前几天，看到有人写了个<a title="Table rows as clickable anchors" href="http://james.padolsey.com/javascript/table-rows-as-clickable-anchors/">superLink</a>的东东，主要的做什么用呢？</p>
<p>我们有时会给在大块元素加个<code>window.location='http://www.aoao.org.cn'</code>，还顺便把光标定义成移上去会变成手势还代替链接，为什么不直接用<code>&lt;a&gt;</code>因为有时东西太多，不能放在链接里，比如<code>hx</code>、<code>p</code>、	<code>li</code>之类的。那问题来了，用js处理会让链接的功能没了一堆，作者在他的文章说到：</p>
<blockquote cite="http://james.padolsey.com/javascript/table-rows-as-clickable-anchors/">
<ul>
<li>中键：新tab打开 （aoao注：中键功能变更滴同学无视）</li>
<li>CTRL/SHIFT 单点：新窗口 新tab打开（aoao注：自己浏览器改过设置以自己的为准）</li>
<li>右键菜单：虾米虾米方式打开</li>
<li>浏览器状态栏</li>
<li>其他，等（aoao注：好像也没其他的）</li>
</ul>
</blockquote>
<p>那看看效果： <a href="http://james.padolsey.com/demos/plugins/jQuery/superLink/">superLink Demo</a>，试一下左中右键功能。</p>
<p>实现其实不难，就是把你原来加window.location的元素上盖上一个链接，透明为0，这样就可以把上面4条功能还原，-_-!。</p>
<p>总的来说，想法很好，有总比没有好，还封装好让别人用 ^_^，不过如果有机会再遇到类同的应用时，我应该会在原来那块元素里面的a里加个无用的span（语义愤青别BS我），虽然定位可能有点麻烦，但总是能定准的，直接样式搞定。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/06/superlink/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>yslow 2 更新（含可下载地址）</title>
		<link>http://www.aoao.org.cn/blog/2009/05/yslow-2/</link>
		<comments>http://www.aoao.org.cn/blog/2009/05/yslow-2/#comments</comments>
		<pubDate>Fri, 01 May 2009 14:29:30 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[性能优化]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=141</guid>
		<description><![CDATA[在前端开发中，Yslow 是个很不错的参考，对于网站的优化也能提出一些不错的建议。 这次的版本做了些很不错的修改，除了官方提供的地址在国内下载不了外没什么不好，详细的大家自己体验了。下载地址： 官方下载 （暂时下载不了，估计是文件服务器没同步，代理可下） 我放在box跟自己的空间，是从官方下来的...]]></description>
			<content:encoded><![CDATA[<p>在前端开发中，Yslow 是个很不错的参考，对于网站的优化也能提出一些不错的建议。</p>
<p>这次的版本做了些很不错的修改，除了官方提供的地址在国内下载不了外没什么不好，详细的大家自己体验了。下载地址：</p>
<ul>
<li><a href="https://addons.mozilla.org/zh-CN/firefox/addon/5369">官方下载</a> （暂时下载不了，估计是文件服务器没同步，代理可下）</li>
<li>我放在<a href="http://www.box.net/shared/xydmrob4ah">box</a>跟<a href="http://labs.aoao.org.cn/temp/yslow-2.0.0b3-fx.xpi.zip">自己的空间</a>，是从官方下来的。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/05/yslow-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>纯CSS在Firefox模拟text-overflow: ellipsis效果</title>
		<link>http://www.aoao.org.cn/blog/2009/03/firefox-css-text-overflow-ellipsis/</link>
		<comments>http://www.aoao.org.cn/blog/2009/03/firefox-css-text-overflow-ellipsis/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 14:09:45 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[text-overflow]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=140</guid>
		<description><![CDATA[text-overflow这个属性真让Firefox折腾，虽然之前有写过Firefox通过XUL实现text-overflow:ellipsis的效果，不过要外挂xbl来用也就一直没用，虽然想过Data URI，但其实还不如外挂xbl。 这两天在论坛看到14px同学写的超过宽度显示省略号（无js全兼容），想法很有创意，使用一张图片来做“&#8230;”，另一张图片用来在字不够长的情况下盖掉“&#8230;”，原文攻略很完整，大家可...]]></description>
			<content:encoded><![CDATA[<p>text-overflow这个属性真让Firefox折腾，虽然之前有写过<a href="http://www.aoao.org.cn/blog/2008/07/firefox-text-overflow-ellipsis/">Firefox通过XUL实现text-overflow:ellipsis的效果</a>，不过要外挂xbl来用也就一直没用，虽然想过Data URI，但其实还不如外挂xbl。</p>
<p>这两天在论坛看到14px同学写的<a href="http://bbs.blueidea.com/thread-2915238-1-1.html">超过宽度显示省略号（无js全兼容）</a>，想法很有创意，使用一张图片来做“&#8230;”，另一张图片用来在字不够长的情况下盖掉“&#8230;”，原文攻略很完整，大家可以去看一下思路，个人认为的缺点就是用了图片，不够灵活，所以我就悄悄修改了代码，思路是用父一层的元素的伪类:after来完成“&#8230;”，再用元素自身伪类:after来盖掉不应该出来的“&#8230;”，看一下效果：</p>
<p><a title="纯CSS在firefox模拟text-overflow: ellipsis的演示页面" href="http://labs.aoao.org.cn/demo/effect/text-overflow/"><img class="alignnone size-full wp-image-139" title="firefox-css-text-overflow" src="http://www.aoao.org.cn/wp-content/uploads/2009/03/firefox-css-text-overflow.gif" alt="纯CSS在firefox模拟text-overflow: ellipsis的效果" width="274" height="146" /></a></p>
<p>看上去好像很理想，但是text-overflow也不是那样好模拟的，有兴趣的同学看看<a title="纯CSS在firefox模拟text-overflow: ellipsis的演示页面" href="http://labs.aoao.org.cn/demo/effect/text-overflow/">demo</a>就知道还有多少问题。</p>
<p>当成技术练手还是不错滴，不过估计应该不会拿着应用。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/03/firefox-css-text-overflow-ellipsis/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>用私有属性来拯救IE7缩放图片的失真</title>
		<link>http://www.aoao.org.cn/blog/2009/03/img-ms-interpolation-mode/</link>
		<comments>http://www.aoao.org.cn/blog/2009/03/img-ms-interpolation-mode/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 17:13:06 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[image]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=137</guid>
		<description><![CDATA[图片缩放会失真是真理，在浏览器里也一样，貌似使用传说中的双三次插值可以让失真看起来比较不明显，但是真的想不通IE7已经实现了，却不默认打开，是体谅我们的CPU还是内存呢？ 简单来说，我们在图片的CSS 加-ms-interpolation-mode: bicubic 就可以让IE7的图片在有缩放的情况下，失真变得不怎样明显， 更多的测试可以到可以到MSDN做的例子看一下效果，或者到血...]]></description>
			<content:encoded><![CDATA[<p>图片缩放会失真是真理，在浏览器里也一样，貌似使用传说中的<a title="双三次插值 - 维基百科，自由的百科全书" href="http://zh.wikipedia.org/wiki/双三次插值">双三次插值</a>可以让失真看起来比较不明显，但是真的想不通IE7已经实现了，却不默认打开，是体谅我们的CPU还是内存呢？</p>
<p>简单来说，我们在图片的CSS 加<code>-ms-interpolation-mode: bicubic</code> 就可以让IE7的图片在有缩放的情况下，失真变得不怎样明显，<br />
<img style="-ms-interpolation-mode: bicubic" src="http://www.aoao.org.cn/temp/images/feed.gif" alt="" width="250" /><img src="http://www.aoao.org.cn/temp/images/feed.gif" alt="" width="250" /></p>
<p>更多的测试可以到可以到<a href="http://samples.msdn.microsoft.com/workshop/samples/author/css/msInterpolation.htm">MSDN做的例子看一下效果</a>，或者到<a href="http://momdo.s35.xrea.com/web-html-test/CSS3-memo/-ms-interpolation-mode.html">血統の森-web実験小屋</a>看一下效果。</p>
<p>没想到IE7平滑的效果居然可以比Safari好。更让我想不到的是，居然还有另一个属性值<code>nearest-neighbor</code>，难道为了让人节省CPU而使用吗？最少我现在还没想到为什么要用的理由。</p>
<p>BTW：那时发现这个属性后给同事笑到说，人家某部门去年就发现了，居然我开始火星鸟，不过发现了不用也没什么作用，呵呵，谨以此文献给比我还火星滴同学 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/03/img-ms-interpolation-mode/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>省市级联菜单的可用性</title>
		<link>http://www.aoao.org.cn/blog/2009/02/address-selector/</link>
		<comments>http://www.aoao.org.cn/blog/2009/02/address-selector/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 19:02:43 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=135</guid>
		<description><![CDATA[省市级联这东西基本是网注一份，而且基本是全是js写的，js写唯一坏处就是JS无效时不可用，我所说的js无效包括不支持js，js加载未完成或者失败。 为了避免不可用，我曾经跟同事讨论过这样的实现方案。 默认显示为 input , 没加载完或者XX时，用户也可以填； js有效时，用select代替掉input； 如果input里已经有内容，要记得拿给select； 某些情况可以考虑把第一个...]]></description>
			<content:encoded><![CDATA[<p>省市级联这东西基本是网注一份，而且基本是全是js写的，js写唯一坏处就是JS无效时不可用，我所说的js无效包括不支持js，js加载未完成或者失败。</p>
<p>为了避免不可用，我曾经跟同事讨论过这样的实现方案。</p>
<ol>
<li>默认显示为 input , 没加载完或者XX时，用户也可以填；</li>
<li>js有效时，用select代替掉input；</li>
<li>如果input里已经有内容，要记得拿给select；</li>
<li>某些情况可以考虑把第一个直接输出在html上。</li>
</ol>
<p>还要考虑的问题</p>
<ol>
<li>input 输入的地址数据的修正与格式(结构)化；</li>
<li>不能格式化的前端反应。</li>
</ol>
<p>以前只是想想，最终因为XX原因米完成，今天不小心看到adsense 的注册页面也做了类似的处理。很好很强大。</p>
<p>有些东西，并不是你想得到就一定得做得了，比如某网站全站都不支持html的form提交，哎。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/02/address-selector/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>语义化的label？</title>
		<link>http://www.aoao.org.cn/blog/2009/02/semantic-label/</link>
		<comments>http://www.aoao.org.cn/blog/2009/02/semantic-label/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 15:39:10 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[input]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/blog/2009/02/semantic-label/</guid>
		<description><![CDATA[大家应该经常看到在文本框里提示文字，然后一点就没了。通常做法都是默认给个value，通过js来处理。详细实现都不介绍了，大家都会。现在来看一下一个比较创意的实现。 就是直接用label的内容盖在input上面，然后用js来处理一下。详细实现就不用说了，反正我想尝试纯CSS是没办法实现滴。从结构上来看，还是比较理想的，充分利用了label &#60;label id=usernameLabel...]]></description>
			<content:encoded><![CDATA[<p>大家应该经常看到在文本框里提示文字，然后一点就没了。通常做法都是默认给个value，通过js来处理。详细实现都不介绍了，大家都会。现在来看一下一个比较创意的实现。</p>
<p>就是直接用<code>label</code>的内容盖在<code>input</code>上面，然后用js来处理一下。详细实现就不用说了，反正我想尝试纯CSS是没办法实现滴。从结构上来看，还是比较理想的，充分利用了<code>label</code></p>
<pre><code>&lt;label id="usernameLabel" for="username" class="placeholder"&gt;&lt;span&gt;Member Name&lt;/span&gt;&lt;/label&gt;
&lt;input id="username" name="username" class="text" type="text" maxlength="128" value="" /&gt;</code></pre>
<p><a title="MobileMe Login" href="https://auth.apple.com/authenticate"><img class="alignnone size-full wp-image-133" title="MobileMe的登录界面" src="http://www.aoao.org.cn/wp-content/uploads/2009/02/mobileme-login.jpg" alt="MobileMe的登录界面" width="395" height="320" /></a></p>
<p>其实看图看不出什么，点图去网站看一下。</p>
<p>我还特别试了一下noscript的效果，跳转 囧rz。</p>
<p>有些细节的，比如提示文字从灰变得更灰的过渡效果，是<code>-webkit-transition</code>的应用，要用webkit的浏览器才能体现。</p>
<p>再其实，<code>input</code>有个叫<code>placeholder</code>的属性，参考以前<a href="http://www.aoao.org.cn/blog/2008/04/input-type-search/">类型为search的input及相关属性</a>，可以直接用在<code>type="text"</code>的<code>input</code>上，不过哪种方式在哪些情况应用会更适合呢，大家自己决定吧。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/02/semantic-label/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>兼容所有浏览器的设为首页与显示小策略</title>
		<link>http://www.aoao.org.cn/blog/2009/01/set-homepage/</link>
		<comments>http://www.aoao.org.cn/blog/2009/01/set-homepage/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 18:32:02 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=130</guid>
		<description><![CDATA[在IE比较简单，大家都知道用setHomePage来设置，懒人写法： &#60;a href=#setHomePage onclick=this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.aoao.org.cn');return false;&#62;Set HomePage&#60;/a&#62; IE的结束了没?当然没有，其实M$还提供了一个神奇的接口给我们：isHomePage，它是用来干啥呢？它是用来检查一下IE的首页是不是你的，这样我们就可以做设为首页为后就不再显示“...]]></description>
			<content:encoded><![CDATA[<p>在IE比较简单，大家都知道用<a title="MSDN关于segHomePage使用的介绍" href="http://msdn.microsoft.com/en-us/library/ms531405(VS.85).aspx"><code>setHomePage</code></a>来设置，懒人写法：</p>
<pre class="code"><code>&lt;a href="#setHomePage" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.aoao.org.cn');return false;"&gt;Set HomePage&lt;/a&gt;</code></pre>
<p>IE的结束了没?当然没有，其实M$还提供了一个神奇的接口给我们：<a title="MSDN关于isHomePage使用的介绍" href="http://msdn.microsoft.com/en-us/library/ms531394.aspx"><code>isHomePage</code></a>，它是用来干啥呢？它是用来检查一下IE的首页是不是你的，这样我们就可以做设为首页为后就不再显示“设为首页”的效果了。挖哈哈，<a href="http://www.never-online.net/blog/article.asp?id=201">这里有rank同学写的现成代码</a>，不过我修改了两下，只是写法不同，跟悄悄的加入了广告。</p>
<pre class="code"><code>&lt;a href="/setHomePage" id="setHomePage"&gt;设为首页&lt;/a&gt;
&lt;!--[if IE]&gt;
&lt;script type="text/javascript"&gt;
(function(){
  var el=document.getElementById('setHomePage'),url='http://www.aoao.org.cn/',isHp=false;
  el.style.behavior='url(#default#homepage)';
  function check(){
    try{
      isHp=el.isHomePage(url);
    }catch(exia){}
    if(isHp){
      //el.style.visibility='hidden'
      /*AD*/el.innerHTML="《Web标准设计》雷人进行时";
      el.href="http://www.baidu.com/";/**/
      el=null;url=null;isHp=null;check=null;
    }else{
      el.onclick=function(){
        try{
          this.setHomePage(url);
          check();
          return false;
        }catch(exia){return true}
      }
    }
  }
  check();
})();
&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>
<p>在inline的情况下，条件注释还是比较帅滴，可能你会问，为什么不把a也放在脚本里输出呢？ 其实，我们也可以解决其他浏览器的问题。</p>
<p>Firefox可没有现成的接口可以实现哦，但是，牛人们还是找出来解决方案，看一下<a href="http://www.yahoo.com/">Yahoo!</a>的解决方案吧？</p>
<p><img class="alignnone size-full wp-image-131" title="make y! home page@firefox" src="http://www.aoao.org.cn/wp-content/uploads/2009/01/make-y-home-page-firefox.png" alt="make y! home page@firefox" width="397" height="136" /></p>
<p>囧rz，被雷到的同学自觉举手，我用到这样久的Firefox 还不知道怎样设，试了半天，原来是把链接拖到工具栏的小房子上面，就可以设为首页。</p>
<p>还有好多浏览器，这时我们要派出终极解决方案。写帮助 -_-b ，好了，不会写的同学可以去抄一下<a href="http://www.yahoo.com/bin/set">yahoo的帮助</a>。<br />
那除了IE怎样识别是否被设为首页呢？可以写 cookies 或者用服务器来记，而有没有必要就看具体的应用了。</p>
<p>其实我们不一定要一直显示设置首页，比如用<code>document.referrer</code>发现是从搜索或者XX过来的，也许显示成收藏会更适合，像Yahoo!的首页，看到广告的机会比看到设为首页的机率高多了，大家自己把握吧。</p>
<p>兼容所有浏览器收藏全攻略：</p>
<ul>
<li>IE用<code>window.external.addFavorite</code></li>
<li>Win的其他浏览器提示使用<kbd>ctrl+D</kbd></li>
<li>Mac的浏览器提示使用<kbd>command+D</kbd></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/01/set-homepage/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CSS系统颜色</title>
		<link>http://www.aoao.org.cn/blog/2009/01/css-system-colors/</link>
		<comments>http://www.aoao.org.cn/blog/2009/01/css-system-colors/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 18:01:23 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=128</guid>
		<description><![CDATA[直接调用系统的颜色显示在网页上本来是件很好玩滴事，但是，也有个缺点，就是可用的色太少 比如Bindows在它的启动画面一点点应用。 =。= 上次本来想在某个产品上应用，结果给人BS了，原因是色不好看 囧rz 在css21 中 System Colors也有相关描述，CSS3还加了超链接的色，还有个flavor。 但是，要有浏览器支持才是硬道理，浏览器不支持，虾米都回家睡觉。 附各色显...]]></description>
			<content:encoded><![CDATA[<p>直接调用系统的颜色显示在网页上本来是件很好玩滴事，但是，也有个缺点，就是可用的色太少 比如<a href="http://www.bindows.net/">Bindows</a>在它的启动画面一点点应用。</p>
<p>=。= 上次本来想在某个产品上应用，结果给人BS了，原因是色不好看 囧rz</p>
<p>在css21 中 <a href="http://www.w3.org/TR/CSS21/ui.html#system-colors">System Colors</a>也有相关描述，CSS3还加了<a href="http://www.w3.org/TR/2003/WD-css3-color-20030214/#css3-user">超链接的色</a>，还有个<a href="http://www.w3.org/TR/2003/WD-css3-color-20030214/#flavor">flavor</a>。</p>
<p>但是，要有浏览器支持才是硬道理，浏览器不支持，虾米都回家睡觉。</p>
<p>附各色显示效果，如果看不到文字部分就像刮彩票一半刮开看一下，其中，Background 这个在safari 比较神奇，是透明哦。</p>
<p>CSS2.1中的System Colors</p>
<blockquote cite="http://www.w3.org/TR/CSS21/ui.html#system-colors"><dl>
<dt>ActiveBorder</dt>
<dd style="background-color:ActiveBorder">Active window border.</dd>
<dt>ActiveCaption</dt>
<dd style="background-color:ActiveCaption">Active window caption.</dd>
<dt>AppWorkspace</dt>
<dd style="background-color:AppWorkspace">Background color of multiple document interface.</dd>
<dt>Background</dt>
<dd style="background-color:Background">Desktop background. <span style="color:Background;">» test color:Background @aoao<span></dd>
<dt>ButtonFace</dt>
<dd style="background-color:ButtonFace">Face color for three-dimensional display elements.</dd>
<dt>ButtonHighlight</dt>
<dd style="background-color:ButtonHighlight">Highlight color for three-dimensional display elements (for edges facing away from the light source).</dd>
<dt>ButtonShadow</dt>
<dd style="background-color:ButtonShadow">Shadow color for three-dimensional display elements.</dd>
<dt>ButtonText</dt>
<dd style="background-color:ButtonText">Text on push buttons.</dd>
<dt>CaptionText</dt>
<dd style="background-color:CaptionText">Text in caption, size box, and scrollbar arrow box.</dd>
<dt>GrayText</dt>
<dd style="background-color:GrayText">Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.</dd>
<dt>Highlight</dt>
<dd style="background-color:Highlight">Item(s) selected in a control.</dd>
<dt>HighlightText</dt>
<dd style="background-color:HighlightText">Text of item(s) selected in a control.</dd>
<dt>InactiveBorder</dt>
<dd style="background-color:InactiveBorder">Inactive window border.</dd>
<dt>InactiveCaption</dt>
<dd style="background-color:InactiveCaption">Inactive window caption.</dd>
<dt>InactiveCaptionText</dt>
<dd style="background-color:InactiveCaptionText">Color of text in an inactive caption.</dd>
<dt>InfoBackground</dt>
<dd style="background-color:InfoBackground">Background color for tooltip controls.</dd>
<dt>InfoText</dt>
<dd style="background-color:InfoText">Text color for tooltip controls.</dd>
<dt>Menu</dt>
<dd style="background-color:Menu">Menu background.</dd>
<dt>MenuText</dt>
<dd style="background-color:MenuText">Text in menus.</dd>
<dt>Scrollbar</dt>
<dd style="background-color:Scrollbar">Scroll bar gray area.</dd>
<dt>ThreeDDarkShadow</dt>
<dd style="background-color:ThreeDDarkShadow">Dark shadow for three-dimensional display elements.</dd>
<dt>ThreeDFace</dt>
<dd style="background-color:ThreeDFace">Face color for three-dimensional display elements.</dd>
<dt>ThreeDHighlight</dt>
<dd style="background-color:ThreeDHighlight">Highlight color for three-dimensional display elements.</dd>
<dt>ThreeDLightShadow</dt>
<dd style="background-color:ThreeDLightShadow">Light color for three-dimensional display elements (for edges facing the light source).</dd>
<dt>ThreeDShadow</dt>
<dd style="background-color:ThreeDShadow">Dark shadow for three-dimensional display elements.</dd>
<dt>Window</dt>
<dd style="background-color:Window">Window background.</dd>
<dt>WindowFrame</dt>
<dd style="background-color:WindowFrame">Window frame.</dd>
<dt>WindowText</dt>
<dd style="background-color:WindowText">Text in windows.</dd>
</dl>
</blockquote>
<p>CSS3 新加的 User preferences for hyperlink colors</p>
<blockquote cite="http://www.w3.org/TR/2003/WD-css3-color-20030214/#css3-user"><dl>
<dt>ActiveHyperlink</dt>
<dd style="background-color:ActiveHyperlink">Active hyperlink background.</dd>
<dt>ActiveHyperlinkText</dt>
<dd style="background-color:ActiveHyperlinkText">Text of an active hyperlink.</dd>
<dt>HoverHyperlink</dt>
<dd style="background-color:HoverHyperlink">Hover hyperlink background.</dd>
<dt>HoverHyperlinkText</dt>
<dd style="background-color:HoverHyperlinkText">Text of a hyperlink in the hover state.</dd>
<dt>Hyperlink</dt>
<dd style="background-color:Hyperlink">Hyperlink background.</dd>
<dt>HyperlinkText</dt>
<dd style="background-color:HyperlinkText">Hyperlink text.</dd>
<dt>VisitedHyperlink</dt>
<dd style="background-color:VisitedHyperlink">Visited hyperlink background.</dd>
<dt>VisitedHyperlinkText</dt>
<dd style="background-color:VisitedHyperlinkText">Text of a visited hyperlink.</dd>
</dl>
</blockquote>
<blockquote cite="http://www.w3.org/TR/2003/WD-css3-color-20030214/#flavor"><dl>
<dt>flavor</dt>
<dd style="background-color: flavor">An accent color (typically chosen by the user) to customize the user interface of the user agent itself. User agents may default the &#8216;flavor&#8217; color to the dominant accent color used on the physical machine/mechanism that the user is interacting with (frequently a mouse, keyboard, monitor and computer case, often just a laptop), if the UA is able to retrieve that information from the platform and machine. It is not expected that this value will make sense on all platforms and machines.</dd>
</dl>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2009/01/css-system-colors/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>出版了《Web标准设计》！兴奋与失望</title>
		<link>http://www.aoao.org.cn/blog/2008/12/web-standards-design/</link>
		<comments>http://www.aoao.org.cn/blog/2008/12/web-standards-design/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 14:33:37 +0000</pubDate>
		<dc:creator>aoao</dc:creator>
				<category><![CDATA[本站与我]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://www.aoao.org.cn/?p=127</guid>
		<description><![CDATA[终于，《Web标准设计》出版了，很高兴，这本书从开始到现在刚好是两年。签合同的时间是2006年12月13号，我去出版社拿样书的时间是2008年12月12号，真TMD的巧。估计很少作者的书要出这样久，月影是我在接书后骗去写《JavaScirpt王者归来》，人家再慢也都已经第二次印刷了，更不敢去对比人家2两个月交稿。 书的封面最终还是使用这个我不喜欢的封面 并不是因为...]]></description>
			<content:encoded><![CDATA[<p>终于，<a title="《Web标准设计》专题页" href="http://www.aoao.org.cn/book/web-standards-design/">《Web标准设计》</a>出版了，很高兴，这本书从开始到现在刚好是两年。签合同的时间是2006年12月13号，我去出版社拿样书的时间是2008年12月12号，真TMD的巧。估计很少作者的书要出这样久，月影是我在接书后骗去写<a href="http://labs.aoao.org.cn/akira/">《JavaScirpt王者归来》</a>，人家再慢也都已经第二次印刷了，更不敢去对比人家2两个月交稿。</p>
<p>书的封面最终还是使用这个我不喜欢的封面</p>
<p><a title="《Web标准设计》专题页" href="http://www.aoao.org.cn/book/web-standards-design/"><img class="alignnone" src="http://lh6.ggpht.com/aoao.photo/SQfgpbspjaI/AAAAAAAAAXI/he7j4GjkS6A/s200/book-cover-1.jpg" alt="《Web标准设计》封面" width="162" height="200" /></a></p>
<p>并不是因为创意不好，是制作工艺不好，过重的阴影，让他看起来更山寨。最最让我不能接受的书的排版。从内容开始，除了引用的文字从仿宋改成黑体外，我看不出 跟我交的Word的排版有多少什么区别。早知道这样我就应该坚持我第一次交稿时那样，把图片都排在代码右边，这样看起来又明了，又省纸。价格也不是我能接 受了，虽然说最近纸贵，但是距离我最初想控制在50块下的目标太远了。就算打完折还有5~60块。</p>
<p>一本书还没正式面市就有勘误表，应该算是比较失败，更失败的是这本书是我写的，我现在最担心的是送印厂的版本不是最终校完的版本。</p>
<p>也许这本书的收藏意义更大于指导意义。毕竟两年前开始写时对技术的了解远没达到现在的程度。但不管怎样，书是我的，我会努力去维护好它。</p>
<p>原来计划推出与书同风格的小站主题也因为各种原因拖没了，就连现在的专题页也是拿到样书才发现我什么都没开始做才东拼西凑临时做的。用Webkit的浏览器（Safari,Chrome）会看到一些奇怪的效果哦 ^_^，好了大家来看看<a href="http://www.aoao.org.cn/book/web-standards-design/">《Web标准设计》专题页面</a>。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aoao.org.cn/blog/2008/12/web-standards-design/feed/</wfw:commentRss>
		<slash:comments>82</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.604 seconds -->
<!-- Cached page served by WP-Cache -->

