CSS样式如何修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS样式如何修改相关的知识,希望对你有一定的参考价值。

我想要修改一个CSS样式,边框呀什么的都要修改 ,就像图中一样的,请问应该如何修改。q364801331

1、引jQuery,然后定义元素的style样式,根据自己的元素来定义,这里随性定义div的style样式。

2、接着我们看样式所带来的效果,接着开始设置点击按钮会产生变化颜色等交互效果。

3、首先,自然是指定好触发变化颜色的事件,可以是经过触发等,这里我就点击即可触发颜色变化。

4、用css()便可以覆盖原来元素的样式了哦。

5、如果是修改元素单个样式,要用逗号隔开,不可以使用冒号哦。

6、这样就可以得到交互效果了,但是这只是一个样式的效果发生了变化,

7、可以用大括号裹住多个样式,逗号分隔样式,然后样式值用冒号

8、最后样式交互就大功告成了,多个样式就会被修改了

参考技术A 之前在论坛上面看到论坛后台可以把所有页面的标题,内容,字体,背景,颜色等css属性都列出来了,并且可以随意重新设置,保存以后前台页面就可以根据设置动态的更新显示了,之前就有了一点想法,做了一个demo.jsp,然后在这个页面引入一个style.css样式文件,并且在这个样式文件中定义了一些属性,然后定义了一个java类来对应样式文件的属性 参考技术B 这个修改起来很麻烦的,你得找到那个页面的css文件,然后找到每一个需要修改的样式定义,查找到每一个元素在页面中的位置,然后根据该元素定义样式的id或者class名称在css文件中找到对应的名称,然后修改相关属性。需要查看页面源代码。用谷歌的浏览器,可以右键-审查元素,方便的查看页面的各种元素。希望我的回答对你有所帮助。 参考技术C 你现在有CSS的代码吗?没有的话,另存为一下,先把原来的CSS代码看懂,这样才能修改! 参考技术D 找到对应的css,然后修改其中的属性

如何覆盖 Bootstrap CSS 样式?

【中文标题】如何覆盖 Bootstrap CSS 样式?【英文标题】:How can I override Bootstrap CSS styles? 【发布时间】:2014-01-10 08:32:53 【问题描述】:

我需要修改bootstrap.css 以适应我的网站。我觉得创建一个单独的custom.css 文件而不是直接修改bootstrap.css 会更好,一个原因是如果bootstrap.css 得到更新,我会尝试重新包含我的所有修改。我会为这些样式牺牲一些加载时间,但对于我要覆盖的少数样式来说,这可以忽略不计。

我如何覆盖bootstrap.css 以便删除锚/类的样式?例如,如果我想删除 legend 的所有样式规则:

legend 
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;

我可以删除 bootstrap.css 中的所有内容,但如果我对覆盖 CSS 的最佳实践的理解是正确的,我应该怎么做?

明确地说,我想删除所有这些图例样式并使用父级的 CSS 值。那么结合 Pranav 的回答,我会做以下事情吗?

legend 
  display: inherit !important;
  width: inherit !important;
  padding: inherit !important;
  margin-bottom: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  border: inherit !important;
  border-bottom: inherit !important;

(我希望有一种方法可以执行以下操作:)

legend 
  clear: all;

【问题讨论】:

【参考方案1】:

将您的 custom.css 文件链接为 bootstrap.css 下方的最后一个条目。 Custom.css 样式定义将覆盖 bootstrap.css

HTML

<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/custom.css" rel="stylesheet">

复制 custom.css 中图例的所有样式定义并在其中进行更改(如 margin-bottom:5px; -- 这将覆盖 margin-bottom:20px; )

【讨论】:

是的,我已经这样做了。抱歉,我的问题不清楚。我的问题是问如何在 custom.css 中覆盖 bootstrap.min.css 中的样式。 如果我也使用 bootstrap-theme.min.css 怎么办? 为我工作,即使使用 min css【参考方案2】:

它不会对加载时间产生太大影响,因为您正在覆盖基本样式表的某些部分。

以下是我个人遵循的一些最佳实践:

    始终在基本 CSS 文件之后加载自定义 CSS(不响应)。 尽可能避免使用!important。这可以覆盖基本 CSS 文件中的一些重要样式。 如果您不想丢失媒体查询,请始终在 custom.css 之后加载 bootstrap-responsive.css。 - 必须遵循 希望修改所需的属性(不是全部)。

【讨论】:

既然bootstrap-responsive.css 不再存在,这仍然成立,还是不再相关?【参考方案3】:

在你的 html 的 head 部分中,将你的 custom.css 放在 bootstrap.css 下面。

<link href="bootstrap.min.css" rel="stylesheet">
<link href="custom.css" rel="stylesheet">

然后在 custom.css 中,您必须对要覆盖的元素使用完全相同的选择器。在 legend 的情况下,它只会在您的 custom.css 中保留 legend,因为引导程序没有任何更具体的选择器。

legend 
  display: inline;
  width: auto;
  padding: 0;
  margin: 0;
  font-size: medium;
  line-height: normal;
  color: #000000;
  border: 0;
  border-bottom: none;

但对于 h1 而言,您必须处理更具体的选择器,例如 .jumbotron h1,因为

h1 
  line-height: 2;
  color: #f00;

不会覆盖

.jumbotron h1,
.jumbotron .h1 
  line-height: 1;
  color: inherit;

这是对 CSS 选择器的特殊性的有用解释,您需要了解它才能准确了解哪些样式规则将应用于元素。 http://css-tricks.com/specifics-on-css-specificity/

其他一切都只是复制/粘贴和编辑样式的问题。

【讨论】:

【参考方案4】:

如果您打算进行任何相当大的更改,最好直接在引导程序本身中进行更改并重新构建它。然后,您可以减少加载的数据量。

有关构建指南,请参阅Bootstrap on GitHub。

【讨论】:

根据所需定制的程度,这可能是最简单的选项。例如,更改任何主题颜色都需要大量覆盖,我宁愿选择模板更改和自定义构建。 @alex Bump 来源和重建? 恕我直言 - 我个人的规则是永远不要修改 CSS、JS 或任何其他库中的源文件 - 在当今世界应该总是有一个优雅的解决方法,否则你会在更新源时遇到问题。 【参考方案5】:

使用!important 不是一个好选择,因为您将来很可能希望覆盖自己的样式。这给我们留下了 CSS 优先级。

基本上,每个选择器都有自己的数字“权重”:

ID 100 分 类和伪类 10 分 标签选择器和伪元素1分 注意:如果元素具有内联样式that automatically wins(1000 分)

在两种选择器样式中,浏览器总是会选择权重更大的一种。样式表的顺序只有在优先级相等时才重要——这就是为什么要覆盖 Bootstrap 并不容易。

您的选择是检查 Bootstrap 源,找出某些特定样式是如何定义的,然后复制该选择器,以便您的元素具有相同的优先级。但是在这个过程中我们有点失去了所有 Bootstrap 的甜头。

解决此问题的最简单方法是将额外的任意 ID 分配给页面上的某个根元素,如下所示:&lt;body id="bootstrap-overrides"&gt;

这样,您可以在任何 CSS 选择器前面加上您的 ID,立即为元素添加 100 点权重,并覆盖 Bootstrap 定义:

/* Example selector defined in Bootstrap */
.jumbotron h1  /* 10+1=11 priority scores */
  line-height: 1;
  color: inherit;


/* Your initial take at styling */
h1  /* 1 priority score, not enough to override Bootstrap jumbotron definition */
  line-height: 1;
  color: inherit;


/* New way of prioritization */
#bootstrap-overrides h1  /* 100+1=101 priority score, yay! */
  line-height: 1;
  color: inherit;

【讨论】:

既然ID只能使用一次,为什么不把#bootstrap-overrides做成一个类呢? @chharvey:因为你最终不得不计算得更好。如果它是本例中的一个类,它将是 prio 11,如果 css 定义在 bootstrap.css 之后,那么我们就可以开始了。但是,这将非常接近并将其设置为可以大大提高 prio 时间的 id,我们不必担心计算 prio 和测试是否总是正确的。如果你想明确地覆盖默认值,使用 id 更容易。 刚刚度过了我的一天。我知道这一点,但仍然试图弄清楚为什么我的样式没有被解释。 你提到的点(100 代表 id,10 代表类/伪类,1 代表标签选择器/伪元素)是文字,还是你只是为这个例子编造了这些值? 您的解释很好,作为向 css 新手解释它的一种方式是有意义的,但具有误导性。您提到的正确名称是 css specificity,它定义了每个 css 选择器的“权重”。这里有一些关于它的更多细节:css-tricks.com/specifics-on-css-specificity/…【参考方案6】:

使用 jquery css 代替 css 。 . . jquery 的优先级高于 bootstrap css...

例如

$(document).ready(function()
        $(".mnu").css("color" : "#CCFF00" , "font-size": "16px" , "text-decoration" : "overline");    


);

 instead of

.mnu


font-family:myfnt;
font-size:20px;
color:#006699;


【讨论】:

HTML应该用来提供结构,CSS应该用来提供样式,Javascript(包括jQuery)应该只用来提供交互性。使用 jQuery 覆盖样式与良好架构的原则背道而驰,并且会让任何试图在 6 个月后处理代码的人感到非常困惑。【参考方案7】:

我发现(引导程序 4)将您自己的 CSS 放在 bootstrap.css 和 .js 后面是最好的解决方案。

找到您要更改的项目(检查元素)并使用完全相同的声明,然后它将覆盖。

我花了一点时间才弄明白。

【讨论】:

【参考方案8】:

有点晚了,但我所做的是向根 div 添加了一个类,然后在我的自定义样式表中扩展了每个引导元素:

.overrides .list-group-item 
    border-radius: 0px;

.overrides .some-elements-from-bootstrap  
    /* styles here */

<div class="container-fluid overrides">
    <div class="row">
        <div class="col-sm-4" style="background-color: red">
            <ul class="list-group">
                <li class="list-group-item"><a href="#">Hey</a></li>
                <li class="list-group-item"><a href="#">I was doing</a></li>
                <li class="list-group-item"><a href="#">Just fine</a></li>
                <li class="list-group-item"><a href="#">Until I met you</a></li>
                <li class="list-group-item"><a href="#">I drink too much</a></li>
                <li class="list-group-item"><a href="#">And that's an issue</a></li>
                <li class="list-group-item"><a href="#">But I'm okay</a></li>
            </ul>
        </div>
        <div class="col-sm-8" style="background-color: blue">
            right
        </div>
    </div>
</div>

【讨论】:

body标签是否存在于div标签中? @SubratoPatnaik 它不应该。 我们如何覆盖body元素的css?使用 id 而不是类选择器是一种好习惯吗?你能帮我解决这个问题吗? @SubratoPatnaik 查看此问题的最高答案。以这种方式覆盖 CSS 规则的优先级低于 id。可能是?试试看。【参考方案9】:

为图例提供 ID 并应用 css。就像将 id hello 添加到 legend() 一样,css 如下所示:

#legend  legend 
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;

【讨论】:

【参考方案10】:

2021 年更新 - Bootstrap 4 和 Bootstrap 5

覆盖 Bootstrap CSS 时要遵循 3 条规则。

    在您的 CSS 规则(覆盖)之前导入/包含 bootstrap.css 使用比 Bootstrap CSS 选择器更多(或相等)的 CSS 特定性 如果任何规则被覆盖,请使用 !important 属性来强制执行您的规则。如果您遵循规则 1 和 2,则除非使用 Bootstrap utility classes which often contain !important as explained here,否则这不是必需的

是的,覆盖应该放在单独的styles.css(或custom.css)文件中,以便bootstrap.css 保持不变。这使得升级 Bootstrap 版本更容易,而不会影响覆盖。对styles.css 的引用bootstrap.css 之后,以便覆盖工作。

<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/styles.css">

只需在自定义 CSS 中添加所需的任何更改。例如:

legend 
  display: block;
  width: inherit;
  padding: 0;
  margin-bottom: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  white-space: initial;

注意:在覆盖 CSS 中是not a good practice to use!important,除非 您正在覆盖Bootstrap Utility classes 之一。 CSS specificity 总是适用于一个 CSS 类来覆盖另一个。只需确保您使用的 CSS 选择器与 bootstrap.css 相同或更具体

例如,考虑 Bootstrap 4 深色导航栏链接颜色。这是bootstrap.css...

.navbar-dark .navbar-nav .nav-link 
    color: rgba(255,255,255,.5);

因此,要覆盖导航栏链接颜色,您可以使用相同的选择器,或者更具体的选择器,例如:

#mynavbar .navbar-nav .nav-link 
    color: #ffcc00;

例如:https://codeply.com/p/FyQapHImHg

当 CSS 选择器相同时,最后一个优先,这就是为什么 styles.css 应该跟随 bootstrap.css

【讨论】:

这似乎没什么新意;几个现有的答案讨论了将您的样式放在一个新的 CSS 文件中,该文件在 Bootstrap CSS 文件之后加载。 #mynavbar 是导航栏的 id :D 对于新手 @Zunair #mynavbar 是navbar 的id,是navbar-navparent【参考方案11】:

要在引导程序中重置为 legend 定义的样式,您可以在您的 css 文件中执行以下操作:

legend 
  all: unset;

参考:https://css-tricks.com/almanac/properties/a/all/

CSS 中的 all 属性重置所有选定元素的 属性,但方向和 unicode-bidi 属性除外 控制文字方向。

可能的值为:initialinherit & unset

旁注:clear 属性与float (https://css-tricks.com/almanac/properties/c/clear/) 相关使用

【讨论】:

【参考方案12】:
    检查控制台上的目标按钮。 转到元素选项卡,然后将鼠标悬停在代码上并确保找到默认 ID 或引导程序使用的类。 使用jQuery/javascript调用函数覆盖样式/文本。

看这个例子:

  $(document).ready(function()
      $(".dropdown-toggle").css( 
        "color": "#212529",
        "background-color": "#ffc107",
        "border-color": "#ffc107"
       );
      $(".multiselect-selected-text").text('Select Tags');
  );

【讨论】:

【参考方案13】:

见https://bootstrap.themes.guide/how-to-customize-bootstrap.html

    对于简单的 CSS Overrides,您可以在 bootstrap.css 下面添加一个 custom.css

    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/custom.css">
    

    对于更广泛的更改,SASS 是推荐的方法。

    创建您自己的 custom.scss custom.scss 更改后导入 Bootstrap

    例如,让我们将body背景颜色更改为浅灰色#eeeeee,并将蓝色主要上下文颜色更改为Bootstrap的$purple变量...

    /* custom.scss */    
    
    /* import the necessary Bootstrap files */
    @import "bootstrap/functions";
    @import "bootstrap/variables";
    
    /* -------begin customization-------- */   
    
    /* simply assign the value */ 
    $body-bg: #eeeeee;
    
    /* or, use an existing variable */
    $theme-colors: (
      primary: $purple
    );
    /* -------end customization-------- */  
    
    /* finally, import Bootstrap to set the changes! */
    @import "bootstrap";
    

【讨论】:

以上是关于CSS样式如何修改的主要内容,如果未能解决你的问题,请参考以下文章

CSS样式如何修改

js如何更改css样式,

如何修改CSS样式表?

如何去除jquery mobile 的css样式

如何利用原生js更改css样式

js修改样式css都有哪些方法呢?