CSS:第一个子选择器IE7

时间:2013-02-07 18:18:21

标签: css internet-explorer-7 css-selectors

我的IE7问题很少。我有以下CSS代码,它在IE7中不起作用。但是,.row [class * =“span”]和:first-child如果不合并则都可以工作。有没有办法做类似的事情或让它以某种方式工作?

.row [class*="span"]:first-child {
    margin-left: 0;
}

1 个答案:

答案 0 :(得分:6)

如果第一个孩子 [class*="span"],请检查之前是否有HTML评论。如果有IE7 will mistakenly think the comment is the first child,那么它将与您正在寻找的元素不匹配。

如果您无法更改标记以删除评论,则可以使用我描述的覆盖技术here来解决该问题:

.row [class*="span"] {
    margin-left: 0;
}

.row [class*="span"] ~ [class*="span"] {
    margin-left: /* Reset the left margin for other elements */;
}

如果您不知道要将其重置为的边距值,您可以尝试添加另一个以* + html黑客攻击IE7行为的选择器:

.row [class*="span"]:first-child, * + html .row :first-child + [class*="span"] {
    margin-left: 0;
}

:first-child + [class*="span"]匹配该元素,如果它只跟随一个注释节点,它是IE7中的第一个子节点。