我想在页面加载时将CSS应用于某些链接按钮,但其中一个<a id="lb1">logoff</a>
必须保持其样式,没有悬停或其他事件必须更改其样式。
链接按钮没有类,并且所有这些都应用于标记的css,这样:
a
{
//style
}
a:hover
{
// style
}
有可能吗?
答案 0 :(得分:8)
不,你不能。
您可以使用更具体的选择器(甚至是带有style属性的内联CSS),以便它们不太可能被意外覆盖。
你可以使用!important
的(eugh)大锤,这样他们只会被另一个!important
规则覆盖。
但是没有办法阻止它们被覆盖。
答案 1 :(得分:4)
请在请尽可能避免使用!important
。使用它会遇到许多恼人的问题和问题。我认为这是一个非常懒惰的黑客。
您要做的是将一个类附加到您不想覆盖的链接。类比一般选择器具有更高的优先级(例如a
,p
,b
)。因此,如果您将此类附加到链接,CSS将覆盖您为a
设置的默认CSS。
CSS:
a {
color: red;
}
a:hover {
color: blue;
}
.derp:hover { /*you can add everything you want to preserve here, essentially make it the same as the link css. you can also change it to #lbl:hover, although there's no good reason to be using an ID as a CSS selector*/
color: red;
}
HTML:
<a href="#">this will turn blue on hover</a>
<a class="derp" href="#">this will stay red on hover</a>
这是向你展示的小提琴。第二个链接附加了一个类,用于保留原始样式:http://jsfiddle.net/p6QWq/
答案 2 :(得分:3)
为什么不在您想要更改的所有链接按钮上添加class
,而不是将其添加到您不想更改的链接按钮。
然后你可以打电话:
$(".myClass").css("backgound-color", "blue");
myClass
的每个元素的背景颜色更改为蓝色背景。或者您可以将全新的类添加到类myClass
的链接按钮:
$(".myClass").addClass("myExtraClass");
class
class="myclass myExtraClass"
属性
答案 3 :(得分:3)
看到您发布的代码会让您更清楚自己想要做什么。试试这个:
a {
text-decoration: none;
color: orange;
}
a:hover {
text-decoration: underline;
color: blue;
}
这会将默认样式应用于所有<a>
元素。现在,您可以通过为锚点提供具有上述ID的特定样式来覆盖此默认样式:
#lb1 {
color: black;
text-decoration: none;
}
#lb1:hover {
color: black;
text-decoration: none;
}
我在一个快速而肮脏的jsFiddle中嘲笑了这件事。看看这是否能为您提供所需的结果。 ID优先于类和默认元素样式。因此,如果您想要保持相同,请相应地应用ID和ID并设置特定元素的样式。这也可以帮助您防止必须将类应用于多个元素。应用一个ID的代码少于应用十二个类的编码。 (只是一个夸张的例子。我不知道你有多少链接。)
希望这有帮助。
答案 4 :(得分:2)
css 级联,因此您应用于代码的任何样式都将应用于此特定样式,除非您覆盖它。
您必须为所有其他按钮指定一个类,或者覆盖此特定按钮的所有默认属性。
另外,不要忘记伪类:visited和:active。
答案 5 :(得分:1)
你应该在你的css中使用!important
,如:
a {
/* style */
background: #FFF !important;
}
a:hover {
/* style */
background: #FFF !important;
}
答案 6 :(得分:0)
你总是可以通过简单地创建另一个样式表来覆盖你的css,并将它放在你html头部的样式表链接的结尾处。
<head>
<link rel="stylesheet" href="location/location/first_stylesheet.css">
<link rel="stylesheet" href="location/location/revised_stylesheet.css">
</head>
然而,这不是覆盖你的css最有效的方法;一个人建议通过简单地附加带有class属性的元素来消除这个单独样式表的必要性。类attr将允许您修改基本的html元素,标签并覆盖最后一层以“统治所有”。享受!