如何在悬停时使按钮内的文本透明?背景应该保持不变

Posted

技术标签:

【中文标题】如何在悬停时使按钮内的文本透明?背景应该保持不变【英文标题】:How to make text inside a button transparent on hover? background should remain the same though 【发布时间】:2017-12-31 15:59:33 【问题描述】:

如何使按钮内的文本在悬停时透明?但是背景应该保持不变。我试过不透明度:0;但它使整个按钮不可见。帮助。我尝试了以下代码。

<style>
.btn:hover 
    background-color: #ededed !important;
    color: #3c3c3c !important;
    opacity:0;

</style>

<button class=" btn btn-success  btn-lg">test button</button>

【问题讨论】:

我觉得你可以用color: rgba(255,255,255,0) 我试过了,但它使整个块变成白色。让我澄清一下,成功按钮是绿色的,所以我希望按钮的背景保持绿色。但我想让按钮的文本透明,以便我可以看到我的背景图像作为文本背景颜色。 我完全明白你想要什么。但我想知道为什么颜色属性上的 rgba 不应该......它应该只适用于颜色属性,所以文本..为什么你的整个块都变白了?并且 rgba 使用 0 的 alpha 通道,所以它应该变得透明......你使用什么浏览器? ***.com/a/10835846/7111561 我正在使用 Chrome。在 Firefox 和 Opera 上也试过。仍然,问题没有解决。 【参考方案1】:

您需要为color 规则使用rgba(color,color,color,opacity);

试试这个小提琴: https://jsfiddle.net/reala/5xq3mj66/

编辑:好的 - 我想我明白你的要求了。

您希望文本在悬停时为 TRANSLUCENT(但不是不可见,即“透明”),以便您可以通过文本看到背景。

非常相似的解决方案,但是将 rgba 的不透明度更改为非常低的值,例如 0.3... 例如:

.btn:hover 
   color: rgba(0,0,0,0.3);

记得删除您的opacity: 0,或将其重置为opacity: 1 - 否则会使整个按钮透明。这不是你想要的。

【讨论】:

我尝试了您建议的所有方法,但仍然无法解决问题。文本颜色变为透明,但它不显示背景图像(我的网站的主要背景图像)通过它。相反,它变成按钮背景颜色的任何指定颜色的块。例如。我的按钮背景是“绿色”,我的页面背景是“蓝色图像”。所以它应该在悬停时显示“蓝色图像通过”文本。不是按钮背景颜色,即“绿色”。希望你现在明白我想说什么。 @VipulTyagi 听起来您正试图在您的“按钮文本”形状中创建一个“洞”通过您的按钮...以显示您的“蓝色背景” ",悬停时,仅在按钮的文本区域中。我认为这是不可能的,因为“按钮文本”是“按钮”的子项,而不是“主要背景”的直接子项。当您降低按钮文本颜色的“透明度”时,它将显示“背后”的任何内容。在您的情况下,这是它的父级“按钮”。因此,降低透明度将正确显示绿色,而不是蓝色。 如果你查看这个更新的小提琴,你可能会得到一些关于如何发挥创造力的想法。此示例使“按钮”变为透明,以显示蓝色,而文本仍然可见。这可能不是您想要的——而是朝着正确方向迈出的一步。您最好的选择可能是考虑为您的文本使用“css 图像蒙版”(您必须查看它),并通过使用“图像”作为文本颜色来假装它是透明的。这是我指的小提琴jsfiddle.net/reala/5xq3mj66/6 好的。我得到了它。非常感谢您的帮助。 :) 很想向你们学习更多。

以上是关于如何在悬停时使按钮内的文本透明?背景应该保持不变的主要内容,如果未能解决你的问题,请参考以下文章

如何为 ButtonGroup 内的 MUI 按钮设置悬停行为

CSS:将文本向下移动几个像素但保持背景不变?

在悬停时使浮动图像透明会导致它“跳跃”[重复]

悬停时按钮背景不变

将鼠标悬停在 iframe 上时如何显示文本

如何创建具有不透明度的父 div,同时将文本的不透明度保持在 100% [重复]