html - 如何在悬停时更改同级元素 CSS

标签 html css

在下面的示例中,当我们将鼠标悬停在一行上时,它会改变颜色。理想情况下,当任何红色行悬停时,所有红色行都应突出显示(蓝色行也是如此)。

如何用纯 CSS 实现这一点?

.red-row:hover {
  background-color: red;
}

.blue-row:hover {
  background-color: blue;
}
<body>
  <p class="red-row">Red Row</p>
  <p class="red-row">Red Row</p>
  <p class="red-row">Red Row</p>
  <p class="blue-row">Blue Row</p>
  <p class="blue-row">Blue Row</p>
  <p class="blue-row">Blue Row</p>
</body>

最佳答案

使用:has()规则在父级上,因此如果父级有一个具有相同类的子级悬停,则具有相同类的所有其他子级都会突出显示。

注意::has() Firefox 尚不支持。

.parent:has(.red-row:hover) .red-row {
  background-color: red;
}

.parent:has(.blue-row:hover) .blue-row {
  background-color: blue;
}
<div class="parent">
  <p class="red-row">Red Row</p>
  <p class="blue-row">Blue Row</p>
  <p class="red-row">Red Row</p>
  <p class="blue-row">Blue Row</p>
  <p class="red-row">Red Row</p>
  <p class="blue-row">Blue Row</p>
</div>

关于html - 如何在悬停时更改同级元素 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77010481/

相关文章:

jquery - 用于以不同尺寸的 div 显示产品的 css,如图案

html - bootstrap 4 carousel 不同图像尺寸和屏幕尺寸的相同高度

javascript - 在 JavaScript 中的表单字段旁边打印文本

html - 为什么在使用 CSS counter() 函数时,除了最后一个之外,Chrome 中的伪元素是可选的?

html - 内联 block 元素上的 CSS 文本对齐

css - 边框不连续

jquery - 如何在灯箱弹出窗口中显示内联内容?

css - Webkit 动画仅将矩形 div 的右边缘向左移动

html - 如何在 ionic 中创建这种类型的 View ?

html - 底部表格行向右浮动