如何禁用链接的引导悬停颜色?

Posted

技术标签:

【中文标题】如何禁用链接的引导悬停颜色?【英文标题】:How can I disable the bootstrap hover color for links? 【发布时间】:2013-04-11 15:24:34 【问题描述】:

我正在使用 Bootstrap。

引导程序定义

a:hover, a:focus 
    color: #005580;
    text-decoration: underline;

我有这个链接/CSS 类

<a class="green" href="#">green text</a>
<a class="yellow" href="#">yellow text</a>

如何禁用胡佛颜色?

我希望绿色链接保持绿色,黄色链接保持黄色,而不覆盖每个班级的 :hover? (这个问题不是强制性的,依赖于引导程序)。

我需要类似的东西

a:hover, a:focus 
    color: @nonhoovercolor;

我认为

.yellow 
    color: yellow !important;

这不是一个好习惯。

【问题讨论】:

【参考方案1】:

如果由于某种原因您仍在寻找超过 8 年历史的问题的答案 - 自 v4.2 以来的 Bootstrap 具有此用例的 .text-reset 类(基本上实现了 wutzebaer 答案)。请参阅文档here

【讨论】:

【参考方案2】:

如果您想为链接设置默认颜色但继续使用wutzebaer answer,请尝试以下操作:

body a 
    color:pink; /*this is the default link color*/

a 
  color:inherit;

.green 
  color:green

.red 
  color:red
<a class="green">Green</a>
<a class="red">Red</a>
<a>Default</a>

【讨论】:

【参考方案3】:

对我来说,上述简单的解决方案都不起作用,但是通过只改变悬停我就能让它工作:

  :hover 
    color: inherit;
    text-decoration: none;
  

【讨论】:

【参考方案4】:

如果您喜欢在现实世界的系统中不应该做的丑陋黑客行为;您可以从 document.styleSheets 中删除所有 :hover 样式规则。

只需使用 javascript 浏览所有 CSS 样式并删除所有在其选择器中包含“:hover”的规则。当我需要从 bootstrap 2 中删除 :hover 样式时,我会使用此方法。

_.each(document.styleSheets, function (sheet)  
    var rulesToLoose = []; 
    _.each(sheet.cssRules, function (rule, index)  
        if (rule.selectorText && rule.selectorText.indexOf(':hover') > 0)  
            rulesToLoose.push(index);
        
    );

    _.each(rulesToLoose.reverse(), function (index) 
        if (sheet.deleteRule) 
            sheet.deleteRule(index);
         else if (sheet.removeRule) 
            sheet.removeRule(index);
        
    );
);

我确实使用下划线来迭代数组,但也可以使用纯 js 循环编写那些:

for (var i = 0; i < document.styleSheets.length; i++) 

【讨论】:

加上一个迷人的黑客【参考方案5】:
a background-color:transparent !important;

【讨论】:

也添加一些解释。 请考虑用一些额外的信息和理解来扩展您的答案。仅仅一段代码不太可能对未来的访问者有所帮助。 这无关紧要。 bootstrap 只添加文本颜色,而不是背景。【参考方案6】:

我会选择this JSFiddle:

html

<a class="green" href="#">green text</a>
<a class="yellow" href="#">yellow text</a>

CSS:

body   background: #ccc 
/* Green */
a.green,
a.green:hover  color: green; 
/* Yellow */
a.yellow,
a.yellow:hover  color: yellow; 

【讨论】:

我问:“没有覆盖 :hover 为每个类” 好吧,我想从 bootstrap.css 中删除链接样式并根据需要重新设置样式会更好和更好的做法! 可能要添加 !important;以防万一。【参考方案7】:

如果有人关心我最终得到:

a 
    color: inherit;

【讨论】:

我关心 wutzebaer...我关心 这继承了锚标记的父级颜色。它不只是抓住悬停之前的颜色吗?因此,要使其正常工作,他的标记必须是 &lt;div class="yellow"&gt;&lt;a&gt;Link&lt;/a&gt;&lt;/div&gt; 才能正常工作。对吗? @Jackson_Sandland 关心 它对我不起作用。我也需要同样的东西。我在 就我而言,我需要background-color: inherit;,谢谢!【参考方案8】:

我不是 Bootstrap 专家,但在我看来,您应该定义一个名为 nohover 的新类(或类似的东西),然后在您的链接代码中添加该类作为最后一个属性值:

<a class="green nohover" href="#">green text</a>
<a class="yellow nohover" href="#">yellow text</a>

然后在您的 Bootstrap LESS/CSS 文件中,定义 nohover(使用上面的 JSFiddle 示例):

a:hover  color: red  
/* Green */
a.green   color: green; 
/* Yellow */
a.yellow   color: yellow; 
a.nohover:hover  color: none;  

在此处分叉 JSFiddle:http://jsfiddle.net/9rpkq/

【讨论】:

hm so color:none 是诀窍吗?我会试试的,但我现在在圣日=)【参考方案9】:

color: #005580; 标记为color: #005580 !important;

它将覆盖默认引导悬停。

【讨论】:

这不是答案,bootstrap 说 hoovered 链接获得颜色 #005580,但我想覆盖这个颜色保持原样的定义

以上是关于如何禁用链接的引导悬停颜色?的主要内容,如果未能解决你的问题,请参考以下文章

首先引导手机?为啥悬停仍然适用于移动设备?如何禁用悬停?

引导下拉菜单颜色悬停不起作用

如何在悬停时为链接的颜色设置动画

悬停在链接上时如何反转整个页面的颜色

悬停时如何更改导航栏链接上的文本颜色(和背景)? [复制]

悬停在 QLabel 中时如何临时更改链接的颜色?