【问题标题】:Can't override bootstrap style with my own stylesheet无法用我自己的样式表覆盖引导样式
【发布时间】:2016-11-29 13:55:06
【问题描述】:

ASP MVC 剃须刀

我尝试覆盖引导程序默认样式。我声明我的样式表如下:

 /*bootstrap and default style*/
 @Styles.Render("~/Content/css");
 /*My CSS*/
<link href="@Url.Content("~/css/main.css")" rel="stylesheet" type="text/css" /> 
        @RenderSection("Styles", required: false)

在bundleconfig中:(只有默认样式)

       bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css" ));

但是正如你在下面看到的,我的风格被 bootstrap 覆盖了。

我认为这与head标签中样式的顺序有关。但我的是在引导之后出现的,所以它应该可以工作......

我复制了完整的布局页面,以便您查看发生了什么。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("https://fonts.googleapis.com/css?family=Roboto")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("https://fonts.googleapis.com/css?family=Tangerine")" rel="stylesheet" type="text/css" />
    @Styles.Render("~/Content/css");
    <link href="@Url.Content("~/css/main.css")" rel="stylesheet" type="text/css" />
    @RenderSection("Styles", required: false)



</head>
<body>

    <div class="cachetop col-lg-12 navbar-fixed-top"></div>
    <div class=" topmenubar navbar navbar-default navbar-fixed-top ">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>

                <a class="navbar-left " href="@Url.Action("Accueil","Home")">
                    <img src="@Url.Content("../img/minilogo.png")" />
                </a>

            </div>
            <div class=" navbar-collapse collapse">
                <ul class="menuitembar nav navbar-nav">
                    <li class="menuitem nav-item active">@Html.ActionLink("Notre carte", "pizzas", "Carte", null, new { @class = "nav-link" })</li>
                    <li class="menuitem nav-item">@Html.ActionLink("Nous trouver", "Localisation", "Home", null, new { @class = "nav-link" })</li>
                    <li class="menuitem nav-item">@Html.ActionLink("Un peu d'histoire", "Histoire", "Home", null, new { @class = "nav-link" })</li>
                    <li class="menuitem nav-item">@Html.ActionLink("Travailler chez Michel", "Workwith", "Home", null, new { @class = "nav-link" })</li>

                </ul>

            </div>
        </div>
    </div>
    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <div class="text-center">
                <p>

                </p>
            </div>
        </footer>

    </div>


    @Scripts.Render("~/bundles/jquery")
    @RenderSection("Javascript", required: false)
    @Scripts.Render("~/bundles/bootstrap")
    @Scripts.Render("~/bundles/modernizr")

</body>
</html>

【问题讨论】:

  • 添加!important到你的css
  • 您可能需要在引导之前添加主 css
  • 通过添加 !important 它正在工作.. 但这是正确的做法吗?

标签: css asp.net-mvc razor overriding


【解决方案1】:

如果您使 CSS 选择器更具体,则有一个级别 specificity 来确定应用哪些样式。这样做:

li.menuitem { color: black; }

使其更具体。还添加!important 表示此样式将具有优先权:

.menuitem { color: black !important; }

小心嵌套 CSS 层次结构并使用 !important。如果您想在不同的上下文中覆盖这些更改,它可能会导致问题。仅在必要时使用,但可以使用。

【讨论】:

    【解决方案2】:

    我终于设法在不使用!important的情况下做到了

    ul.menuitembar.nav.navbar-nav li.menuitem a{
        color:black;
    }
    

    所以需要考虑特异性。

    谢谢布赖恩

    【讨论】:

      猜你喜欢
      • 2015-03-07
      • 2019-07-21
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2012-03-07
      相关资源
      最近更新 更多