不同选择器组合中的 CSS 过渡

标签 css transition

我有一个 CSS 代码,它定义了到指定属性的转换,如下所示:

button {
    background-color: #fff;
    box-shadow: none;
    transition: background-color .3s ease, box-shadow .3s ease;
}

button:hover {
    box-shadow: 0 2px 2px 6px rgba(0,0,0,.1);
    background-color: #ddd;
}

我有另一个适用于同一个元素的代码,但使用了不同的选择器:

button.active {
    color: #808080;
    transition: color .3s ease;
}

button.active:hover {
    color: #ccc;
}

因此,存在重叠,只有一个过渡有效。 是否可以组合这些 CSS 转换以使它们协同工作?

最佳答案

将它们结合起来。

button.active {
  color: #808080;
  transition: background-color .3s ease, box-shadow .3s ease, color .3s ease;
}
button.active:hover {
  color: #ccc;
}

或使用all(完全取决于您要实现的目标)。

button.active {
  color: #808080;
  transition: all .3s ease;
}
button.active:hover {
  color: #ccc;
}

关于不同选择器组合中的 CSS 过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805630/

相关文章:

类似于 setinterval 的 CSS3 crossfade

css 简单悬停淡入淡出

html - 具有 3 种不同背景的侧边栏

javascript - 使用javascript淡化图像循环

javascript - 两个不同方向的 Bootstrap 轮播

javascript - 网格模板列动画

css - 谷歌浏览器黄色轮廓无法删除

html - 我可以防止过多加载多个 css 文件吗?

jquery - 如何在开始转换之前阻止移动 Safari 暂停

iPhone Flip 转换 - 我可以在中途收到通知吗