<?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://fengyouyi.com/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://fengyouyi.com</link>
	<description>荒芜之地，没有收获的喜悦。</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:09:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jQuery：几行代码实现简单选项卡TABS效果</title>
		<link>http://fengyouyi.com/173</link>
		<comments>http://fengyouyi.com/173#comments</comments>
		<pubDate>Sat, 04 Feb 2012 02:30:38 +0000</pubDate>
		<dc:creator>Ulysses</dc:creator>
				<category><![CDATA[代码]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://fengyouyi.com/?p=173</guid>
		<description><![CDATA[做个记录。 &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&#62; &#60;title&#62;尝试用 jQuery 实现选项卡功能&#60;/title&#62; &#60;style type="text/css"&#62; page { font-size: 12px; padding: 40px; } ul { padding: 0; margin: 0; list-style: none; } h2 { font-size: 12px; padding: 0; margin: 0; } .tabs { width: 403px; height: 108px; border: 1px [...]]]></description>
			<content:encoded><![CDATA[<p>做个记录。</p>
<pre class="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;尝试用 jQuery 实现选项卡功能&lt;/title&gt;
&lt;style type="text/css"&gt;
page {
	font-size: 12px;
	padding: 40px;
}
ul {
	padding: 0;
	margin: 0;
	list-style: none;
}
h2 {
	font-size: 12px;
	padding: 0;
	margin: 0;
}

.tabs {
	width: 403px;
	height: 108px;
	border: 1px solid #CCC;
}
.tabs li {
	line-height: 26px;
	height: 28px;
	float: left;
	position: relative;
}
.tabs h2 {
	text-align: center;
	background: #EEE;
	width: 100px;
	border-left: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
	cursor: pointer;
}
.tabs h2.active {
	background: #FFF;
	border-bottom: 1px solid #FFF;
}
.tabs .tab_0 h2 {
	border-left: none;
}
.tabs .tab_0 div {
	display: block;
}
.tabs div {
	background: #FFF;
	display: none;
	width: 363px;
	height: 40px;
	border-top: none;
	padding: 20px;
	position: absolute;
	top: 28px;
	left: 0;
}

.tab_0 div {
	left: 0;
}
.tab_1 div {
	left: -100px;
}
.tab_2 div {
	left: -201px;
}
.tab_3 div {
	left: -302px;
}
&lt;/style&gt;
&lt;script type="text/javascript" language="javascript" src="scripts/jquery-1.7.1.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" language="javascript"&gt;
$(function() {
	$(".tabs li").hover(function() {
		$(this).siblings().children("h2").removeClass("active");
		$(this).siblings().children("div").hide();
		$(this).children("h2").addClass("active");
		$(this).children("div").show();
	}, function() {
		//
	});
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div class="tabs"&gt;
	&lt;ul&gt;
    	&lt;li class="first tab_0"&gt;
        	&lt;h2 class="active"&gt;选项卡一&lt;/h2&gt;
            &lt;div&gt;
            	选项卡一的内容
            &lt;/div&gt;
        &lt;/li&gt;
    	&lt;li class="tab_1"&gt;
        	&lt;h2&gt;选项卡二&lt;/h2&gt;
            &lt;div&gt;
            	选项卡二的内容
            &lt;/div&gt;
        &lt;/li&gt;
    	&lt;li class="tab_2"&gt;
        	&lt;h2&gt;选项卡三&lt;/h2&gt;
            &lt;div&gt;
            	选项卡三的内容
            &lt;/div&gt;
        &lt;/li&gt;
    	&lt;li class="tab_3"&gt;
        	&lt;h2&gt;选项卡四&lt;/h2&gt;
            &lt;div&gt;
            	选项卡四的内容
            &lt;/div&gt;
        &lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://fengyouyi.com/173/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS 选择器之属性选择器</title>
		<link>http://fengyouyi.com/133</link>
		<comments>http://fengyouyi.com/133#comments</comments>
		<pubDate>Thu, 26 May 2011 03:18:47 +0000</pubDate>
		<dc:creator>Ulysses</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Selector]]></category>

		<guid isPermaLink="false">http://fengyouyi.com/?p=133</guid>
		<description><![CDATA[CSS：Attribute selectors [att] 具有 att 属性的元素，不考虑属性值。例如 img[alt] {} &#60;img src="..." alt="..." /&#62; &#60;img src="..." /&#62; 匹配第一个 IMG 元素，但是不匹配第二个 IMG 元素。 [att=val] 具有 att 属性，且属性值恰为 val 的元素。例如 a[rel="external"] {} &#60;a href="" rel="external"&#62;...&#60;/a&#62; &#60;a href="..."&#62;...&#60;/a&#62; &#60;a href="..." rel="internal"&#62;...&#60;/a&#62; 匹配第一个 A 元素，但是不匹配第二个和第三个 A 元素。 [att~=val] 具有 att 属性，该属性值由空格分隔的多个词组成（也可以仅有一个词），其中恰好有一个词为 val 的元素。例如 div[class~="item"] {} &#60;div class="item"&#62;...&#60;/div&#62; &#60;div class="current-item item"&#62;...&#60;/div&#62; &#60;div [...]]]></description>
			<content:encoded><![CDATA[<p>CSS：Attribute selectors</p>
<p><strong>[att]</strong><br />
具有 <code>att</code> 属性的元素，不考虑属性值。例如</p>
<pre class="code">img[alt] {}</pre>
<pre class="code">&lt;img src="..." alt="..." /&gt;
&lt;img src="..." /&gt;</pre>
<p>匹配第一个 IMG 元素，但是不匹配第二个 IMG 元素。</p>
<p><strong>[att=val]</strong><br />
具有 <code>att</code> 属性，且属性值恰为 <code>val</code> 的元素。例如</p>
<pre class="code">a[rel="external"] {}</pre>
<pre class="code">&lt;a href="" rel="external"&gt;...&lt;/a&gt;
&lt;a href="..."&gt;...&lt;/a&gt;
&lt;a href="..." rel="internal"&gt;...&lt;/a&gt;</pre>
<p>匹配第一个 A 元素，但是不匹配第二个和第三个 A 元素。</p>
<p><strong>[att~=val]</strong><br />
具有 <code>att</code> 属性，该属性值由空格分隔的多个词组成（也可以仅有一个词），其中恰好有一个词为 <code>val</code> 的元素。例如
<pre class="code">div[class~="item"] {}</pre>
<pre class="code">&lt;div class="item"&gt;...&lt;/div&gt;
&lt;div class="current-item item"&gt;...&lt;/div&gt;
&lt;div class="page"&gt;...&lt;/div&gt;
&lt;div class="current-item page"&gt;...&lt;/div&gt;</pre>
<p>匹配第一个和第二个 DIV 元素，但是不匹配第三个和第四个 DIV 元素。</p>
<p><strong>[att|=val]</strong><br />
具有 <code>att</code> 属性，且属性值恰好为 <code>val</code> 或是以 <code>val</code> 开头并紧跟连字符 <code>-</code> 的元素。例如
<pre class="code">a[hreflang|="zh"] {}</pre>
<pre class="code">&lt;a href="..." hreflang="zh"&gt;...&lt;/a&gt;
&lt;a href="..." hreflang="zh-CN"&gt;...&lt;/a&gt;
&lt;a href="..." hreflang="en zh"&gt;...&lt;/a&gt;
&lt;a href="..." hreflang="en zh-CN"&gt;...&lt;/a&gt;</pre>
<p>匹配第一个和第二个 A 元素，但是不匹配第三个和第四个 A 元素。</p>
<p><strong>[att^=val]</strong><br />
具有 <code>att</code> 属性，且属性值以 <code>val</code> 开头的元素。例如</p>
<pre class="code">a[href^="http://fengyouyi.com"] {}</pre>
<pre class="code">&lt;a href="http://fengyouyi.com"&gt;Home&lt;/a&gt;
&lt;a href="http://fengyouyi.com/about"&gt;About&lt;/a&gt;
&lt;a href="/about"&gt;About&lt;/a&gt;
&lt;a href="http://www.chinahtml.com/"&gt;ChinaHTML&lt;/a&gt;</pre>
<p>匹配第一个和第二个 A 元素，但是不匹配第三个和第四个 A 元素。</p>
<p><strong>[att$=val]</strong><br />
具有 <code>att</code> 属性，且属性值以 <code>val</code> 结尾的元素。例如</p>
<pre class="code">a[href$=".html"] {}</pre>
<pre class="code">&lt;a href="/about.html"&gt;About&lt;/a&gt;
&lt;a href="/about.htm"&gt;About&lt;/a&gt;</pre>
<p>匹配第一个 A 元素，但是不匹配第二个 A 元素。</p>
<p><strong>[att*=val]</strong><br />
具有 <code>att</code> 属性，且属性值中包含有 <code>val</code> 子字符串的元素。例如</p>
<pre class="code">div[class*="item"] {}</pre>
<pre class="code">&lt;div class="item"&gt;...&lt;/div&gt;
&lt;div class="currentitem"&gt;...&lt;/div&gt;
&lt;div class="page"&gt;...&lt;/div&gt;</pre>
<p>匹配第一个和第二个 DIV 元素，但是不匹配第三个 DIV 元素。</p>
]]></content:encoded>
			<wfw:commentRss>http://fengyouyi.com/133/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何计算 CSS 选择器的权重？</title>
		<link>http://fengyouyi.com/74</link>
		<comments>http://fengyouyi.com/74#comments</comments>
		<pubDate>Wed, 21 Oct 2009 06:22:17 +0000</pubDate>
		<dc:creator>Ulysses</dc:creator>
				<category><![CDATA[代码]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[specificity]]></category>

		<guid isPermaLink="false">http://fengyouyi.com/?p=74</guid>
		<description><![CDATA[虽然接触 CSS 有相当年头了，但是对于样式的优先级，一直都是一知半解的，以至于某些时候编写的 CSS 代码并不能达到预期的呈现效果。查阅官方文档后，终于对此有了一个新的认识。]]></description>
			<content:encoded><![CDATA[<p>之前在编写 CSS 的时候，多次遇到类选择器“无效”（优先级不够）的情况，例如下面的 HTML 代码：</p>
<pre class="code">&lt;div class=&quot;entry&quot;&gt;
    &lt;p&gt;段落内容。
        &lt;a class=&quot;links&quot; href=&quot;http://fengyouyi.com&quot;&gt;链接&lt;/a&gt;
    &lt;/p&gt;
&lt;/div&gt;</pre>
<p>对应 CSS 代码如下：</p>
<pre class="code">.entry a {
    color: red;
}
.links {
    color: blue;
}</pre>
<p>一直以来都简单地按照先后顺序来理解，以为这里链接会呈现蓝色，事实不然。我所理解的先后顺序，只是样式表的层叠顺序。在具体执行时，还需要考虑到样式的权重（原文作 specificity，我个人理解为权重）。</p>
<p>参考官方 CSS2.1 文档中的<a title="Calculating a selector's specificity" rel="external" href="http://www.w3.org/TR/CSS21/cascade.html#specificity">《6.4.3 Calculating a selector&#8217;s specificity》</a>部分，我们可以了解到权重计算遵循以下规则：</p>
<ul>
<li>如果是通过 ‘style’ 属性声明而不是通过选择器来声明的规则，算作 1，否则为 0 （a 位）（在 HTML 中，一个元素的“style”属性的值是一组样式规则。这些规则没有选择器，所以 a=1、b=0、c=0、d=0）；</li>
<li>计算选择器中的 ID 属性个数（b 位）；</li>
<li>计算选择器中的其它属性（选择器）和伪类个数（c 位）；</li>
<li>计算选择器中的元素名和伪元素个数（d 位）。</li>
</ul>
<p>这个计算方法仅基于选择器的形式。需要特别说明的是，“[id=p33]”形式的选择器是算作属性选择器的（a=0, b=0, c=1, d=0），即使在源文档的 DTD 中 id 属性被定义为“ID”。</p>
<p>将四个数字串联成 a-b-c-d ，就可以获得选择器的权重了。</p>
<p>我们要如何理解这个呢？其实很简单。所有的选择器的权重都用 a-b-c-d 的形式表示，我们只要按照从 a 到 d 四个位置的数字，对应比较就可以得到权重顺序了。例如 1-0-0-0 的权重高于 0-2-1-2 ，因为在 a 位置，前者为 1 ，后者为 0 ，这样后面的就无须比较了。</p>
<p><strong>更新</strong></p>
<p><em>2009-10-21 23:38</em></p>
<p>看到 junp 在这里的评论，我才醒悟过来，他给我参考的那篇文章中那句“HTML标记的权重是 1，CLASS的权重是 10，ID的权重是 100，继承的权重为 0 ”，使我误以为作者将这几组值当作十进制来处理了。这里，如果按照 a-b-c-d 的形式，我们需要将其理解为“HTML标记的权重是 0-0-0-1，CLASS的权重是 0-0-1-0，ID的权重是 0-1-0-0，继承的权重为 0-0-0-0 ”。所以最底部的那部分更新内容，就当作加深了解的范例吧。</p>
<p>对原作者飘零雾雨表示歉意，同时也对 junp 表示由衷的感谢。</p>
<p><em>2009-10-21 14:22</em></p>
<p><a title="站长资讯论坛" rel="external" href="http://bbs.chinahtml.com/">站长资讯论坛</a>上的 <a title="junp's blog" rel="external" href="http://junp.yo2.cn/">junp</a> 给了我一篇<a title="老调重弹的CSS优先级 " rel="external" href="http://blog.doyoe.com/article.asp?id=133">网络上的文章</a>，也是介绍这个的。但是看了作者计算权重的方法，好像是不正确的。因为按照他的方式，得到的最终权重值是 a*1000 + b*100 + c*10 + d 。这个是不正确的。我们可以构想一下，如果两个选择器，A 在 d 位上有 11 个元素名，例如 div div div div div div div div div div div ，而 B 在 c 位上只有 1 个属性选择器，例如 p[id="p33"] ，按照他的计算方式，A 的权重为 11 ，B 的权重为 10 。参考下面 HTML 和 CS 代码：</p>
<pre class="code">&lt;div&gt;
  &lt;div&gt;
    &lt;div&gt;
      &lt;div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;div&gt;
              &lt;div&gt;
                &lt;div&gt;
                  &lt;div&gt;
                    &lt;div&gt;
                      &lt;p id=&quot;p33&quot;&gt;看看文本显示的颜色&lt;/p&gt;
                    &lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
<pre class="code">div div div div div div div div div div div {
    color: red;
}
p[id="p33"] {
    color: blue;
}</pre>
<p>结果是蓝色。</p>
<p>所以权重的计算，是按“位”比较，而不是十进制的。不过作者也提到了“按照从左到右的顺序逐位比较”，或许只是表述不清吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://fengyouyi.com/74/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>IE6、IE7 和 IE8 中的 CSS 兼容性速查表</title>
		<link>http://fengyouyi.com/51</link>
		<comments>http://fengyouyi.com/51#comments</comments>
		<pubDate>Mon, 19 Oct 2009 01:52:51 +0000</pubDate>
		<dc:creator>Ulysses</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[Compatibility]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[兼容性]]></category>

		<guid isPermaLink="false">http://fengyouyi.com/?p=51</guid>
		<description><![CDATA[来源：Visual Cheat Sheet: CSS Compatibility with Internet Explorer 6, 7 and 8（BlogSpot 被和谐，访问需要翻墙） 这份兼容性速查表对比了 Internet Explorer 6、7 和 8 中的 CSS2.1、CSS3 兼容情况。 GIF：第一页 第二页 PDF：第一页 第二页 本站：第一页 第二页 你可以用 A3 纸来打印上面的内容。 先前腾讯的 ISD Webteam 也发布了一份 CSS3 参考手册（中文版）（本地备份），CHM 格式，大家也可以下载了备用。]]></description>
			<content:encoded><![CDATA[<p>来源：<a title="Visual Cheat Sheet: CSS Compatibility with Internet Explorer 6, 7 and 8" rel="external" href="http://tutorialfeed.blogspot.com/2009/10/visual-cheat-sheet-css-compatiblity.html">Visual Cheat Sheet: CSS Compatibility with Internet Explorer 6, 7 and 8</a>（BlogSpot 被和谐，访问需要翻墙）</p>
<p>这份兼容性速查表对比了 Internet Explorer 6、7 和 8 中的 CSS2.1、CSS3 兼容情况。</p>
<p>GIF：<a rel="external" href="http://docs.google.com/Doc?docid=0AXI-OmZqvTr5ZGhxaDZtOXBfMjk4YzI1bmM2ZnQ&amp;hl=en">第一页</a> <a rel="external" href="http://docs.google.com/Doc?docid=0AXI-OmZqvTr5ZGhxaDZtOXBfMzAwY2tuN3dyZjc&amp;hl=en">第二页</a><br />
PDF：<a rel="external" href="http://docs.google.com/fileview?id=0B3I-OmZqvTr5NGQ2ZDUxMWUtN2RkNi00MWY1LWJkY2MtM2JiZTllYjY4ODE1&amp;hl=en">第一页</a> <a rel="external" href="http://docs.google.com/fileview?id=0B3I-OmZqvTr5ZWY5ZTNmNDUtZjMwNC00OGIyLTlmZDYtNzcwY2I0MTNiYTZh&amp;hl=en">第二页</a></p>
<p>本站：<a title="IE6、IE7 和 IE8 中的 CSS 兼容性速查表（第一页）" href="http://fengyouyi.com/attachments/2009/10/css_compatibility_ie6_7_8_01.gif">第一页</a> <a title="IE6、IE7 和 IE8 中的 CSS 兼容性速查表（第二页）" href="http://fengyouyi.com/attachments/2009/10/css_compatibility_ie6_7_8_02.gif">第二页</a></p>
<p>你可以用 A3 纸来打印上面的内容。</p>
<p>先前腾讯的 ISD Webteam 也发布了一份 <a title="CSS3 参考手册（中文版）" rel="external" href="http://webteam.tencent.com/css3/">CSS3 参考手册（中文版）</a>（<a title="CSS3 参考手册（中文版）" href="http://fengyouyi.com/attachments/2009/10/css3.0manual.chm_.zip">本地备份</a>），CHM 格式，大家也可以下载了备用。</p>
]]></content:encoded>
			<wfw:commentRss>http://fengyouyi.com/51/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

