正确的覆盖CSS的方法

时间:2013-02-21 21:30:31

标签: css twitter-bootstrap

我目前正在使用Bootstrap,对于我的网站,我想覆盖它附带的某些默认设置。许多Bootstrap规则都是非常深层次的嵌套,因此通常不会优先于我可能定义的任何内容。

在我的覆盖css文件中,我有更好的选择而不是拍击

!important

关于每条规则,还是这几天每个人都在处理它的方式?

6 个答案:

答案 0 :(得分:9)

FWIW,这对我有用。

  • 如果您还没有使用LESS,请花点时间搞清楚,它会为您节省大量的成本 时间,让所有事情变得井井有条http://lesscss.org。你会得到很好的回报;)

  • 不是编辑原始的Bootstrap LESS文件而是丢失下一个Bootstrap更新中的所有内容,而是创建一个新的theme-css.less文件,也许还有一个theme.variables.less文件,并将它们保存在与您相同的目录中Bootstrap LESS文件

  • 编辑bootstrap.less以便正确编译新文件,

    ..

    // CSS重置 @import“reset.less”;
    //核心变量和混合

    @import“variables.less”; //修改此项以获取自定义颜色,字体大小等 @import“mixins.less”;

    @import“theme-variables.less”; //< ====您的自定义CSS变量

    //网格系统和页面结构
    @import“scaffolding.less”;
    @import“grid.less”;
    @import“layouts.less”;

    //基本CSS
    @import“type.less”;
    @import“code.less”;
    @import“forms.less”;
    @import“tables.less”;

    @import“theme-css.less”; //< ====您的自定义CSS

    ..

  • 使用Bootstrap customise page找到管理您可能希望自定义的CSS的大部分变量的名称。将这些更改为req'd并添加到theme.variables.less文件

  • 根据http://lesscss.org/使用LESS嵌套规则。 < ==这很重要。它极大地简化了原本复杂的CSS

如果您是LESS的新手,我意识到这不是一个简单的5分钟修复,但是一旦您完成设置并开始使用嵌套规则,您的CSS将非常简单且易于维护。

2015年6月更新
上面的技术现在有点过时了。仍然有效但Jake提出了我喜欢的改变,它简化了长期维护。

而不是编辑主bootstrap.less文件:

  • 创建一个新的theme.less文件

  • 导入bootrap.less和您的自定义更改,例如:

    @import“path-to / bootstrap.less;
    @import“path-to / custom.less;

  • 编译theme.less

这样做意味着如果更新bootstrap.less文件,自定义更改丢失的可能性就会降低

答案 1 :(得分:3)

!important是最后的手段,最好不要使用。如果你想覆盖CSS,那么尊重CSS级联规则:更多“特定”规则总是胜过不那么“特定”的规则。 e.g。

<div id="someid">Howdy</div>


div { 
    color: red;
}

div#someid {
    color: blue;
}

使文本变为蓝色,即使两者都指向同一个元素,因为#someid使第二个规则更具体。

答案 2 :(得分:2)

这就是CSS评分对选择器的作用。

内联样式胜过CSS中的所有内容。 例如。 <p style="margin:0;">将覆盖CSS文件中的所有内容。

ID计为1000分:#sub-head,#page-wrapper 类数为100点Z:.sub-head,.page-wrapper 元素计为10分:a,p,div,ul,li 伪选择器计为1 :: hover,:first-child,:last-child

哪个选择器具有最高点的样式将在页面上呈现。

!重要的是拉动的另一张王牌,应该很少使用。 例如,我喜欢用它来着色特殊文本或边距。

这是一个很好的链接,可以更详细地解释它。 它非常简单。

Link

答案 3 :(得分:0)

我认为最好的方法是基于html文档头部中链接的css文件的 订单 。这里有很好的解释:https://bootstrapbay.com/blog/customize-bootstrap/

有趣的部分

我正在使用!也很重要,写作时我一直在想什么样的奇怪方式:D

答案 4 :(得分:0)

我对此的回答。我在自举样式表之后添加了一个自定义样式表,然后每个东西都可以工作。

(带有自定义引导主题的wordpress网站) - 在这种情况下,我在引导样式表后排列样式表后修复了问题

答案 5 :(得分:0)

您应该做的最简单和第一件事是检查html文件头部中样式表链接的顺序。

首先链接到bootstrap CSS,然后在以下行链接到style.css(或类似)文件。

如果你颠倒了这个订单,你可能无法覆盖某些样式元素。