悬停时的 CSS 会影响另一个容器中的元素( Bootstrap 卡)

标签 css twitter-bootstrap hover

当我将鼠标悬停在图像上时,我试图更改 card-body class 容器内的 titletext 的颜色... 我已经看过许多类似的例子,悬停影响使用 + 或 ~ 选择器的其他元素。我的主要问题是因为我想要更改的元素位于父容器之外,除非将它们放在同一个容器下,否则我似乎无法使其工作。如果您能提供有关如何在不使用 JavaScript 的情况下实现此目的的提示,我将不胜感激。

.card-header {
  position: relative;
  overflow: hidden;
} 

.card img {
  object-fit: cover;
  transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.card img:hover {
  transform:scale(1.1);
}

.card-header img:hover + .card-body h5{
  color:var(--secondary-color);
}

/* I am stuck here */
.card-header img:hover + .card-body h5{
  color:purple;
}
<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">

<div class="card text-center mb-5 mb-sm-5">
  <div class="card-header">
  <img class="img-fluid" src="https://source.unsplash.com/collection/190727/1600x900" >
  </div>
  <div class="card-body">
    <h5 class="card-title font-weight-bold">Title</h5>
    <p class="lead">Description</p>
  </div>
</div>

最佳答案

我的解决方案:

  • card-header 中删除填充并将其重新应用到 img。现在,如果您将鼠标悬停在card-header任何部分上,您也会将鼠标悬停在img
  • 应用 card-header 中相邻同级 CSS

.card-header {
  position: relative;
  overflow: hidden;
} 

.card img {
  object-fit: cover;
  transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.card img:hover {
  transform:scale(1.1);
}

.card-header img:hover + .card-body h5{
  color:var(--secondary-color);
}

/* I am stuck here */
.card-header img:hover + .card-body h5{
  color:purple;
}

.card-header {
  padding: 0 !important;
}

.card-header img {
  padding: .75rem 1.25rem;
}

.card-header:hover + .card-body .card-title,
.card-header:hover + .card-body .lead {
  color: red;
}
<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">

<div class="card text-center mb-5 mb-sm-5">
  <div class="card-header">
  <img class="img-fluid" src="https://source.unsplash.com/collection/190727/1600x900" >
  </div>
  <div class="card-body">
    <h5 class="card-title font-weight-bold">Title</h5>
    <p class="lead">Description</p>
  </div>
</div>

关于悬停时的 CSS 会影响另一个容器中的元素( Bootstrap 卡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55014823/

相关文章:

html - 当鼠标不再悬停时,悬停动画会立即停止吗?

css - 文本框 CSS 悬停

html - Bootstrap 导航栏菜单重叠文本

javascript - 选项卡中的 Bootstrap 链接不起作用

javascript - Bootstrap 悬停图像显示示例

jQuery 结合焦点和悬停

html - ion-infinite-scroll 向上滚动时触发 - Ionic

jquery - 我关于网站中 Carousel JQuery 的问题

html - CSS 将 html 页面从黑白转换为带有 css 的颜色?

HTML|CSS : Space between input buttons