html - Bootstrap 类 navbar-light 不允许我更改 A 标签的文本颜色
问题描述
我正在使用 bootstrap css 创建一个网站以使其更快更容易,但是我遇到了一个问题,即当 navbar-light 存在时无法更改字体颜色,但当 navbar-light 不存在时我可以更改它。
尝试删除使其工作的 navbar-light 类,但是当我调整屏幕宽度时,移动用户获取导航的 3 行内容不起作用。
body {
margin: 0%;
padding: 0%;
}
/* Branding */
.navbar-brand {
}
/* Navigation class */
.navbar {
background-color: #3bb558;
}
/* Ul element for navigation */
.navbar-nav {
}
/* List items for navigation */
.nav-item {
}
/* A tag for navigation */
.nav-link {
color: white;
}
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<a class="navbar-brand" href="#">
<img src="/img/logo.png" width="150" height="50">
</a>
<!-- On smaller screens there will be a button for dropdown navigation. -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Runescape Max Main Rentals</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Runescape PK Rentals</a>
</li>
</ul>
</div>
</nav>
</body>
解决方案
发生这种情况是因为您的.nav-link
CSS 特异性并不比 Bootstrap 中定义的更强。
在navbar-light
添加的 BT4 中,这是默认的 CSS .nav-link
:
.navbar-light .navbar-nav .nav-link {
color: rgba(0,0,0,.5);
}
在使用一些 CSS 库时,最好的覆盖方法是复制并粘贴他们自己的 CSS 选择器并在其他地方更改它,只要确保它稍后加载即可。
所以,你的解决方案是这样的:
.navbar-light .navbar-nav .nav-link {
color: white;
}
在您的情况和最佳实践中,您可以在根级别或同一级别添加自己的前缀 CSS,这将使 CSS 特异性更强。
在根级别:
.root-project-name .navbar-light .navbar-nav .nav-link {
color: white;
}
在同一级别:
.root-project-name.navbar-light .navbar-nav .nav-link {
color: white;
}
请注意同一级别的示例(和之间没有空格,在这种情况下,您的 HTML 将如下所示:.root-project-name
.navbar-light
<div class="root-project-name navbar-light">
....
</div>
要记住的一些经验法则:
在考虑 !important 之前,请始终寻找一种使用特异性的方法
仅在覆盖外部 CSS(来自外部库,如 Bootstrap 或 normalize.css)的特定于页面的 CSS 上使用 !important。
编写插件/mashup 时切勿使用 !important。
永远不要在站点范围的 CSS 上使用 !important
推荐阅读
- amazon-redshift - 由于切片数量,Redshift Copy 命令标识列是备用值
- c# - 如何以另一种样式为基础的样式并引用其元素?
- ios - 是否可以在 Swift 中使用 CLLocationManager 获取位置服务的“重要位置”?
- c# - 线程无法访问对象,因为在使用 wpf 时另一个线程拥有它
- express - 如何将 jwt 令牌存储在 localStorage 中,并以快递的形式将其发送回服务器?
- android - 迁移到 AndroidX 后,Lollipop 下的 API 不支持按钮
- java - 如何使用简单的json在请求正文下传递json数组
- c# - SharePoint ListItemCollection.GetById 返回空 ListItem?
- python - SeqIO.parse Biopython - 我应该指定哪种文件格式?
- java - 在 Theme.AppCompat.Light 中添加图标