为什么我的 CSS 不透明度过渡不起作用?

Why is my CSS opacity transition not working?

我刚开始学习 CSS 和 运行 解决工具提示的不透明度 t运行 问题。我做了一个例子,只包含适用于这个问题的代码。我创建了一些工具提示,并想为工具提示的某些变体添加不透明度 t运行sition,但我无法让它工作。

悬停文本时可见性触发正常,但是当向控制悬停不透明度的元素添加第二个 class 时没有任何反应,我尝试重写它以仅使用一个 class但这产生了相同的结果。从我发现和阅读的所有文档来看,这应该是有效的,所以我很沮丧。

任何解决此问题的建议都将不胜感激。

<!DOCTYPE html>
<html>
<style>
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
  text-align: center;
}

.tooltip_content{
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: orangered;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
}

#tooltip_content_demo_8{
  position: absolute;
  z-index: 1;
  top: -10px;
  left: 105%;
  opacity: 0.1;
  transition: opacity 1s;
}

#tooltip_content_demo_8::after{
  content: " ";
  position: absolute;
  top: 50%;
  right: 100%; /* To the left of the tooltip */
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent black transparent transparent;
}

.tooltip:hover .tooltip_content{
  visibility: visible;
}
.tooltip:hover .tooltip_content_styled{
  opacity: 1;
}

</style>



<body style="text-align:center;">

<h2>Fade In Tooltip on Hover</h2>
<p>When you move the mouse over the text below, the tooltip text will fade in and take 1 second to go from nearly invisible to visible.</p>

<div class="tooltip" id="tooltip_demo_8">Hover over me to tooltip
<span class="tooltip_content tooltip_content_styled" id="tooltip_content_demo_8">This is the tooltip text content</span>
</div><br/>

</body>
</html>

ID选择器总是由class支配。因此,必须添加特殊条件 !important 才能使 opacity: 1 起作用。下面是一个例子。

body {
  text-align: center;
}

.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
  text-align: center;
}

.tooltip_content {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: orangered;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
}

#tooltip_content_demo_8 {
  position: absolute;
  z-index: 1;
  top: -10px;
  left: 105%;
  opacity: 0.1;
  transition: opacity 1s;
}

#tooltip_content_demo_8::after {
  content: " ";
  position: absolute;
  top: 50%;
  right: 100%;
  /* To the left of the tooltip */
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent black transparent transparent;
}

.tooltip:hover .tooltip_content {
  visibility: visible;
}

.tooltip:hover .tooltip_content_styled {
  opacity: 1 !important;
}
<h2>Fade In Tooltip on Hover</h2>
<p>When you move the mouse over the text below, the tooltip text will fade in and take 1 second to go from nearly invisible to visible.</p>

<div class="tooltip" id="tooltip_demo_8">Hover over me to tooltip
  <span class="tooltip_content tooltip_content_styled" id="tooltip_content_demo_8">This is the tooltip text content</span>
</div><br/>