字形图标在悬停时改变颜色加上文本链接

Posted

技术标签:

【中文标题】字形图标在悬停时改变颜色加上文本链接【英文标题】:Glyphicons change color on hover plus a text link 【发布时间】:2013-11-04 18:31:16 【问题描述】:

我正在尝试将 Glyphicons 用于门户创意,当图标悬停在相关链接上时也会改变颜色。

<div class="portal">
<table>
<tr>
<td><div align="center"><a href="clientarea.php" class="glyphicons home"/></a></div></td>
<td><strong><a href="clientarea.php">Home</a></td>
</tr>
</table>
</div>

我已经尝试了以下

.portal a:hover 
color: #BC2328;


.portal a:hover:before 
color: #BC2328;

但这一次只会改变一个,因为我希望图标和文本 url 都改变颜色;任何一个都悬停在上面。

帮助表示赞赏。

【问题讨论】:

并不是说它一定与问题相关,但你有一个自动关闭的a 元素它有一个单独的关闭元素......就个人而言,我会也关闭&lt;strong&gt;,但也许我很挑剔。 这篇文章可能会有所帮助:***.com/questions/10803217/… 我敢说你必须手动更改它,因为你之前手动设置了伪元素的颜色。如果你只给锚标签上色,那么你应该只需要做.portal a:hover 【参考方案1】:

就像我在评论中所说,我认为问题在于您设置了伪元素的特定颜色。如果你让伪元素读取其父元素的样式,它会随之改变颜色。

您可以在this example 中看到第一个锚标记如何在伪元素上设置特定颜色,而第二个锚标记从其父元素读取。

<a href="#" class="setColor">This pseudo element has a specific color set</a>
<a href="#" class="noSetColor">This pseudo element has no specific color</a>

.setColor  color: #f00; 
.setColor:before  color: #f00; content: '#'; 
.setColor:hover  color: #00f; 

.noSetColor  color: #0f0; 
.noSetColor:before  content: '#'; 
.noSetColor:hover  color: #f0f; 

简而言之,少即是多。

【讨论】:

感谢您的回复。也许我在阅读它们时遗漏了一些东西,但似乎没有一个可以立即解决对元素的更改。如果我发布的 html 您会看到第一个 TD 元素是使用 Glyphicon 的 href,而第二个元素是带有 href 的文本。我可以让 CSS 达到这样的程度:当我将文本悬停时,图标和文本会发生变化,但当我将鼠标悬停在图标上时,文本不会改变颜色。我确实通过此链接尝试过***.com/questions/1462360/… 哦,所以您要更改两个元素,而不是一个元素及其伪? 是的,希望能够使 href 的链接都改变颜色。这样图标和链接文本就会改变,悬停在上面。对不起,如果我不清楚:( 在这种情况下尝试.portal div:hover a color: #f00; 或其他东西。【参考方案2】:

css

.no:hover [class*="glyphicons"]:before 
 color: yellow !important;

【讨论】:

什么CSS?给出一些关于答案的描述!并在回答之前阅读常见问题解答!【参考方案3】:

HTML:

<td><div align="center" class="mydiv"><a href...

CSS:

.mydiv:hover a color: #BC2328;

【讨论】:

【参考方案4】:

您可以尝试通过像这样将 :hover 伪类添加到父 div 来选择这两个元素(未测试):

.portal:hover a, .portal:hover a:before 
    color: #BC2328;

编辑

感谢 Chad 的评论,我意识到这是一种不好的做法。因此,您应该将您的锚标记包装在一个单独的包装器中,或者以不同的方式给这个锚定一个图标。 我建议这样做(有时桌子会有点乱):

HTML:

<div class="portal">
    <a class="certain-icon" href="clientarea.php" title="Home">Home</a>
</div>

CSS:

a.certain-icon  padding-left: 30px; line-height: 20px; background: url(certain-icon.png) left center no-repeat; 
a.certain-icon:hover  color: #BC2328; background: url(certain-icon-active-state.png) left center no-repeat; 

其中 padding-left 是图标的宽度 + 一些边距和行高(或只是高度,但第一个垂直居中您的锚文本)是图标的高度

【讨论】:

如果他在.portal里面有多个锚怎么办?

以上是关于字形图标在悬停时改变颜色加上文本链接的主要内容,如果未能解决你的问题,请参考以下文章

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

在菜单组件中鼠标悬停时更改按钮的图标和文本颜色

不希望导航栏链接在单击时更改颜色(悬停效果)

悬停时可折叠图标/内容颜色更改

按钮,文本和内联元素的不同颜色,两者都应该能够在悬停时改变颜色

在现代 CSS 中悬停时更改为相对颜色