首页 > 解决方案 > 悬停时的叠加层比图像宽

问题描述

我一直在尝试为我使用 Bootstrap 制作的类别卡显示悬停覆盖。叠加效果很好,但唯一的问题是叠加比我的图像宽。我还需要叠加层来匹配半径,但我不确定如何解决这个问题..

我在下面提供了我的代码:

.home-categories {
  background-color: var(--bg-dark);
}

.home-category-image-container {
  padding: 0px;
  margin: 0px;
  position: relative;
  transition: .3s ease-in;
}

.home-category-image {
  border-radius: 15px;
}

.home-category-image-container:hover .category-overlay {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(4, 4, 4, 0.4);
}

.home-category-title {
  letter-spacing: 2px;
  text-transform: uppercase;
  z-index: 1000;
  color: #f2f3f4;
  opacity: .85;
  font-family: "Russo One", sans-serif;
  font-weight: 300;
  margin: 0;
  padding: 5px;
  bottom: 5px;
  right: 5px;
  position: absolute;
}

.home-category-title:hover {
  text-decoration: none;
}
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
    </script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
    </script>
   

<section class="home-categories">
  <div class="container-fluid py-5">
    <div class="row">

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>
      

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>

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

谢谢你的帮助

标签: htmlcss

解决方案


更改 CSS 喜欢

.home-category-image-container a{
  position: relative;
  display:block;
}

.home-category-image-container:hover .category-overlay {
  border-radius:15px;
}

.home-categories {
  background-color: var(--bg-dark);
}

.home-category-image-container {
  padding: 0px;
  margin: 0px;
  position: relative;
  transition: .3s ease-in;
}
.home-category-image-container a{
  position: relative;
  display:block;
}
.home-category-image {
  border-radius: 15px;
}

.home-category-image-container:hover .category-overlay {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  border-radius:15px;
  background-color: rgba(4, 4, 4, 0.4);
}

.home-category-title {
  letter-spacing: 2px;
  text-transform: uppercase;
  z-index: 1000;
  color: #f2f3f4;
  opacity: .85;
  font-family: "Russo One", sans-serif;
  font-weight: 300;
  margin: 0;
  padding: 5px;
  bottom: 5px;
  right: 5px;
  position: absolute;
}

.home-category-title:hover {
  text-decoration: none;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
    </script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
    </script>
   

<section class="home-categories">
  <div class="container-fluid py-5">
    <div class="row">

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>
      

      <div class="home-category-image-container col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2">
        <a href="#">
          <div class="category-overlay"></div>
          <img src="https://images.pexels.com/photos/47356/freerider-skiing-ski-sports-47356.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="{{category.title}}" class="home-category-image img-fluid">
          <h3 class="home-category-title" data-aos="fade-in">title</h3>
        </a>
      </div>

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


推荐阅读