div,span,a等的CSS特异性问题

时间:2011-10-05 10:08:36

标签: css

我想覆盖另一个样式表,并将所有元素的浮点数设置为无。如果我使用'div,span,a'作为选择器甚至'body div,body span,body a',它不会覆盖前一个类选择器。我可以使用!重要但是这并不是很明显的原因。

.class {
    float: left;
}

/* my overide */
div, span, a {
    float: none;
}

注意 - 在代码中我只显示了“类”的类,但是它们是很多类和id。

有没有办法在不使用!important的情况下执行此操作?我这样做的原因是移动通过媒体查询优化我的网站。我需要删除所有元素的绝对定位,浮点数等,但后来我想将这些样式中的一些添加到特定元素。 谢谢

2 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所写:

  

使用*选择器通常是不明智的。选择者专注于   首先是键选择器(最右边的选择器)所以使用*   选择器意味着浏览器必须找到页面上的所有元素。   这是一个巨大的性能问题。

您可以在此答案中阅读更多内容:(why) is the CSS star selector considered harmful?

我没有像你一样使用*选择器,而是专注于你想要影响的元素。

有可能,页面中只会有几种类型的元素浮动。

这些通常是一些div,也许是一些图像,一两个列表?

div, img, ul, ol{
   float:none;
}

如果还有更多,你也可以加入它们。

答案 1 :(得分:0)

@jdin;对于.class float的覆盖,只需这样写:

div.class, span.class, a.class {
    float: none;
}

修改

在您的身体标签中定义ID,如下所示

<强> HTML:

<body id="home">
  <div>Tag</div>
<span class="class">Class</span>
<div id="id">ID</div> 
</body>

<强> CSS:

body#home *{background:pink;border:1px solid #000}

请查看此示例http://jsfiddle.net/sandeep/D7Sg6/2/