javascript - 无法获得所需的悬停状态

标签 javascript html css wordpress

我正在处理的站点上有一个部分在容器中包含图像。我需要为图像添加一个悬停状态,在图像上方的容器内显示一个带有细边框的白色方 block (下面的屏幕截图)。我遇到麻烦的原因是因为我已经在图像上有一个框阴影。我尝试将一个添加到图像周围的其他元素中,但没有成功。如果有人能帮忙,那就太好了!

它的样子:

enter image description here

悬停时的预期效果:

enter image description here

HTML:

    .opinion .atable .acell {
      display: table-cell;
      height: 100%;
      width: 25%;
      overflow: hidden;
      border-radius: 3px;
      -webkit-border-radius: 3px;
      -moz-border-radius: 3px;
      border: 1px solid #ccc;
      background-color: #fff;
      outline: none;
      vertical-align: top;
    }
    .opinion .atable .acell:hover {
      -webkit-box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
      -moz-box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
      box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
    }
    .opinion .atable .acell .contentbox {
      position: relative;
    }
    .slideImg {
      display: none;
    }
    .opinion .atable .acell .contentbox ul {
      list-style-type: none;
    }
    .opinion .atable .acell .contentbox ul li a {
      color: white;
      display: block;
      height: 200px;
      max-width: 100%;
      width: 100%;
      background-size: cover;
      background-position: center;
      box-shadow: 0px 0px 0px 100px rgba(131, 141, 142, 0.7) inset;
    }
    .opinion .atable .acell .contentbox ul li a span {
      position: absolute;
      bottom: 0px;
      left: 0px;
      padding: 10px 10px 20px 10px;
      color: #fff;
      z-index: 10;
      display: inline-block;
      font-size: 1.3em;
      text-shadow: 1px 1px 1px #000;
      -webkit-border-top-left-radius: 4px;
      -moz-border-radius-topleft: 4px;
      border-top-left-radius: 4px;
    }
    .opinion .atable .acell .contentbox ul li a:after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      box-shadow: inset 0 0 0 350px blue;
      width: 100%;
      height: auto;
    }
<div class="opinion">
  <div class="atable">
    <div class="acell">

      <div class="contentbox">

        <ul class="slides">
          <li>
            <a href="www.google.com" title="Permalink to Broadway Project" style="box-shadow: rgba(131, 140, 142, 0.701961) 0px 0px 0px 100px inset; background-image: url('http://www.ecdevelopment.org/wp-content/uploads/2015/04/hippie-flower.jpg');">
              <img src="http://www.ecdevelopment.org/wp-content/uploads/2015/04/hippie-flower.jpg" class="slideImg wp-post-image" alt="broadwayproject2"><span>Broadway Project</span>
            </a>
          </li>
        </ul>

      </div>
    </div>
  </div>
</div>

最佳答案

我猜这就是您想要的?

我已经把我的 CSS 放在你的上面了,不需要在元素中再次复制你的。顺便说一下,你的 CSS 有一个错误(-moz-border-radius-topleft 应该是 -moz-border-top-left-radius)

div.opinion .atable .acell .contentbox ul {
  padding: 0;
  min-width: 40px;
  widows: 100%;
  margin: 0;
}
ul.slides:hover:after {
  display: block;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  left: 9px;
  top: 9px;
  position: absolute;
  border: 1px solid white;
  content: ' ';
}
.opinion .atable .acell .contentbox ul.slides a>span {
  display: none;
}
.opinion .atable .acell .contentbox ul.slides:hover a>span {
  position: absolute;
  bottom: 0px;
  left: 0px;
  padding: 20px;
  color: #fff;
  z-index: 10;
  display: inline-block;
}


/* code under this line is already in the project, you don't need it */

.opinion .atable .acell {
  display: table-cell;
  height: 100%;
  width: 25%;
  overflow: hidden;
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border: 1px solid #ccc;
  background-color: #fff;
  outline: none;
  vertical-align: top;
}
.opinion .atable .acell:hover {
  -webkit-box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
  -moz-box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
  box-shadow: 0px 5px 7px 0px rgba(50, 50, 50, 0.25);
}
.opinion .atable .acell .contentbox {
  position: relative;
}
.slideImg {
  display: none;
}
.opinion .atable .acell .contentbox ul {
  list-style-type: none;
}
.opinion .atable .acell .contentbox ul li a {
  color: white;
  display: block;
  height: 200px;
  max-width: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  box-shadow: 0px 0px 0px 100px rgba(131, 141, 142, 0.7) inset;
}
.opinion .atable .acell .contentbox ul li a span {
  position: absolute;
  bottom: 0px;
  left: 0px;
  padding: 10px 10px 20px 10px;
  color: #fff;
  z-index: 10;
  display: inline-block;
  font-size: 1.3em;
  text-shadow: 1px 1px 1px #000;
  -webkit-border-top-left-radius: 4px;
  -moz-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
}
.opinion .atable .acell .contentbox ul li a:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: inset 0 0 0 350px blue;
  width: 100%;
  height: auto;
}
<div class="opinion">
  <div class="atable">
    <div class="acell">

      <div class="contentbox">

        <ul class="slides">
          <li>
            <a href="www.google.com" title="Permalink to Broadway Project" style="box-shadow: rgba(131, 140, 142, 0.701961) 0px 0px 0px 100px inset; background-image: url('http://www.ecdevelopment.org/wp-content/uploads/2015/04/hippie-flower.jpg');">
              <img src="http://www.ecdevelopment.org/wp-content/uploads/2015/04/hippie-flower.jpg" class="slideImg wp-post-image" alt="broadwayproject2"><span>Broadway Project</span>
            </a>
          </li>
        </ul>

      </div>
    </div>
  </div>
</div>

关于javascript - 无法获得所需的悬停状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34188678/

相关文章:

css - 如何避免通过 div 中的 div 获得较低的不透明度?

javascript - 基于鼠标移动的 HTML5 平移

html - 删除电子邮件通讯表中图像之间的空间

html - 没有填充/边距的 Bootstrap 表?

html - 如何使用 Angular 将值绑定(bind)到 Web 组件的属性?

html - CSS margin 恐怖; Margin 在父元素之外添加空间

javascript - 更改 Zombie.js 的版本

javascript - 无服务器项目如何设置版本?

javascript - 如何在视频标签上播放ar​​raybuffer?

html - 仅当元素堆叠时如何设置媒体查询