html - 不透明度影响元素被另一个元素隐藏的方式

标签 html css

我在玩不透明度属性并编写了以下代码:

#outer {
  width: 500px;
  height: 500px;
  background: pink;
  margin: 50px;
  position: relative;
}
.item {
  width: 50px;
  height: 50px;
  margin-right: 10px;
  background: black;
  opacity: 0.5;
  float: left;
}
.inner {
  width: 500px;
  height: 500px;
  background: red;
  display: none;
  position: absolute;
  left: 0;
  top: 0;
}
.item:hover {
  opacity: 1;
}
.item:hover .inner {
  display: block;
}
<div id="outer">
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
</div>

我希望 inner div 在其父 item div 悬停时显示并覆盖其父 item div。因为所有其他 item div 都设置为透明以通过 inner div 显示,只有悬停的 item div 的不透明度更改为 1,我希望只覆盖悬停的 item。但是,悬停的 div 之前的所有 item div 也都被隐藏了。发生了什么事?

最佳答案

你的问题是绝对定位:它是相对于“包含 block ”的,它不是父元素,而是具有非静态位置的上升元素(在你的情况下, #outer 元素).

只需在.item中添加position: relative,它就会成为包含框。

请注意,这与不透明度无关。

工作片段:

#outer {
  width: 500px;
  height: 500px;
  background: pink;
  margin: 50px;
  position: relative;
}
.item {
  width: 50px;
  height: 50px;
  margin-right: 10px;
  background: black;
  opacity: 0.5;
  float: left;
  position: relative;
}
.inner {
  width: 500px;
  height: 500px;
  background: red;
  display: none;
  position: absolute;
  left: 0;
  top: 0;
}
.item:hover {
  opacity: 1;
}
.item:hover .inner {
  display: block;
}
<div id="outer">
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
  <div class="item">
    <div class="inner"></div>
  </div>
</div>

关于html - 不透明度影响元素被另一个元素隐藏的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068348/

相关文章:

javascript - JSON 未捕获类型错误 : Cannot set property 'innerHTML' of null

jquery - 滚动时引导菜单覆盖 Div 的标题

html - 使填充响应

css - 使这个 CSS 箭头框在 Safari 和 IE 中兼容

html - 防止 WooCommerce 图像被截断

javascript - 使用 jquery 在所有带有文本区域的表单中搜索提交按钮

html - 为什么我的字体大小不会相对于屏幕大小发生变化?

html - 简单的非滚动背景图像

javascript - 单张 OSM : Center mapview on polygon

css - 我的样式表未覆盖 Normalize.css <h1> 边距