比浏览器更重要!重要

时间:2012-01-09 15:27:02

标签: css override

除了使用每个元素样式之外,有没有办法覆盖浏览器CSS代码中定义的!important属性?浏览器似乎在stylelink标记中定义的页面CSS之后加载了预编译的CSS。我想从默认复选框和单选按钮中删除边框和颜色(appearance并不重要,因此可以轻松禁用),我的CSS在用户界面中工作,但在真实的网页上它不起作用。

5 个答案:

答案 0 :(得分:1)

任何页面(作者)样式表都会覆盖浏览器的默认样式表。浏览器样式表中没有!important。根据级联规则,这里的特异性并不重要。重要的是,CSS中的一些表示特征首先是不可控制的。演示:

<!doctype html>
<style>
*  { border: none; }
</style>
<input value=foo><br>
<input type=checkbox checked>

这将删除文本输入框的默认边框。在大多数浏览器中,它不会影响复选框渲染,因为我们可能看到的边框实际上是复选框窗口小部件的一部分。 IE,像往常一样,有不同的行为,但即使在它上面,你也无法删除“边框”,如果在元素上使用自己的边框,边框就会在框外绘制。

可能存在特定于浏览器的方式,以非标准CSS的方式影响其行为。您可能需要详细说明“在用户界面中”以及在哪些浏览器上工作的内容。

答案 1 :(得分:0)

所以你想“删除”浏览器默认的CSS?
我认为你可以通过重置CSS来做到这一点,它基本上重置了浏览器的样式。 那里有很多例子

继承人:CSS reset

答案 2 :(得分:0)

是。加载后,使用Javascript从元素中删除样式 或者,首先设计样式表。

答案 3 :(得分:0)

我所知道的是:外部css,内部css和内联css。它被覆盖的顺序是:

  

外部&lt;内部&lt;内联。

即。外部css被内部覆盖,内部和外部被内联覆盖。

另外,我们可以通过javascript更新它。

答案 4 :(得分:0)

  1. 使用至少与原始选择器一样具体的选择器声明您的样式。
  2. 使用!important
  3. 标记您的首要样式
  4. 在现有样式
  5. 之后声明/包含样式表

    这是一个例子,其中声明的最后一个!重要样式优先于早期样式。

    http://jsfiddle.net/8QHQk/1/