我有问题。为什么style.css中的颜色定义不会覆盖嵌套在ID中的颜色:#main-nav?
HTML
<head>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<div id="main-nav" class="navbar-default" role="banner">
content
</div>
</body>
bootstrap.css
.navbar-default {
color: black;
}
的style.css
#main-nav .navbar-default {
color: white;
}
有趣的是如果我更改代码如下:
的style.css
.navbar-default {
color: white;
}
颜色参数已更改。有人可以解释一下为什么ID的第一种方式不起作用吗?
答案 0 :(得分:5)
替换此行:
#main-nav .navbar-default
有了这个:
#main-nav.navbar-default
答案 1 :(得分:2)
您在style.css文件中使用了descendant selector,这意味着您的CSS正在寻找标识为#main-nav
的元素的后代,其类别为.navbar-default
您真正尝试选择的是ID为#main-nav
的元素,其类别为.navbar-default
,因此,要解决您的问题,只需删除后代选择器(即空格),即可你:
#main-nav.navbar-default
您可能还想阅读CSS specificity。
答案 2 :(得分:1)
主导航标识paths
与导航栏默认类paths: {
'A/B/C': 'src/js/a',
// and whatever else you'd need...
}
位于同一元素
因此,要使用CSS选择它,您可以使用
#main-nav
答案 3 :(得分:1)
好的,所以这里的主要问题是你正在使用的选择器。
您的选择器
#main-nav .navbar-default {
color: white;
}
这意味着它为具有类 .navbar-default 的元素以及父 #main-nav
设置了白色但在您的情况下, .navbar-default 本身的ID #main-nav 不是其父级。这就是为什么您的选择器不能按照您的要求工作的原因。
您需要按照以下方式更改代码
#main-nav.navbar-default {
color: white;
}