Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css IE8:n个孩子和:之前_Css_Internet Explorer 8_Css Selectors - Fatal编程技术网

Css IE8:n个孩子和:之前

Css IE8:n个孩子和:之前,css,internet-explorer-8,css-selectors,Css,Internet Explorer 8,Css Selectors,这是我的CSS: #nav-primary ul li:nth-child(1) a:after { } 现在在任何地方都可以使用(在我的网站上使用),除了InternetExplorer8 有没有可能在IE8中使用第n个孩子? 这是此浏览器的最差版本。。。任何东西都不能正常工作,我也找不到解决办法 @编辑: 我想要实现的简化版本:。这只是一个开始。CSS将更加复杂,所以我需要能够瞄准每一个链接。希望在每个链接中添加类不是唯一的方法 @编辑2: 我刚刚注意到 #nav-primary ul l

这是我的CSS:

#nav-primary ul li:nth-child(1) a:after { }
现在在任何地方都可以使用(在我的网站上使用),除了InternetExplorer8

有没有可能在IE8中使用第n个孩子? 这是此浏览器的最差版本。。。任何东西都不能正常工作,我也找不到解决办法

@编辑: 我想要实现的简化版本:。这只是一个开始。CSS将更加复杂,所以我需要能够瞄准每一个链接。希望在每个链接中添加类不是唯一的方法

@编辑2: 我刚刚注意到

#nav-primary ul li:nth-child(1) a {
    border-top: 5px solid #144201;
}
实际上是在IE8中工作!但这是:

#nav-primary ul li:nth-child(1) a:after {
    content: "Text";
    display: block;
    font-weight: normal;
    padding-top: 5px;
    font-size: 12px;
    color: #666;
}
它不起作用。那么到底发生了什么呢?

IE8(及以下)
:nth-child()
,但确实支持
:after
。但是,由于您在选择器中使用的是
:nth-child()
之前:之后,IE8将不会运行它


您可以通过向该行添加类或添加对这些选择器支持的库来使用JavaScript解决方案。

您可以使用:first child而不是:nth child(1)这在IE7中有更好的支持+

另请参见

您可以(ab)使用在IE7/8中工作的CSS来实现这一点

请参见:

/*相当于li:n个孩子(1)*/
#nav小学ul li:第一个孩子a{
边框顶部:5px纯红;
}
/*相当于李:第n个孩子(2)*/
#导航初级ul li:第一个孩子+LIA{
边框顶部:5px纯蓝色;
}
/*相当于李:第n个孩子(3)*/
#nav小学ul li:第一个孩子+li+LIA{
边框顶部:5px纯绿色;
}​
您无法使用此方法模拟更复杂的
:nth-child()
变体,例如
:nth child(奇数)
:nth child(4n+3)

尝试与配对。这就是我在所有网站上所做的,以在所有浏览器上获得良好的伪选择器支持。FWIW如果你使用了大量HTML5元素,那么使用NMWatcher的V1.2.3而不是1.2.4可能是值得的。我今天在一个网站上遇到了一个selectivizr问题,我似乎无法修复,然后我转到了1.2.3,它工作得很好。

解决了这个问题和其他相关问题

:第n个子项(奇数)
:第n个子项(偶数)
处理此项

用法:

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->

ie9.js听起来是最好的解决方案,但您也可以在单元格中添加一个类,例如

<tr>
    <td class='first-cell'>stuff</td><td class='second-cell>stuff</td>
</tr>
<tr>
    <td class='first-cell'>stuff</td><td class='second-cell>stuff</td>
</tr>

.first-cell {
    font-weight: bold;
}
.second-cell {
    font-weight: normal;
}

东西
.第一单元{
字体大小:粗体;
}
.第二单元{
字体大小:正常;
}

否。IE6是最差的版本
@SLaks:IE6不是浏览器。我没说它是浏览器;我说这是一个版本。:-)@SLaks:很好。那么你说得对:)你为什么不干脆用
:first child
而不是
:nth child(1)
?IE8支持它。是的,我试图找到一些.js,但没有任何效果。你有什么想法吗?是的,但我还需要瞄准第二个和第三个孩子。@JonMack Selectivizr太棒了!除了添加对脚本文件的引用之外,我没有任何输入就直接工作了@乔马克干得很出色,谢谢你。不明白为什么它需要两个脚本,但nvm它工作!Selectivizr看起来很有前途,但它是否可能不适用于jQuery1.10.x?如果我有
n个孩子(5n+2)
n个孩子(-n+6)
?@SnakeEyes:那么你不能在IE7/8中使用纯CSS。如果已知元素数量上限,则可以手动选择索引为
7、9、11、13、15、…
的元素,如所需。或者,使用JavaScript修复它,如下面答案中的IE9.js。否则,请接受IE7/8很糟糕,不要试图修复它。您可以像这样模拟奇数:
.container.row:first child、.container.row:first child+.row+.row、.container.row:first child+.row+.row+.row+.row+.row+.row+.row{}
@aholmes:如果你知道元素的最大可能数量,那就是一个解决方案。@thirtydot:噢,天哪!您真的希望JSFIDLE本身能够在IE 8中工作吗?;-)谢谢顺便说一句:-)Goldfind!也许不是IE8用户的最佳选择,因为脚本有点重,但它确实让我的工作更轻松,让我的老板高兴!