<?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>5ivedance &#187; 选择符</title>
	<atom:link href="http://5ivedance.com/tag/selectors/feed/" rel="self" type="application/rss+xml" />
	<link>http://5ivedance.com</link>
	<description>Sincerity</description>
	<lastBuildDate>Fri, 16 Apr 2010 08:39:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>若干IEbug及解决方案</title>
		<link>http://5ivedance.com/development/how-to-fix-several-internet-explorer-6-bugs/</link>
		<comments>http://5ivedance.com/development/how-to-fix-several-internet-explorer-6-bugs/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:09:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://5ivedance.com/?p=1249</guid>
		<description><![CDATA[这篇东西写了很久，大概半个月了，开始想详尽的写完所有的IEbug，但是要回家了，暂时先把这些放出来吧。写的过程参考了很多文章，比以前明白了很多东西，也发现了很多不知道的问题，如果您看完了，发现任何错误疑点、任何意见观点可以评论或者发邮件给我。
命中注定总有一个浏览器作为复仇女神来到世界各地的开发者中，在web标准运动初期，这个角色是Netscape Navigator 4，垂死挣扎就是不肯死去，阻碍着现代标准的进程；今天这个角色被Internet Explorer 6这位邪恶的坏同学代替了。——Jeremy Keith


盒模型（The Box Model）
我这里把盒模型真正给丫立体化（特殊到正方体了怎么样）：
有一个正方体宝贝比如是传说中象征永恒的水晶，为了保护它需要一个精美的盒子。为了防止碰撞，在盒子和水晶之间预留了空间来放海绵。在盒子外面再加一层泡沫塑料，也是为了防止水晶磕磕碰碰。我们现在把这宝贝一边的宽度定位width:60px(可以假想为60cm)，盒子里面的海绵厚度padding:15px（也就是说海绵厚度为15cm），盒子的皮厚border:5px（包装够结实——5cm厚），那需要的盒子边长就是60+2*15+2*5=100px（盒子的边长是100cm），水晶盒子外面的泡沫塑料是margin:10px（外面再包10cm厚的泡沫，结实！盒模型的问题和它无关，先把他撕下来扔掉好了-__-）

对于标准的盒模型来说：他们的盒子是看到的实际的盒子，是包含了海绵和水晶的盒子。但是早期的IE看到的只是字面意思上的width。
解决方案：
在HTML页面里面加入完整的&#60;!DOCTYPE&#62;，IE6会切换到近似乎标准的模式，这样IE6就会正确的解释盒模型。如果你不这样做，也可以在定义了width的元素里面不用padding和border，在被封闭的元素里面随意的运用。
我一般解决这个问题的方法是，不在boxes里面用只在layout用.如果box里面有文字在
标签里，我会在p元素直接用padding，跳过这个问题，但是这是可行的。——css-tricks
双边距问题（Double-Margin）
几乎所有的有些经验但经验不足的同学都遇到过这个悲剧的现象，浮动div嵌套着用的不亦乐乎，margin-padding此起彼伏。定了个div想和外部的div保持距离，就在里面的div来个margin，这时候就产生了传说中丑名远播的双边距问题：
未修正代码：

#selector{
width:200px;
height:50px;
float:left;
margin:5px 20px;
border:#00a6cc;
}


修正代码：

#selector{
width:200px;
height:50px;
float:left;
margin:5px 20px;
border:#00a6cc;
      display:inline;/*hi,-___-kill the double margin bug*/
}

在做BI十周年的时候我在父元素用了padding，在IE6标准模式下这样做也是一种办法。
最小/大宽/高（min-width/max-width and min-height/max-height）
IE6不能解释最小最大宽高，其实我觉得这用的不太多。对图片在站点中的重要问题有很多不知道，以后会慢慢学习。很多时候缩略图都是生成的图片，大幅图片直接缩小感觉会比较糟糕。
但是IE6会像标准浏览器解释min-width（min-height）一样解释width（height），所以可以利用IE6不能识别的!important或者其他IE6不能识别的高级选择符来hack：

#selector{
min-width:100px;
width:auto !important;/*IE6区分无法识别*/
width:100;
}


#selector{
min-width:100px;
width:100;
}
html>body #slector{/*IE6区分无法识别-IE7?*/
height:auto;
}

因为IE6把width/height处理了min-width/min-height，所以max-width/max-height没办法这样做了，所幸IE有自己的私有属性expressions，但是这个东西严重影响浏览器性能，但是还是摘来看看：

/*写给 IE6 的max-width*/
* html div.max-width {
  width: expression(document.body.clientWidth > 499 ? "500px" : "auto");
}
/*写给标准浏览器的 max-width*/
div.max-width {
  max-width: 500px;
}

max-width

/*写给 IE6 的max-height*/
* html div.max-height {
  height: expression(this.scrollHeight > 499 ? "500px" [...]]]></description>
			<content:encoded><![CDATA[<p>这篇东西写了很久，大概半个月了，开始想详尽的写完所有的IEbug，但是要回家了，暂时先把这些放出来吧。写的过程参考了很多文章，比以前明白了很多东西，也发现了很多不知道的问题，如果您看完了，发现任何错误疑点、任何意见观点可以评论或者<a href="http://5ivedance.com/about/#contact" target="_blank">发邮件</a>给我。</p>
<blockquote><p>命中注定总有一个浏览器作为复仇女神来到世界各地的开发者中，在web标准运动初期，这个角色是Netscape Navigator 4，垂死挣扎就是不肯死去，阻碍着现代标准的进程；今天这个角色被Internet Explorer 6这位邪恶的坏同学代替了。——<a rel="me" href="http://adactio.com/">Jeremy Keith</a>
</p></blockquote>
<p><span id="more-1249"></span></p>
<h3>盒模型（The Box Model）</h3>
<p>我这里把盒模型真正给丫立体化（特殊到正方体了怎么样）：</p>
<blockquote><p>有一个正方体宝贝比如是传说中象征永恒的水晶，为了保护它需要一个精美的盒子。为了防止碰撞，在盒子和水晶之间预留了空间来放海绵。在盒子外面再加一层泡沫塑料，也是为了防止水晶磕磕碰碰。我们现在把这宝贝一边的宽度定位width:60px(可以假想为60cm)，盒子里面的海绵厚度padding:15px（也就是说海绵厚度为15cm），盒子的皮厚border:5px（包装够结实——5cm厚），那需要的盒子边长就是60+2*15+2*5=100px（盒子的边长是100cm），水晶盒子外面的泡沫塑料是margin:10px（外面再包10cm厚的泡沫，结实！盒模型的问题和它无关，先把他撕下来扔掉好了-__-）</p></blockquote>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/The-Box-Model.gif" alt="The-Box-Model" title="The-Box-Model" width="500" height="378" class="alignnone size-full wp-image-1259" /></p>
<p>对于标准的盒模型来说：他们的盒子是看到的实际的盒子，是包含了海绵和水晶的盒子。但是早期的IE看到的只是字面意思上的width。</p>
<h4>解决方案：</h4>
<p>在HTML页面里面加入完整的&lt;!DOCTYPE&gt;，IE6会切换到近似乎标准的模式，这样IE6就会正确的解释盒模型。如果你不这样做，也可以在定义了width的元素里面不用padding和border，在被封闭的元素里面随意的运用。</p>
<blockquote><p>我一般解决这个问题的方法是，不在boxes里面用只在layout用.如果box里面有文字在
<p>标签里，我会在p元素直接用padding，跳过这个问题，但是这是可行的。——css-tricks</p></blockquote>
<h3>双边距问题（Double-Margin）</h3>
<p>几乎所有的有些经验但经验不足的同学都遇到过这个悲剧的现象，浮动div嵌套着用的不亦乐乎，margin-padding此起彼伏。定了个div想和外部的div保持距离，就在里面的div来个margin，这时候就产生了传说中丑名远播的双边距问题：</p>
<p>未修正代码：</p>
<pre name="code" class="css">
#selector{
width:200px;
height:50px;
float:left;
margin:5px 20px;
border:#00a6cc;
}
</pre>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/the-double-margin.gif" alt="" title="the-double-margin" width="500" height="400" class="alignnone size-full wp-image-1266" /></p>
<p>修正代码：</p>
<pre name="code" class="css">
#selector{
width:200px;
height:50px;
float:left;
margin:5px 20px;
border:#00a6cc;
      display:inline;/*hi,-___-kill the double margin bug*/
}
</pre>
<p>在做BI十周年的时候我在父元素用了padding，在IE6标准模式下这样做也是一种办法。</p>
<h3>最小/大宽/高（min-width/max-width and min-height/max-height）</h3>
<p>IE6不能解释最小最大宽高，其实我觉得这用的不太多。对图片在站点中的重要问题有很多不知道，以后会慢慢学习。很多时候缩略图都是生成的图片，大幅图片直接缩小感觉会比较糟糕。</p>
<p>但是IE6会像标准浏览器解释min-width（min-height）一样解释width（height），所以可以利用IE6不能识别的!important或者其他IE6不能识别的高级选择符来hack：</p>
<pre name="code" class="css">
#selector{
min-width:100px;
width:auto !important;/*IE6区分无法识别*/
width:100;
}
</pre>
<pre name="code" class="css">
#selector{
min-width:100px;
width:100;
}
html>body #slector{/*IE6区分无法识别-IE7?*/
height:auto;
}
</pre>
<p>因为IE6把width/height处理了min-width/min-height，所以max-width/max-height没办法这样做了，所幸IE有自己的私有属性expressions，但是这个东西严重影响浏览器性能，但是还是摘来看看：</p>
<pre name="code" class="css">
/*写给 IE6 的max-width*/
* html div.max-width {
  width: expression(document.body.clientWidth > 499 ? "500px" : "auto");
}
/*写给标准浏览器的 max-width*/
div.max-width {
  max-width: 500px;
}
</pre>
<p><em>max-width</em></p>
<pre name="code" class="css">
/*写给 IE6 的max-height*/
* html div.max-height {
  height: expression(this.scrollHeight > 499 ? "500px" : "auto");
}
/*写给标准浏览器的 max-height*/
div.max-height {
  max-height: 500px;
}
</pre>
<p><em>max-height</em></p>
<blockquote>
<h3>高级选择符可参考之前的一些文章</h3>
<ul>
<li><a href="http://5ivedance.com/development/css-selector-1-attribute-selectors/">CSS选择符之一属性选择符</a></li>
<li><a href="http://5ivedance.com/development/css-selector-2-child-selector/">CSS选择符之二子对象选择符</a></li>
</ul>
</blockquote>
<h3>清除浮动</h3>
<p>首先我们来看看什么时候会遇到这个问题，来看初始的html结构和css（下面的测试将会在Firefox3.5以及IETester中的IE6和win系统版IE8/IE7兼容模式进行）：</p>
<pre name="code" class="css">
body{
color:#da444f;/*为了让字变色*/
}
*{
margin:0;
padding:0;/*一个小小的cssReset*/
}
.wrap{
border:1px solid #da444f;
background:#e4faff;
width:350px;/*添加不添加这个宽度呢，先填上*/
padding:10px;/*添加这个是为了边框和内容有点点距离*/
}
.column-left{
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
.column-right{
margin-left:10px;
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
</pre>
<pre name="code" class="html">
<div class="wrap">
<div class="column-left">column-left</div>
<div class="column-right">column-right</div>
</div>
</pre>
<p>此时的显示无差异，均如下图所示：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/no-float.gif" alt="" title="no-float" width="500" height="295" class="alignnone size-full wp-image-1287" /></p>
<h4>不清楚浮动是怎么样的情况：</h4>
<p>这个样子显然不是设计所需要的，两栏布局应该是一左一右并排才是。这时候不得不添加<code>float:left;</code>。在添加浮动我想多做一下测试，到底会有什么不同？单在左栏添加、单在右栏添加、两栏同时添加。</p>
<p><strong>先看单在左栏添加的状况</strong>，此时左栏样式添加了float:left：</p>
<pre name="code" class="css">
.column-left{
        float:left;
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
</pre>
<p>这时候IE6显示如下：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-left-float-ie6.gif" alt="" title="only-left-float-ie6" width="500" height="196" class="alignnone size-full wp-image-1288" /></p>
<p>IE7显示如下：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-left-float-ie7.gif" alt="" title="only-left-float-ie7" width="500" height="196" class="alignnone size-full wp-image-1289" /></p>
<p>IE8和FF3.5显示和相同，如下：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-left-float-ie8-ff.gif" alt="" title="only-left-float-ie8-ff" width="500" height="196" class="alignnone size-full wp-image-1290" /></p>
<p>可以看出IE67那抽风的样子，完全不可理喻，其他结论先不提。<br />
<strong>下面再测试单在右栏添加float:left;：</strong></p>
<pre name="code" class="css">
.column-right{
        float:left;
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
</pre>
<p>这次IE6显示如下：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-right-float-ie6.gif" alt="" title="only-right-float-ie6" width="500" height="293" class="alignnone size-full wp-image-1291" /><br />
（这里插播一则国际新闻：这个刚才为什么为什么这个和下面的不一样，包括刚才那个，其实呢，这个也是前文提到的双边距bug，这里只要在column-right加上display:inline;就可以解决了）<br />
IE7显示：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-right-float-ie7.gif" alt="" title="only-right-float-ie7" width="500" height="293" class="alignnone size-full wp-image-1293" /></p>
<p>IE8和FF3.5显示相同（实际上文字的字母的距离以及IE文字毛茸茸的样子是因为IE对字体进行了特殊的处理），如下</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/only-right-float-ie8-ff.gif" alt="" title="only-right-float-ie8-ff" width="500" height="293" class="alignnone size-full wp-image-1294" /></p>
<p><strong>下面将测试左右栏都添加float:left;的情况：</strong></p>
<p>IE6/7显示相同为：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/all-float-ie6.gif" alt="" title="all-float-ie6" width="500" height="183" class="alignnone size-full wp-image-1295" /></p>
<p>IE8/FF显示为：</p>
<p><img src="http://5ivedance.com/wp-content/uploads/2010/01/all-float-ie8-ff.gif" alt="" title="all-float-ie8-ff" width="500" height="183" class="alignnone size-full wp-image-1296" /></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-休息一下，来个分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>有同学好奇的发现：<span style="color:red;font-weight:bold;">在没有添加任何清除浮动的情况下，IE6/7显示的是正确的！只有FF3.5/IE8才有问题！</span>这是因为另外一个应该被人知道的微软私有属性<span style="color:red;font-weight:bold;">hasLayout</span>搞的鬼。这里简单的介绍下：IE67支持这个东西，这个属性会被一些诸如width:*px的属性激活，激活这个东西IE会突然听话很多，更多介绍先推荐一篇翻译文章<a href="http://bbs.blueidea.com/thread-2636904-1-1.html" target="_blank">[译文]On having layout</a>，其他的请看参考文章。这个属性到IE8就不支持了，所以上边最后的测试显示IE8,FF得到了我们预料的悲剧。我开始为了截图方便在.wrap添加了width:350px的属性。</p>
<p>下面再来看看<strong>没有这个width:350px的时候，左右都不添加浮动的情况</strong>，样式如下：</p>
<pre name="code" class="css">
body{
color:#da444f;/*为了让字变色*/
}
*{
margin:0;
padding:0;/*一个小小的cssReset*/
}
.wrap{
border:1px solid #da444f;
background:#e4faff;
/*此处去掉width:350px*/
padding:10px;
}
.column-left{
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
.column-right{
margin-left:10px;
border:1px solid #00a6cc;
background:#ffdddf;
width:150px;
height:100px;
}
</pre>
<p>浏览器均显示为：<br />
<a rel="lightbox" href="http://5ivedance.com/wp-content/uploads/2010/01/no-float-no-wrap-width.gif" rel="lightbox[g1249]"><img src="http://5ivedance.com/wp-content/uploads/2010/01/no-float-no-wrap-width-500x119.gif" alt="" title="no-float-no-wrap-width" width="500" height="119" class="alignnone size-medium wp-image-1304" /></a><br />
此时右栏在IE6并没有出现双边距问题，因为它不是浮动元素，其他单栏测试省略。<br />
再来测试双栏添加float:left;wrap不设宽度，浏览器均如下所示：<br />
<a rel="lightbox" href="http://5ivedance.com/wp-content/uploads/2010/01/all-float-no-wrap-width.gif" rel="lightbox[g1249]"><img src="http://5ivedance.com/wp-content/uploads/2010/01/all-float-no-wrap-width-500x86.gif" alt="" title="all-float-no-wrap-width" width="500" height="86" class="alignnone size-medium wp-image-1305" /></a><br />
再来测试双栏添加float:left;不设wrap宽度不设wrap内边距：（这样对比下，更直观）<br />
<a rel="lightbox" href="http://5ivedance.com/wp-content/uploads/2010/01/all-float-no-wrap-width-no-padding.gif" rel="lightbox[g1249]"><img src="http://5ivedance.com/wp-content/uploads/2010/01/all-float-no-wrap-width-no-padding-500x86.gif" alt="" title="all-float-no-wrap-width-no-padding" width="500" height="86" class="alignnone size-medium wp-image-1307" /></a></p>
<p>说了这么多，自己越来越清晰，但不知道这样能不能讲明白，但是测试浮动会出很多状况。所以，传说<strong>浮动会产生一堆变态问题，那绝对是个事实</strong>！这个时候就会遇到怎么处理这些浮动的问题了。</p>
<h4>解决方案——怎么清除浮动：</h4>
<p>清除之后如图所示：</p>
<p><a rel="lightbox" href="http://5ivedance.com/wp-content/uploads/2010/01/all-float-clear.gif" rel="lightbox[g1249]"><img src="http://5ivedance.com/wp-content/uploads/2010/01/all-float-clear-500x86.gif" alt="" title="all-float-clear" width="500" height="86" class="alignnone size-medium wp-image-1312" /></a></p>
<p><strong>附加标签</strong></p>
<p>W3C推荐的方法就是这个方法，这个方法在浮动元素末尾添加一个空标签：</p>
<pre name="code" class="html">
<br style="clear:both;" />
</pre>
<p>或者div之类的也可以</p>
<pre name="code" class="html">
<xxx style="clear:both;"></xxx>
</pre>
<p>这样添加额外的结构，如果不介意有些多余的结构也不会有任何问题。</p>
<p><strong>clearfix</strong></p>
<p>将下面代码写入css，在包含content的div加入clearfix：</p>
<pre name="code" class="css">
.clearfix:after {
  content: " ";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.clearfix { display: inline-table; }

/* Hides from IE-mac \*/
* html .clearfix {height: 1%;}
.clearfix { display: block; }
/* End hide from IE-mac */
</pre>
<p>像下面这样</p>
<pre name="code" class="html">
<div class="wrap">
<div class="column-left">column-left</div>
<div class="column-right">column-right</div>
</div>
</pre>
<blockquote>
<h3>参考文章</h3>
<ul>
<li><a href="http://www.sitepoint.com/blogs/2009/03/06/10-fixes-for-ie6-problems/">10 Fixes That Solve IE6 Problems</a></li>
<li><a href="http://net.tutsplus.com/tutorials/html-css-techniques/solving-5-common-css-headaches/">Solving 5 Common CSS Headaches</a></li>
<li><a href="http://net.tutsplus.com/tutorials/html-css-techniques/9-most-common-ie-bugs-and-how-to-fix-them/">9 Most Common IE Bugs and How to Fix Them</a></li>
<li><a href="http://sixrevisions.com/web-development/definitive-guide-to-taming-the-ie6-beast/">Definitive Guide to Taming the IE6 Beast</a></li>
<li><a href="http://www.dustindiaz.com/min-height-fast-hack/">Min-Height Fast Hack</a></li>
<li><a href="http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack/">Lessons Learned Concerning the Clearfix CSS Hack</a></li>
<li><a href="http://www.positioniseverything.net/easyclearing.html">Clearing a float container without source markup</a></li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/how-to-fix-several-internet-explorer-6-bugs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>在IE主流时代诗意地编码（四）</title>
		<link>http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-4/</link>
		<comments>http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-4/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 15:04:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://5ivedance.com/?p=1203</guid>
		<description><![CDATA[工具集
Modernizr

如果你使用高级CSS属性，Modernizr 将是一个非常有用小型JavaScript。它为你的页面html标签添加一些类（class），来测试浏览器是否支持一些特定的CSS属性，像：

 * @font-face
* rgba()
* hsla()
* border-image
* border-radius
* box-shadow
* Multiple backgrounds
* opacity
* CSS animations
* CSS columns
* CSS gradients
* CSS reflections
* CSS 2-D transforms
* CSS 3-D transforms
* CSS transitions
比如border-image，当一个页面加载到的浏览器支持它，将会返回borderimage，如果浏览器不支持将返回no-borderimage。
Modernizr 不会使不支持这些属性的浏览器变的支持，但是给出的重要信息（在表单里的类）是可以用在样式表里面——引用独立选择符和属性到元素。
IE-7.js
IE-7.js使得IE5+的行为像IE8,支持更多的高级选择符并修复了部分渲染bug，这里有部分来自creator’s websitee的摘录：

添加了高级选择符的支持：
 &#62;, + and ~; attribute selectors; :hover, :active, :focus for all elements; :first-child, :last-child,   nly-child, :nth-child, :nth-last-child; :checked, :disabled, :enabled; :empty, :not; :before, [...]]]></description>
			<content:encoded><![CDATA[<h3>工具集</h3>
<h4>Modernizr</h4>
<p><a href="http://www.modernizr.com/"><img class="alignnone size-full wp-image-1204" title="15modernizr" src="http://5ivedance.com/wp-content/uploads/2010/01/15modernizr.jpg" alt="" width="500" height="217" /></a></p>
<p>如果你使用高级CSS属性，<a href="http://www.modernizr.com/">Modernizr</a> 将是一个非常有用小型JavaScript。它为你的页面html标签添加一些类（class），来测试浏览器是否支持一些特定的CSS属性，像：<br />
<span id="more-1203"></span></p>
<ul> * @font-face<br />
* rgba()<br />
* hsla()<br />
* border-image<br />
* border-radius<br />
* box-shadow<br />
* Multiple backgrounds<br />
* opacity<br />
* CSS animations<br />
* CSS columns<br />
* CSS gradients<br />
* CSS reflections<br />
* CSS 2-D transforms<br />
* CSS 3-D transforms<br />
* CSS transitions</ul>
<p>比如border-image，当一个页面加载到的浏览器支持它，将会返回borderimage，如果浏览器不支持将返回no-borderimage。</p>
<p>Modernizr 不会使不支持这些属性的浏览器变的支持，但是给出的重要信息（在表单里的类）是可以用在样式表里面——引用独立选择符和属性到元素。</p>
<h4>IE-7.js</h4>
<p><a href="http://code.google.com/p/ie7-js/">IE-7.js</a>使得IE5+的行为像IE8,支持更多的高级选择符并修复了部分渲染bug，这里有部分来自<a href="http://dean.edwards.name/IE7/">creator’s website</a>e的摘录：</p>
<blockquote>
<p>添加了高级选择符的支持：</p>
<pre name="code" class="html"> <code>&gt;</code>, <code>+</code> and <code>~</code>; attribute selectors; <code>:hover</code>, <code>:active</code>, <code>:focus</code> for all elements; <code>:first-child</code>, <code>:last-child</code>, <code> <img src='http://5ivedance.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-child</code>, <code>:nth-child</code>, <code>:nth-last-child</code>; <code>:checked</code>, <code>:disabled</code>, <code>:enabled</code>; <code>:empty</code>, <code>:not</code>; <code>:before</code>, <code>:after</code>, <code>:content</code>; <code>:lang</code>
</pre>
</p>
<p>使用标准盒模型。</p>
<p>支持 <code>min-</code> 和 <code>max-width</code> 还有 <code>-height</code>.</li>
<p>支持PNG alpha透明（但是没解决PNG背景重复和背景定位时的问题）。</p>
</blockquote>
<p>缺点是这个技术需要可运行javascript的环境，这是不幸的。所以，小心给那些设置js不可用的用户可接受的站点版本，特别是一些脚本不能执行，或者最坏的情况是，缺少JavaScript将破坏站点的设计。</p>
<h3>实例</h4>
<p>常言道，说起来容易做起来难。所以，我们用一些优秀的例子将刚才提到这些新东西付诸实践。这是一些我们访问的在不同浏览器渲染结果不同的网站。在某些情况下，差别显而易见，但是开发人员选择接受这些不同。</p>
<h4>Twitter</h4>
<p><a href="http://twitter.com/"><img src="http://5ivedance.com/wp-content/uploads/2010/01/16twitter-1.jpg" alt="" title="16twitter-1" width="500" height="323" class="alignnone size-full wp-image-1208" /></a><br />
<em>Twitter &#8211; Firefox </em><br />
<a href="http://twitter.com/"><img src="http://5ivedance.com/wp-content/uploads/2010/01/16twitter-2.jpg" alt="" title="16twitter-2" width="500" height="329" class="alignnone size-full wp-image-1209" /></a><br />
<em>Twitter &#8211; IE6</em></p>
<h4>WordPress</h4>
<p><a href="http://wordpress.org/"><img src="http://5ivedance.com/wp-content/uploads/2010/01/17wordpress-1.jpg" alt="" title="17wordpress-1" width="500" height="301" class="alignnone size-full wp-image-1210" /></a><em>WordPress &#8211; Firefox</em><br />
<a href="http://wordpress.org/"><img src="http://5ivedance.com/wp-content/uploads/2010/01/17wordpress-2.jpg" alt="" title="17wordpress-2" width="500" height="301" class="alignnone size-full wp-image-1211" /></a><em>WordPress &#8211; IE6</em></p>
<h4>WWF</h4>
<p><a href="http://panda.org/"><img src="http://5ivedance.com/wp-content/uploads/2010/01/18wwf-1.jpg" alt="" title="18wwf-1" width="500" height="238" class="alignnone size-full wp-image-1212" /></a><br />
<em>WWF &#8211; Firefox</em><br />
<img src="http://5ivedance.com/wp-content/uploads/2010/01/18wwf-2.jpg" alt="" title="18wwf-2" width="500" height="238" class="alignnone size-full wp-image-1213" /><br />
<em>WWF &#8211; IE6</em></p>
<h3>总结</h3>
<p>记得写这篇文章的初衷是想教大家怎么样hack IE还有处理它的缺陷甚至如何利用JavaScript实现效果。（现在）恰恰相反，这是篇解释设计建立站点需要知道的跨浏览器差异。</p>
<p>你没有看到过用户因为看到Twitter或者WordPress没有圆角而引起的暴动吧；他们甚至没有感到失落，因为那些差异<br />
基本没有破坏站点。人民仍然可以使用站点获得良好体验。大多数情况下，他们甚至没注意到这些！</p>
<p>所有我们需要做的是客气但严谨的向客户解释，这样就是不断进化的web的贡献。</p>
<h3>目录</h3>
<blockquote><ul>
<li><a href="http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-1/">在IE主流时代诗意地编码（一）</a></li>
<li><a href="http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-2/">在IE主流时代诗意地编码（二）</a></li>
<li><a href="http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-3/">在IE主流时代诗意地编码（三）</a></li>
<li><a href="http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-4/">在IE主流时代诗意地编码（四）</a></li>
<li>本文译自 Smashing Magazin [ <a href="http://www.smashingmagazine.com/2009/12/01/how-to-support-internet-explorer-and-still-be-cutting-edge/"> 英文原文</a> ]</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/support-internet-explorer-still-be-cutting-edge-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS选择符之四伪类和伪对象</title>
		<link>http://5ivedance.com/development/css-selector-4-pseudo-classes-and-pseudo-elements/</link>
		<comments>http://5ivedance.com/development/css-selector-4-pseudo-classes-and-pseudo-elements/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:24:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=48</guid>
		<description><![CDATA[可以运用伪类和伪对象来设置那些在DOM中不能操作的信息的样式。例如，通常需要格式化一个段落的第一行，或者一个标题的首字母。
伪类
伪类是通过对象的特征对其进行格式化的，而不是通过它们的标识符、属性或者内容。
伪类：first-child将匹配一个元素的第一个子对象。假如你打算让新闻的第一段更具有视觉效果。如果新闻出现在类名（class）为news的&#60;div&#62;元素中，下面的规则将格式化每篇新闻的第一个&#60;p&#62;元素：
div.news p:first-child {
font-weight: bold;
}
&#60;div class=“news&#8220;&#62;
&#60;p&#62;Hi, 认识圣斗士吗? &#60;/p&#62;
&#60;p&#62;星矢穿着神圣衣进入哈迪斯的神殿后面的事情怎么样了?&#60;/p&#62;
&#60;/div&#62;
动态伪类（dynamic pseudo-class ）是伪类的一个子集。它们指那些有某些动态特征的伪类。运用它们，能够根据站点访问者的特定行为来格式化对象。
：focus将应用于那些获得焦点的对象。例如，当访问者点击了一个表单或者一个标签页中的输入框的时候：
input[type=text] : focus {
color: #f00;
background-color:#666;
}
用伪类：lang可以格式化特定语言（或许与文档主体不同的语言）内容中的对象。例如，下面的规则将一个迷你国旗放在任何汉语&#60;blockquote&#62;上：
blockquote:lang(cn) {
padding-right : 30px;
background: url(images/cn.png) no-repeat right top;
}
&#60;blockquote lang=”cn&#8221;&#62;
&#60;p&#62;哈尔很帅，黄头发时候最帅。冈田秒子长大的样子好丑，真的很丑的，奇怪，怎么可以那么丑，笑的就更丑了。&#60;/p&#62;
&#60;/blockquote&#62;
伪对象
伪对象同样能格式化那些不能作为DOM节点的文档部分。
伪对象：first-line将以段落的第一行作为目标。任何第一行中的字数将会随着文字在浏览器中的大小而改变。
下面的规则应用于页面中所有段落的第一行：
p:first-line {
font-style: italic:
}
伪对象：first-letter能够将元素的第一个字母或者数字作为目标。接下来的规则将用到类名为introduction的&#60;p&#62;元素中的第一个字符：
p.introduction:first-letter {
font-weight: bold:
font-size:400%;
}
]]></description>
			<content:encoded><![CDATA[<p>可以运用伪类和伪对象来设置那些在DOM中不能操作的信息的样式。例如，通常需要格式化一个段落的第一行，或者一个标题的首字母。</p>
<h2><span style="color: #993300;">伪类</span></h2>
<p>伪类是通过对象的特征对其进行格式化的，而不是通过它们的标识符、属性或者内容。</p>
<p>伪类：first-child将匹配一个元素的第一个子对象。假如你打算让新闻的第一段更具有视觉效果。如果新闻出现在类名（class）为news的&lt;div&gt;元素中，下面的规则将格式化每篇新闻的第一个&lt;p&gt;元素：</p>
<p><span style="color: #993300;">div<strong>.news p:first-child</strong> {</span></p>
<p><span style="color: #993300;">font-weight: bold;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;div <strong>class=“news</strong>&#8220;&gt;</span></p>
<p><span style="color: #993300;"><strong>&lt;p&gt;Hi, 认识圣斗士吗? &lt;/p&gt;</strong></span></p>
<p><span style="color: #993300;">&lt;p&gt;星矢穿着神圣衣进入哈迪斯的神殿后面的事情怎么样了?&lt;/p&gt;</span></p>
<p><span style="color: #993300;">&lt;/div&gt;</span></p>
<p><span style="color: #000000;">动态伪类（dynamic pseudo-class ）是伪类的一个子集。它们指那些有某些动态特征的伪类。运用它们，能够根据站点访问者的特定行为来格式化对象。</span></p>
<p>：focus将应用于那些获得焦点的对象。例如，当访问者点击了一个表单或者一个标签页中的输入框的时候：</p>
<p><span style="color: #993300;">input[type=text] : <strong>focus</strong> {</span></p>
<p><span style="color: #993300;">color: #f00;</span></p>
<p><span style="color: #993300;">background-color:#666;</span></p>
<p><span style="color: #993300;">}</span></p>
<p>用伪类：lang可以格式化特定语言（或许与文档主体不同的语言）内容中的对象。例如，下面的规则将一个迷你国旗放在任何汉语&lt;blockquote&gt;上：</p>
<p><span style="color: #993300;"><strong>blockquote:lang(cn)</strong> {</span></p>
<p><span style="color: #993300;">padding-right : 30px;</span></p>
<p><span style="color: #993300;">background: url(images/cn.png) no-repeat right top;<br />
}</span></p>
<p><span style="color: #993300;"><strong>&lt;blockquote lang=”cn&#8221;&gt;</strong></span></p>
<p><span style="color: #993300;">&lt;p&gt;哈尔很帅，黄头发时候最帅。冈田秒子长大的样子好丑，真的很丑的，奇怪，怎么可以那么丑，笑的就更丑了。&lt;/p&gt;</span></p>
<p><span style="color: #993300;">&lt;/blockquote&gt;</span></p>
<h2><span style="color: #993300;">伪对象</span></h2>
<p>伪对象同样能格式化那些不能作为DOM节点的文档部分。</p>
<p>伪对象：first-line将以段落的第一行作为目标。任何第一行中的字数将会随着文字在浏览器中的大小而改变。</p>
<p>下面的规则应用于页面中所有段落的第一行：</p>
<p><span style="color: #993300;"><strong>p:first-line {</strong></span></p>
<p><span style="color: #993300;">font-style: italic:</span></p>
<p><span style="color: #993300;">}</span></p>
<p>伪对象：first-letter能够将元素的第一个字母或者数字作为目标。接下来的规则将用到类名为introduction的&lt;p&gt;元素中的第一个字符：</p>
<p><span style="color: #993300;"><strong>p.introduction:first-letter {</strong></span></p>
<p><span style="color: #993300;">font-weight: bold:</span></p>
<p><span style="color: #993300;">font-size:400%;</span></p>
<p><span style="color: #993300;">}</span></p>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/css-selector-4-pseudo-classes-and-pseudo-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS选择符之三相邻选择符</title>
		<link>http://5ivedance.com/development/css-selector-3-adjacent-sibling-selector/</link>
		<comments>http://5ivedance.com/development/css-selector-3-adjacent-sibling-selector/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 17:51:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=47</guid>
		<description><![CDATA[相邻选择符由“+”连接符分隔的选择符组成。它匹配与第一个元素相邻的下一个元素。同时元素必须有相同的父级，并且第一个元素要在第二个之前。
h2 + p {
font-size: 20px;
border-bottom: 1px solid #666;
}
将上面的规则应用到下面这个例子中时，它只会影响第一段的内容
&#60;h2&#62;Hi, guy.&#60;/h2&#62;
&#60;p&#62;preview on lost.&#60;/p&#62;
&#60;p&#62;preview on prison break.&#60;/p&#62;
]]></description>
			<content:encoded><![CDATA[<p>相邻选择符由“+”连接符分隔的选择符组成。它匹配与第一个元素相邻的下一个元素。<span style="color: #333300;"><strong>同时元素必须有相同的父级，并且第一个元素要在第二个之前。</strong></span></p>
<p><span style="color: #993300;"><strong>h2 + p</strong> {</span></p>
<p><span style="color: #993300;">font-size: 20px;</span></p>
<p><span style="color: #993300;">border-bottom: 1px solid #666;</span></p>
<p><span style="color: #993300;">}</span></p>
<p>将上面的规则应用到下面这个例子中时，它只会影响第一段的内容</p>
<p><span style="color: #993300;">&lt;h2&gt;Hi, guy.&lt;/h2&gt;</span></p>
<p><span style="color: #993300;"><strong>&lt;p&gt;preview on lost.&lt;/p&gt;</strong></span></p>
<p><span style="color: #993300;">&lt;p&gt;preview on prison break.&lt;/p&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/css-selector-3-adjacent-sibling-selector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS选择符之二子对象选择符</title>
		<link>http://5ivedance.com/development/css-selector-2-child-selector/</link>
		<comments>http://5ivedance.com/development/css-selector-2-child-selector/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 17:06:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=46</guid>
		<description><![CDATA[子对象选择符以所给元素的直属子对象为目标。例如，它使你能够格式化列表的直属子对象中的链接，以区别其他的链接。子对象选择符由两个或更多的一&#8221;&#62;&#8221;连接符分隔的选择符组成。
提示? -_- -！连接符（Combinator）分隔组合选择符中的两个或更多个选择符。可用的连接符包括空格，&#62; ，+，逗号，分号。（当然都是半角咯#_#）
下面的例子规则将设置所有属于&#60;div&#62;元素子对象的链接的样式：
div &#62; a {
text-indent: 200px;
}
这个规则仅影响那些直属于&#60;div&#62;元素的子对象（不是其他自对象的子对象）&#60;a&#62;元素。如果其他元素出现在&#60;div&#62;和链接之间——例如&#60;ul&#62;元素——选择符将不会与之匹配，text-indent格式也会失效。
&#60;div&#62;
&#60;a href=&#8221;http://www.5ivedanc.com&#8221;&#62;yunsi me&#60;/a&#62;
&#60;ul&#62;&#60;li&#62;&#60;a href=&#8221;http://www.5ivedanc.com&#8221;&#62;yunsi me&#60;/a&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;/div&#62;
]]></description>
			<content:encoded><![CDATA[<p>子对象选择符以所给元素的直属子对象为目标。例如，它使你能够格式化列表的直属子对象中的链接，以区别其他的链接。子对象选择符由两个或更多的一&#8221;&gt;&#8221;连接符分隔的选择符组成。</p>
<blockquote><p>提示? -_- -！连接符（Combinator）分隔组合选择符中的两个或更多个选择符。可用的连接符包括空格，&gt; ，+，逗号，分号。（当然都是半角咯#_#）</p></blockquote>
<p>下面的例子规则将设置所有属于&lt;div&gt;元素子对象的链接的样式：</p>
<p><span style="color: #993300;"><strong>div &gt; a</strong> {</span></p>
<p><span style="color: #993300;">text-indent: 200px;</span></p>
<p><span style="color: #993300;">}</span></p>
<p>这个规则仅影响那些直属于&lt;div&gt;元素的子对象（不是其他自对象的子对象）&lt;a&gt;元素。如果其他元素出现在&lt;div&gt;和链接之间——例如&lt;ul&gt;元素——选择符将不会与之匹配，text-indent格式也会失效。</p>
<p><span style="color: #993300;">&lt;div&gt;</span></p>
<p><span style="color: #993300;"><strong>&lt;a href=&#8221;http://www.5ivedanc.com&#8221;&gt;yunsi me&lt;/a&gt;</strong></span></p>
<p><span style="color: #993300;">&lt;ul&gt;&lt;li&gt;&lt;a href=&#8221;http://www.5ivedanc.com&#8221;&gt;yunsi me&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</span></p>
<p><span style="color: #993300;">&lt;/div&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/css-selector-2-child-selector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS选择符之一属性选择符</title>
		<link>http://5ivedance.com/development/css-selector-1-attribute-selectors/</link>
		<comments>http://5ivedance.com/development/css-selector-1-attribute-selectors/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 16:45:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=45</guid>
		<description><![CDATA[以下内容节选资料书籍来自CSU中图- -! 这个地方权当做重要笔记摘抄(包括不改变意义的篡改, 简写-___-)，包括之前众多文字，New Riders &#38; 人邮版权所有。或者其他xxx版权归其作者和出版商所有，笔记仅供学习。
属性选择符异常强大，通过它们可以基于一个元素是否有属性名称，例如href, 或是是属性值，如http://www.xx.com 来对这个元素设计样式。
在下面的例子中，所有包含alt属性的图像都将会有一个灰色的色框：
img[alt] {
border: 1px dotted #999;
}
&#60;img src=&#8221;../img/5ve.jpg“ alt=&#8221;ID: Milo Xing&#8221; /&#62;
所有包含title属性的链接将是红色：
a[title] {
color: #f00;
}
&#60;a href=&#8221;../blog/index.php&#8221; title=&#8221;5ivedance blog&#8220;&#62;blog me&#60;/a&#62;
同样能够基于属性的内容来格式化一个元素：
p[class="rant"] {
font-weight: bold;
text-transform: uppercase;
}
&#60;p class=&#8221;rant&#8220;&#62;
Hi, I&#8217;m 5ivedance.&#60;/p&#62;
同样，
div[id="main"] {
float=left;
}
&#60;div id=&#8221;main&#8220;&#62;&#60;p&#62;Hi, I&#8217;m 5ivedance.&#60;/p&#62;&#60;/div&#62;
【也许你会觉得上面这两个列子不是纯属费事吗，恩，其实我也是这么觉得开始，只是多默念一下这句话吧：基于元素部分的属性设置元素的样式。】
运用模式匹配（pattern matching), 你能够基于元素部分的属性设置元素样式。在下面的例子用到引言（&#60;q&#62;）的引用（cite）属性中的URL:
q[cite*=http://www.5ivedance.com/] {
background: #f00;
}
&#60;q cite=&#8221;http://www.5ivedance.com/?134/&#8220;&#62;Hi, I &#8230; I &#8230;  I miss u.&#60;/q&#62;
]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">以下内容节选资料书籍来自CSU中图- -! 这个地方权当做重要笔记摘抄(包括不改变意义的篡改, 简写-___-)，包括之前众多文字，New Riders &amp; 人邮版权所有。或者其他xxx版权归其作者和出版商所有，笔记仅供学习。</span></p>
<p><span style="color: #000000;">属性选择符异常强大，通过它们可以基于一个元素是否有属性名称，例如href, 或是是属性值，如http://www.xx.com 来对这个元素设计样式。</span></p>
<p>在下面的例子中，所有包含alt属性的图像都将会有一个灰色的色框：</p>
<p><span style="color: #993300;"><strong>img[alt]</strong> {</span></p>
<p><span style="color: #993300;">border: 1px dotted #999;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;img src=&#8221;../img/5ve.jpg“ <strong>alt=&#8221;ID: Milo Xing&#8221;</strong> /&gt;</span></p>
<p>所有包含title属性的链接将是红色：</p>
<p><span style="color: #993300;"><strong>a[title]</strong> {</span></p>
<p><span style="color: #993300;">color: #f00;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;a href=&#8221;../blog/index.php&#8221; <strong>title=&#8221;5ivedance blog</strong>&#8220;&gt;blog me&lt;/a&gt;</span></p>
<p>同样能够基于属性的内容来格式化一个元素：</p>
<p><span style="color: #993300;"><strong>p[class="rant"]</strong> {</span></p>
<p><span style="color: #993300;">font-weight: bold;</span></p>
<p><span style="color: #993300;">text-transform: uppercase;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;p <strong>class=&#8221;rant</strong>&#8220;&gt;</span></p>
<p><span style="color: #993300;">Hi, I&#8217;m 5ivedance.&lt;/p&gt;</span></p>
<p>同样，</p>
<p><span style="color: #993300;"><strong>div[id="main"]</strong> {</span></p>
<p><span style="color: #993300;">float=left;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;div <strong>id=&#8221;main</strong>&#8220;&gt;&lt;p&gt;Hi, I&#8217;m 5ivedance.&lt;/p&gt;&lt;/div&gt;</span></p>
<p>【也许你会觉得上面这两个列子不是纯属费事吗，恩，其实我也是这么觉得开始，只是多默念一下这句话吧：基于元素部分的属性设置元素的样式。】</p>
<p>运用模式匹配（pattern matching), 你能够基于元素部分的属性设置元素样式。在下面的例子用到引言（&lt;q&gt;）的引用（cite）属性中的URL:</p>
<p><span style="color: #993300;"><strong>q[cite*=http://www.5ivedance.com/]</strong> {</span></p>
<p><span style="color: #993300;">background: #f00;</span></p>
<p><span style="color: #993300;">}</span></p>
<p><span style="color: #993300;">&lt;q <strong>cite=&#8221;http://www.5ivedance.com/?134/</strong>&#8220;&gt;Hi, I &#8230; I &#8230;  I miss u.&lt;/q&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://5ivedance.com/development/css-selector-1-attribute-selectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: 5ivedance.com @ 2010-08-01 03:26:21 -->