如何使文本透明(HTML/CSS)

Posted

技术标签:

【中文标题】如何使文本透明(HTML/CSS)【英文标题】:How to make text transparent (HTML/CSS) 【发布时间】:2021-12-19 23:06:27 【问题描述】:

我一直在尝试使我的文本透明,以便它变成与我的变色背景完全相同的颜色。下面是我正在使用的代码;非常感谢您的帮助。

<body>
<ul>
 <li><a href="mission.html" id=navbar>Dummy Text</a></li></ul>
</body>

<style>
body
  animation: 10000ms ease-in-out infinite color-change;  padding: 5px 5%;


@keyframes color-change 
  0% 
    background-color:#0047ff;
  

  50% 
    background-color:#6f0ce8;
  

  100% 
    background-color:#0047ff;
  



ul 
  list-style-type:none;


#navbar
  font-weight: bolder;
  font-size: 33px;
  background-color: black;
  color: white;
  border-radius: 0.9rem;
  margin: 0.9rem;
  transition: 0.3s;
  text-decoration:none

</style>

【问题讨论】:

color: transparent; 此问题可能与https://***.com/questions/10835500/how-to-change-text-transparency-in-html-css 重复,但您可以使用opacity: 0 只是澄清一下-您希望导航栏本身是黑色的,但其中的文本有点像在黑色中“打一个洞”,以便身体的不断变化的背景颜色显示出来-对吗? 这能回答你的问题吗? How to change text transparency in HTML/CSS? 【参考方案1】:

body 
  background-color: #0047ff;


ul 
  list-style-type: none;


#navbar 
  font-weight: bolder;
  font-size: 33px;
  background-color: black;
  color: white;
  border-radius: 0.9rem;
  margin: 0.9rem;
  transition: 0.3s;
  text-decoration: none


a:hover 
  opacity: 0
<ul>
  <li><a href="mission.html" id=navbar>Dummy Text</a></li>
</ul>

【讨论】:

【参考方案2】:

一个技巧是使用文本掩码去除元素的背景。

在这种情况下,我们为每个 li 中的 a 元素赋予与你赋予 body 相同的背景(即动画)。

使 a 元素中的颜色透明,它会掩盖其背景,使其看起来好像背景与主体相同。

body 
  animation: 10000ms ease-in-out infinite color-change;
  padding: 5px 5%;


@keyframes color-change 
  0% 
    background-color: #0047ff;
  
  50% 
    background-color: #6f0ce8;
  
  100% 
    background-color: #0047ff;
  


ul 
  list-style-type: none;


li a 
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: 10000ms ease-in-out infinite color-change;
  padding: 5px 5%;


#navbar 
  font-weight: bolder;
  font-size: 33px;
  background-color: black;
  color: white;
  border-radius: 0.9rem;
  margin: 0.9rem;
  transition: 0.3s;
  text-decoration: none;
<body>
  <ul id="navbar">
    <li><a href="mission.html">Dummy Text</a></li>
  </ul>
</body>

注意:为了获得精确的精度,我们需要稍微改变背景的位置 - 在上面的例子中,这种错觉是有效的,因为导航栏靠近身体的顶部,而线性渐变并没有太大变化,所以它或多或少在正确的地方。

【讨论】:

以上是关于如何使文本透明(HTML/CSS)的主要内容,如果未能解决你的问题,请参考以下文章

html CSS使元素鼠标透明

如何使文本在 html/css 中响应?

带边框的透明文本 html/css

在 html/css 中实现白色不透明效果

HTML+CSS+JS实现 ❤️svg图片透明层文本显示❤️

如何使用透明间距/边框在行之间留出空间 - HTML/CSS