这是我的css文件,到目前为止我已经制作了一个简单的导航栏。
但关键是导航栏中的<a>
元素,当我尝试设置它们时a
和a:hover
它们只在我提供!important
时起作用。怎么了。是否存在特异性问题?
@import url('http://fonts.googleapis.com/css?family=Lato');
.navbar {
background-color: #b6b5b4;
border-style: solid;
}
.container {
background-color: #bfbfbf;
}
body {
font-family: Lato;
}
a {
color: black !important;
font-weight: bold;
}
.navbar-right {
background-color: #aeaeae;
}
a:hover {
background-color: #dfdfdf !important;
}
我是css和html的新手。
答案 0 :(得分:2)
您导入了Bootstrap,它具有默认的CSS样式。你基本上做的是试图覆盖这些风格。但是,Bootstrap似乎优先于您的CSS(可能是由于HTML文件中的导入顺序),因此需要!important
。 !important
标记确保该特定样式不会被覆盖,或者始终显示在其他样式上。
<link rel="stylesheet" type="text/css" href="main.css">
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
如果您的订购如下,则会显示Bootstrap样式,除非您使用!important
。
答案 1 :(得分:1)
正在发生的事情是像.container
这样的父div(可能没有你的html结构)有background-color
css。
此css将覆盖子hover
元素上的<a>
css。 !important
关键字仅用于此目的。它不允许其他样式覆盖自身。
这就是为什么你应该在这种情况下使用!important
关键字。
答案 2 :(得分:0)
a:hover { background: #dfdfdf !important;}
使用这个
答案 3 :(得分:0)
是的,如果你这样给予
a {
background-color: black !important;
}
!important 也会覆盖悬停状态样式。
a {
background-color: dfdfdf;
}
不起作用。
给你这样的风格
a {
background-color: black;
}
//remove !important
从!important
标记中删除<a>
。悬停状态正常工作
如果你有任何错误,请告诉我。
答案 4 :(得分:0)
您的默认css
文件包含其嵌套样式!快速解决此问题:为class
分配<a>
样式!
a.my-class {
color: black;
font-weight: bold;
}
a.my-class:hover {
background-color: #dfdfdf;
}