首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冲突Hover伪类

冲突Hover伪类
EN

Stack Overflow用户
提问于 2018-08-30 05:55:27
回答 1查看 111关注 0票数 2

在这种情况下,我使用悬停伪类来修改元素,无论是在父类上盘旋,还是当它悬停在上面时。不幸的是,它们有一个相互冲突的属性(都试图定义属性transform),这就是为什么--我猜想--当按钮悬停但光标改变时,缩放不起作用。是否只使用CSS进行了工作?

代码语言:javascript
复制
body {
  overflow: hidden;
 }

#action-panel {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 20px 20px 20px;
    position: absolute;
    right: 0;
    transform: translateY(-50%);
    top: 50%;
}

#action-panel:hover .action-button {
    opacity: 1;
    transform: translateX(0);
}

.action-button {
    background-color: lightblue;
    border-radius: 25px;
    height: 50px;
    margin-bottom: 20px;
    opacity: 0;
    transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;
    transform: translateX(calc(100% + 20px));
    width: 50px;
}

.action-button:hover {
    cursor: pointer;
    transform: translateX(0) scale(1.2);
}

.action-button span {
    font-size: 30px;
    left: 50%;
    position: relative;
    transform: translate(-50%, -50%);
    top: 50%;
}
代码语言:javascript
复制
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div id="action-panel">
    <div class="action-button"><span class="material-icons">3d_rotation</span></div>
    <div class="action-button"><span class="material-icons">compare_arrows</span></div>
    <div class="action-button"></div>
</div>

注:

如果您无法从代码中分辨,则需要将光标移动到右侧边缘的中间,以查看我所描述的效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-30 06:02:29

通过在下面的样式之前添加#action-panel,提高了它的特异性。在您的代码中,父类型的悬停样式覆盖子元素的悬停样式。

代码语言:javascript
复制
 #action-panel .action-button:hover {
  cursor: pointer;
  transform: translateX(0) scale(1.2);
}

代码语言:javascript
复制
body {
  overflow: hidden;
}

#action-panel {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 20px 20px 20px 20px;
  position: absolute;
  right: 0;
  transform: translateY(-50%);
  top: 50%;
}

#action-panel:hover .action-button {
  opacity: 1;
  transform: translateX(0);
}

.action-button {
  background-color: lightblue;
  border-radius: 25px;
  height: 50px;
  margin-bottom: 20px;
  opacity: 0;
  transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;
  transform: translateX(calc(100% + 20px));
  width: 50px;
}

#action-panel .action-button:hover {
  cursor: pointer;
  transform: translateX(0) scale(1.2);
}

.action-button span {
  font-size: 30px;
  left: 50%;
  position: relative;
  transform: translate(-50%, -50%);
  top: 50%;
}
代码语言:javascript
复制
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div id="action-panel">
  <div class="action-button"><span class="material-icons">3d_rotation</span></div>
  <div class="action-button"><span class="material-icons">compare_arrows</span></div>
  <div class="action-button"></div>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52090032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档