【问题标题】:Can't override CSS in bootstrap无法在引导程序中覆盖 CSS
【发布时间】:2016-12-18 04:53:18
【问题描述】:

正如标题所说,我的自定义 CSS 不会覆盖引导程序中的核心 CSS。我正在关注this 教程并尝试在导航栏下方添加更大的边距,但没有运气。我也在使用 Django,这是我的 html 文件:

{% load staticfiles %}

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <link rel="stylesheet" href="{% static 'css/bootstrap-override.css' %}">
    <link rel="stylesheet" href="{% static 'css/bootstrap-theme.css' %}">
    <script src="{% static 'jquery/3.1.1/jquery.min.js' %}"></script>
    <script src="{% static 'js/bootstrap.min.js' %}"></script>


  </head>
  <body>
  <nav class="navbar navbar-inverse navbar-static-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Client Sign-In</a>
        </div>  
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#">About</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Services<span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><a href="#">Design</a></li>
                        <li><a href="#">Development</a></li>
                        <li><a href="#">Consulting</a></li>
                    </ul>
                </li>
                <li><a href="#">Contact</a></li>
            </ul>
        </div>
    </div>
</nav>
<h1>Enter ID</h1>
<form method="POST" class= "post-form"> {% csrf_token %}
    {{ form.as_p }}
    <button type='submit' class="save btn-default">Save</button>
</form>

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}
<div class="container">
    <div class="row">
        <div class="col-md-4">
            <span class="glyphicon glyphicon-cloud" aria-hidden="true"></span>
            <h3>Personal Training</h3>
            <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
        </div>
        <div class="col-md-4">
            <span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>
            <h3>Physiotherapy</h3>
            <p>Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. Lorem ipsum dolor.</p>
        </div>
        <div class="col-md-4">
            <span class="glyphicon glyphicon-console" aria-hidden="true"></span>
            <h3>Boxing</h3>
            <p>Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
        </div>
    </div>
</div> 
</script>
  </body>
</html>

我的自定义 CSS 文件是 bootstrap-override.css,它的内容是:

.navbar {
    margin-bottom: 30; 
}

我尝试切换&lt;link rel="stylesheet" href="{% static 'css/bootstrap-override.css' %}"&gt;&lt;link rel="stylesheet" href="{% static 'css/bootstrap-theme.css' %}"&gt;,当我将前者放在顶部并尝试检查Chrome中的元素时,它显示.navbar {margin-bottom: 30px;}被划掉了,这意味着它被覆盖了对吧? (旁边还有一个小图标,上面写着invalid property value)这与我想要的相反。当我切换它们以使我的自定义文件位于底部时,.navbar {margin-bottom: 30px;} 仍然被划掉。我在 settings.py 中将我的STATIC-URL 变量设置为/static/。这似乎不是项目结构问题,因为 Chrome 控制台正在识别我的自定义代码。

【问题讨论】:

  • 你用过!important

标签: python html django twitter-bootstrap


【解决方案1】:

它可能会说“无效的属性值”,因为 30 不是一个单位 - 它应该是 30px

如果仍然没有覆盖,您有几个选择。

首先,Bootstrap 中的 CSS 规则可能具有更高级别的特异性 - 您应该在浏览器开发工具中查看原始选择器是什么,它正在应用您尝试覆盖的边距。例如,nav.navbar.navbar 更具体,并且会匹配更高的优先级,即使它在 CSS 中更早出现。

如果一切都失败了,让规则变得重要(尽管这通常是要避免的,并且严格用于棘手的覆盖):

.navbar {
    margin-bottom: 30px !important; 
}

【讨论】:

  • 哦……我的……天哪,我是个白痴。我花了几个小时来解决这个问题,谢谢它现在正在工作 -_- 我会给你最好的答案,因为你首先回答了,干杯
  • 感谢这个有用的答案!但只是为了弄清楚一件事:所以为了覆盖原始引导类中的一些属性,我需要做的就是在我的 main.css 中拥有相同的类?对不起,如果这个问题听起来有点愚蠢。我对前端不太了解。
【解决方案2】:

30岁以后忘记写px了吗?

.navbar {
    margin-bottom: 30px; 
}

或者你也可以试试

.navbar {
    margin-bottom: 30px !important; 
}

如果还是不行,说明你的css文件链接不正确。

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 1970-01-01
    • 2018-02-22
    • 2014-05-06
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多