nth-child在IE7 / IE8中不起作用

时间:2013-06-01 13:48:03

标签: css internet-explorer css3 css-selectors

我无法让:nth-child选择器与IE7 / 8一起使用。

Here is我的代码的一个工作示例(适用于Chrome)

以下是我正在使用的CSS和HTML:

CSS:

#price-list {
    width:98%;
    padding:1%;
    border:white 1px solid;
    margin:0 auto;
    overflow:hidden;
}        
#price-list h4 {
    padding-top:20px; 
    font-weight:400;  
    padding-bottom:5px;
}        
#price-list ul { 
    width:100%; 
    margin-bottom:10px; 
    overflow:hidden; 
}      
#price-list li{
    line-height:1.5em;
    border-bottom:1px  dashed #C9F;
    float:left;
    display:inline;
    padding-top:5px; 
    padding-bottom:5px;
    text-align:center;          
}        
#price-list li strong { 
    color:#C9F; 
    font-weight:normal;
}        
#double-taxi li:nth-child(odd) { 
    width:80%;
    text-align:left; 
}
#double-taxi li:nth-child(even) { 
    width:20%;
}

HTML:

<div id="price-list">
   <ul id="double-taxi">            
      <li><h4>North Goa</h4><strong>(Distance kms)</strong></li><li><h4>Non A/C</h4>Rs <strong>(UK &pound;)</strong></li>
      <li>Aldona <strong>(10 kms)</strong></li><li>250 Rs <strong> (&pound;3)</strong></li>
      <li>Asnora <strong>(15 kms)</strong></li><li>250 Rs <strong> (&pound;3)</strong></li>
      <li>Bicholim <strong>(21 kms)</strong></li><li>420 Rs <strong> (&pound;5)</strong></li>
      <li>Camurlim <strong>(10 kms)</strong></li><li>250 Rs <strong> (&pound;3)</strong></li>
      <li>Colvale <strong>(10 kms)</strong></li><li>250 Rs <strong> (&pound;3)</strong></li>
   </ul>
     We DO NOT provide a taxi service. The Exchange Rate used to calculate UKP was 80Rs to the UKP and was rounded  up to whole pound.
</div>

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:9)

那是因为:nth-child isn't supported in IE7/IE8

此问题的一个解决方案是使用Selectivizr

  

“Selectivizr是一个模拟CSS3伪类的JavaScript实用程序   和Internet Explorer 6-8中的属性选择器。“

您需要做的就是包含Selectivizr脚本,如果您还没有使用它,请确定您要使用哪个JavaScript库(jQuery,Mootools等),您将获得{{{ IE6到IE8中的选择器(在各种其他伪选择器/属性选择器中)。

修改

在回复您的评论时,here's a quick tutorial向您展示了如何设置和使用Selectivizr。

答案 1 :(得分:7)

  

以下示例可能对您有所帮助

//For first child
// equivalent to li:nth-child(1)
li:first-child a {
    border-top: 5px solid red;
}

//For second child
// equivalent to li:nth-child(2)
li:first-child + li a {
    border-top: 5px solid blue;
}

//For third child
// equivalent to li:nth-child(3)
 li:first-child + li + li a {
    border-top: 5px solid green;
}​

答案 2 :(得分:0)

使用诸如选择器之类的polyfill来实现缺失的功能。

  1. http://selectivizr.com/downloads/selectivizr-1.0.2.zip
  2. 的selectivizr.com下载
  3. 解压缩并将文件放入app / assets / javascripts
  4. 下的项目中
  5. 在您的应用中引用它,即仅在布局的application.js文件中使用<!--[if (gte IE 6)&(lte IE 8)]><script type="text/javascript" src="selectivizr-min.js"></script><![endif]-->。或...
  6. 对于资产管道,您可以将gem'selectivizr-rails'添加到我们的Gemfile中,然后捆绑安装。你从https://github.com/jhubert/selectivizr-rails

    获得了宝石

    然后将以下内容添加到布局中的head标记:

    <!--[if (gte IE 6)&(lte IE 8)]> = javascript_include_tag 'selectivizr' <![endif]-->

  7. 正常进行