<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>比特客栈的文艺复兴 &#187; CSS</title>
	<atom:link href="http://blog.ticktag.org/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ticktag.org</link>
	<description>We all make choices in life, but in the end our choices make us.</description>
	<lastBuildDate>Wed, 08 Sep 2010 16:35:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CSS 2.1的隐藏技能：多背景，多边框，等高容器</title>
		<link>http://blog.ticktag.org/2010/06/15/6798/</link>
		<comments>http://blog.ticktag.org/2010/06/15/6798/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 09:09:58 +0000</pubDate>
		<dc:creator>David Frank</dc:creator>
				<category><![CDATA[旁门左道 | Asides]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<guid isPermaLink="false">http://blog.ticktag.org/?p=6798</guid>
		<description><![CDATA[相比CSS3的新特性，CSS 2.1标准下的pseudo（伪类选择器）已经通用于所有主要浏览器的稳定版本（FF 3.5，Safari 4，Chrome 4，Opera 10以及IE8），这样一来我们就可以三次装饰同一个容器而不用建div巢了。Nicolas Gallagher最近写了一篇文章，看完两个DEMO（1,2）之后我清楚认识到自己没掌握CSS 2.1的事实。]]></description>
			<content:encoded><![CDATA[<p class="center"><a href="http://blog.ticktag.org/wp-images/blogimage/2010/06/css-dude.png"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/06/css-dude-150x145.png" alt="" title="dude!" width="150" height="145" class="alignnone size-thumbnail wp-image-6799" /></a></p>
<p>相比CSS3的新特性，CSS 2.1标准下的pseudo（伪类选择器）已经通用于所有主要浏览器的稳定版本（FF 3.5，Safari 4，Chrome 4，Opera 10以及IE8），这样一来我们就可以三次装饰同一个容器而不用建div巢了。Nicolas Gallagher最近<a href="http://nicolasgallagher.com/multiple-backgrounds-and-borders-with-css2/">写了一篇文章</a>，看完两个DEMO（<a href="http://nicolasgallagher.com/demo/multiple-backgrounds-and-borders-with-css2/backgrounds.html">1</a>,<a href="http://nicolasgallagher.com/demo/multiple-backgrounds-and-borders-with-css2/borders.html">2</a>）之后我清楚认识到自己没掌握CSS 2.1的事实。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ticktag.org/2010/06/15/6798/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>为什么IE的盒子模型是错的</title>
		<link>http://blog.ticktag.org/2010/06/13/6783/</link>
		<comments>http://blog.ticktag.org/2010/06/13/6783/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 08:53:36 +0000</pubDate>
		<dc:creator>David Frank</dc:creator>
				<category><![CDATA[旁门左道 | Asides]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Total Disaster]]></category>
		<category><![CDATA[W3C]]></category>
		<guid isPermaLink="false">http://blog.ticktag.org/?p=6783</guid>
		<description><![CDATA[ppk曾经说IE的传统盒子模型比W3C的定义好理解，但为什么IE的盒子还是比W3C的糟糕呢？因为IE盒子的定义连IE盒子的支持者自己都搞不清楚。与文中所述相反，IE盒子并不包括margin，而只是纯粹的计算padding与border的占位。为什么IE传统盒子这么烦？因为需要反向推导一个盒子的内容宽度，而浏览器渲染时期望尽快知道内容的宽度。再有，IE传统盒子硬是把微软自己的开发团队都搞晕了，有些bug还穿越出现在标准模式下，哦，你不知道IE6的标准模式使用W3C的盒子定义？ 支持IE传统盒子的同学，没有为IE5.x开发过的同学，请你考虑这个问题：如今CSS3支持图片border了，使用IE盒子模式，浏览器应该怎么计算内容宽度？CSS3是为设计者方便提供帮助，请不要以box-sizing为借口，为IE5.x的顽固不化辩护。 延伸阅读： Internet Explorer and the CSS box model The Box Model Problem Box model tweaking Internet Explorer box model bug]]></description>
			<content:encoded><![CDATA[<p class="center"><a href="http://blog.ticktag.org/wp-images/blogimage/2010/06/box-model.png"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/06/box-model-108x150.png" alt="" title="box-model" width="108" height="150" class="alignnone size-thumbnail wp-image-6788" /></a></p>
<p>ppk曾经说IE的传统盒子模型比W3C的定义好理解，但为什么IE的盒子还是比W3C的糟糕呢？因为IE盒子的定义连<a href="http://www.cnbeta.com/articles/113699.htm" rel="nofollow">IE盒子的支持者自己都搞不清楚</a>。与文中所述相反，IE盒子并不包括margin，而只是纯粹的计算padding与border的占位。为什么IE传统盒子这么烦？因为需要反向推导一个盒子的内容宽度，而浏览器渲染时期望尽快知道内容的宽度。再有，IE传统盒子硬是把微软自己的开发团队都搞晕了，有些bug还穿越出现在标准模式下，哦，你不知道<strong>IE6的标准模式使用W3C的盒子定义</strong>？</p>
<p>支持IE传统盒子的同学，没有为IE5.x开发过的同学，请你考虑这个问题：<strong>如今CSS3支持图片border了，使用IE盒子模式，浏览器应该怎么计算内容宽度？</strong>CSS3是为设计者方便提供帮助，请不要以box-sizing为借口，为IE5.x的顽固不化辩护。</p>
<p>延伸阅读：</p>
<ul>
<li>
<p><a href="http://www.456bereastreet.com/archive/200612/internet_explorer_and_the_css_box_model/">Internet Explorer and the CSS box model</a></p>
</li>
<li>
<p><a href="http://www.communitymx.com/content/article.cfm?cid=E0989953B6F20B41">The Box Model Problem</a></p>
</li>
<li>
<p><a href="http://www.quirksmode.org/css/box.html">Box model tweaking</a></p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug">Internet Explorer box model bug</a></p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.ticktag.org/2010/06/13/6783/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CSSplay老头子的挑战</title>
		<link>http://blog.ticktag.org/2010/04/12/6352/</link>
		<comments>http://blog.ticktag.org/2010/04/12/6352/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 06:25:04 +0000</pubDate>
		<dc:creator>David Frank</dc:creator>
				<category><![CDATA[旁门左道 | Asides]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<guid isPermaLink="false">http://blog.ticktag.org/?p=6352</guid>
		<description><![CDATA[你真的懂CSS？那就来理解一下他的最新杰作：“在不知道图片大小尺寸的情况下，仅使用CSS与(X)HTML完成图片的跨浏览器等比缩放”吧！听起来简单，看起来简单，却不是三脚猫网页开发者能解决的。假如你嫌页面源代码太乱，自己下载这个精简版玩玩吧～]]></description>
			<content:encoded><![CDATA[<p class="center"><a href="http://blog.ticktag.org/wp-images/blogimage/2010/04/css-rules.jpg"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/04/css-rules-150x56.jpg" alt="" title="css-rules" width="150" height="56" class="alignnone size-thumbnail wp-image-6353" /></a></p>
<p>你真的懂CSS？那就来理解一下他的<a href="http://www.cssplay.co.uk/menu/fast.html">最新杰作</a>：“在不知道图片大小尺寸的情况下，仅使用CSS与(X)HTML完成图片的<strong>跨浏览器等比缩放</strong>”吧！听起来简单，看起来简单，却不是三脚猫网页开发者能解决的。假如你嫌页面源代码太乱，自己下载这个<a href="http://blog.ticktag.org/addons/cssplay-image-resize.zip">精简版</a>玩玩吧～</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ticktag.org/2010/04/12/6352/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>再看CSS字体堆栈</title>
		<link>http://blog.ticktag.org/2010/02/09/6054/</link>
		<comments>http://blog.ticktag.org/2010/02/09/6054/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 07:15:14 +0000</pubDate>
		<dc:creator>David Frank</dc:creator>
				<category><![CDATA[旁门左道 | Asides]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Internet Media]]></category>
		<guid isPermaLink="false">http://blog.ticktag.org/?p=6054</guid>
		<description><![CDATA[A Way Back上有一篇重新审视网站字体排序的文章。虽然中文世界的字体堆栈一般只有宋体和雅黑两种（而且是浏览器默认，不是CSS定义……），但随着不同操作系统的出炉，默认字体的比率也发生了变化，这篇文章尝试探索CSS字体家族定义的优化（仅用系统内的默认字体，而不是embed）。顺便一提，此站也是经典的blogazine + typography爱好者。]]></description>
			<content:encoded><![CDATA[<p class="center"><a href="http://blog.ticktag.org/wp-images/blogimage/2010/02/font-stack.jpg"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/02/font-stack-150x70.jpg" alt="" title="font-stack" width="150" height="70" class="alignnone size-thumbnail wp-image-6055" /></a></p>
<p><a href="http://www.awayback.com/revised-font-stack/"><em>A Way Back</em>上有一篇</a>重新审视网站字体排序的文章。虽然中文世界的字体堆栈一般只有宋体和雅黑两种（而且是浏览器默认，不是CSS定义……），但随着不同操作系统的出炉，默认字体的比率也发生了变化，这篇文章尝试探索CSS字体家族定义的优化（仅用系统内的默认字体，而不是embed）。顺便一提，此站也是经典的<em>blogazine + typography</em>爱好者。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ticktag.org/2010/02/09/6054/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>吹毛求疵：解决IE6-7给链接加黑点边框的三种方案</title>
		<link>http://blog.ticktag.org/2010/01/21/5985/</link>
		<comments>http://blog.ticktag.org/2010/01/21/5985/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 19:45:53 +0000</pubDate>
		<dc:creator>David Frank</dc:creator>
				<category><![CDATA[全球客栈 | Global]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web Standard]]></category>
		<guid isPermaLink="false">http://blog.ticktag.org/?p=5985</guid>
		<description><![CDATA[先定义问题：大家都知道，CSS超链接的outline属性一直是为键盘用户增加易用性的好帮手（按Tab键focus下一条链接，是除Safari Win外的默认操作）。可以说，outline通常伴随着:focus事件出现。但如果你重新定义了:focus的样式，这个边框就显得很多余了。 对于标准的浏览器而言（IE8+，FF2.0+等），定义:focus时的outline:0足以解决问题。但不支持:focus的IE6和只支持超链接:focus的IE7的黑点边框又怎么解决呢？ 今天花了点时间研究这个问题，最早发现的解决办法是通过Javascript解决。思路是：既然IE6和7的outline不是标准的outline（无法通过CSS定义），那肯定有某种JS可以解决。通过这篇Cody Lindley的老文章我们知道hideFocus可以禁用IE的特殊边框。 &#60;a href=&#34;#test&#34; onfocus=&#34;this.hideFocus=true;&#34;&#62;link&#60;/a&#62; 但这个方式要求每个链接都有onfocus属性，实在不太美观。Cody Lindley选择用getElementsByTagName对应添加，这是第一种思路。 在上述文章留言中有一个变种方案：既然只有IE不听话，我们用CSS Expression替换不就好了？把JS写入CSS文件，用Conditional Comment避开其他浏览器（只有IE支持CSS Expression，但我有洁癖，喜欢避免CSS警告）。 a { outline:expression(hideFocus='true'); } 众所周知，CSS Expression很耗费资源，若你的页面上链接很多那就更折磨CPU了。因此我们需要一个纯CSS的方式，cssplay的Stu Nicholls老头说纯CSS的方式可行，但没几个人看懂了他给的神奇例子。各位可以用IE去测试，每块拼图都是超链接，Tab键和右键点击却不会有黑色边框。 我花了点时间研究它的CSS，发现原来通过在超链接里附加其他inline标签，通过CSS定位可以做到隐藏IE边框的效果。 首先是HTML &#60;a href=&#34;#test&#34;&#62;&#60;span&#62;关于萌番&#60;/span&#62;&#60;/a&#62; 然后是CSS a { position:relative; margin:0 48px 0 0; } a span { position:absolute; top:-1px; left:0; cursor:pointer; white-space:nowrap; } a:hover { background:transparent; } a:hover span { background:#1C72B7; height:17px; overflow:hidden; } a:active [...]]]></description>
			<content:encoded><![CDATA[<p class="center"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/01/firefox-focus.jpg" alt="" title="outline:0之下的FF的:focus显示" width="433" height="55" class="alignnone size-full wp-image-5986" /></p>
<p class="center"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/01/ie-focus.jpg" alt="" title="outline:0之下的IE的:focus显示" width="435" height="49" class="alignnone size-full wp-image-5987" /></p>
<p>先定义问题：大家都知道，CSS超链接的outline属性一直是为键盘用户增加易用性的好帮手（按Tab键focus下一条链接，是除Safari Win外的默认操作）。可以说，outline通常伴随着:focus事件出现。但如果你重新定义了:focus的样式，这个边框就显得很多余了。</p>
<p>对于标准的浏览器而言（IE8+，FF2.0+等），定义:focus时的outline:0足以解决问题。但不支持:focus的IE6和只支持超链接:focus的IE7的黑点边框又怎么解决呢？</p>
<p><span id="more-5985"></span></p>
<p>今天花了点时间研究这个问题，最早发现的解决办法是通过Javascript解决。思路是：既然IE6和7的outline不是标准的outline（无法通过CSS定义），那肯定有某种JS可以解决。通过这篇Cody Lindley的<a href="http://codylindley.com/Javascript/223/hiding-the-browsers-focus-borders-should-i-shouldnt-i">老文章</a>我们知道hideFocus可以禁用IE的特殊边框。</p>
<p><code>&lt;a href=&quot;#test&quot; onfocus=&quot;this.hideFocus=true;&quot;&gt;link&lt;/a&gt;</code></p>
<p>但这个方式要求每个链接都有onfocus属性，实在不太美观。Cody Lindley选择用getElementsByTagName对应添加，这是第一种思路。</p>
<p>在上述文章留言中有一个变种方案：既然只有IE不听话，我们用CSS Expression替换不就好了？把JS写入CSS文件，用<a href="http://www.quirksmode.org/css/condcom.html">Conditional Comment</a>避开其他浏览器（只有IE支持CSS Expression，但我有洁癖，喜欢避免CSS警告）。</p>
<p><code>a { outline:expression(hideFocus='true'); }</code></p>
<p>众所周知，<a href="http://developer.yahoo.net/blog/archives/2007/07/high_performanc_6.html">CSS Expression很耗费资源</a>，若你的页面上链接很多那就更折磨CPU了。因此我们需要一个纯CSS的方式，cssplay的Stu Nicholls老头说纯CSS的方式可行，但没几个人看懂了他给的<a href="http://www.cssplay.co.uk/menus/jigsaw.html">神奇例子</a>。各位可以用IE去测试，每块拼图都是超链接，Tab键和右键点击却不会有黑色边框。</p>
<p>我花了点时间研究它的CSS，发现原来通过在超链接里附加其他inline标签，通过CSS定位可以做到隐藏IE边框的效果。</p>
<p>首先是HTML</p>
<p><code>&lt;a href=&quot;#test&quot;&gt;&lt;span&gt;关于萌番&lt;/span&gt;&lt;/a&gt;</code></p>
<p>然后是CSS</p>
<p><code><br />
a { position:relative; margin:0 48px 0 0; }<br />
a span { position:absolute; top:-1px; left:0; cursor:pointer; white-space:nowrap; }<br />
a:hover { background:transparent; }<br />
a:hover span { background:#1C72B7; height:17px; overflow:hidden; }<br />
a:active { background:transparent; }<br />
a:active span { background:#FFF799; height:17px; overflow:hidden; color:#F4B036; }<br />
a:focus { background:transparent; }<br />
a:focus span { background:#FFF799; height:17px; overflow:hidden; color:#F4B036; }<br />
</code></p>
<p>基本原理是让超链接完全坍塌，IE的focus边框就不会显示了。把文字藏在span标签中，再绝对定位于链接区域里（不理解position的请看<a href="http://www.elated.com/articles/css-positioning/">这篇文章</a>），这样坍塌时文字就不会被隐藏了。加入white-space:nowrap避免文字换行，cursor:pointer模仿鼠标指针，最后定义span为我们希望链接显示的样式，完成对黑点边框的回避。</p>
<p class="center"><img src="http://blog.ticktag.org/wp-images/blogimage/2010/01/ie-focus-fix.jpg" alt="" title="IE修改后的:focus显示" width="442" height="39" class="alignnone size-full wp-image-5988" /></p>
<p>当然纯CSS方式也有问题：由于链接标签坍塌，我们没办法让标签宽度自适应文字长度。为避免文字相互重叠，这里使用margin增加链接的宽度，换成display:inline-block与width的组合亦可……对于特定宽度的需求，我暂时想不到任何绕过办法。</p>
<p>客栈的吹毛求疵到此为止，我可以满足的休息了。有CSS恶趣味的旅客不妨进一步意淫。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ticktag.org/2010/01/21/5985/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
