【问题标题】:Fix button styling on CSS hover?修复 CSS 悬停时的按钮样式?
【发布时间】:2020-03-02 18:12:59
【问题描述】:

在这个codepen 中,我通过在矩形末端叠加一个旋转了 90° 的正方形,创建了一个看起来像左箭头的图形。

但是,当我将鼠标悬停在它上面时,只有矩形按钮本身会改变它的背景颜色,而不是旋转的正方形,它看起来很尴尬。

如何让它们在悬停时同时改变?

我尝试在类上设置:hover 并将颜色设置为默认颜色但隐藏文本。

new Vue({
  el: '#app',
  data() {
    return {

    }
  }
})
.myButton {
  float: left;
  position: relative;
  border: 1px solid;
  border-right: none;
  width: 240px;
  height: 50px;
  cursor: pointer;
  margin-left: 60px;
}

.myButton:after {
  position: absolute;
  top: 50%;
  margin: -17.25px -119.5px;
  width: 35px;
  height: 35px;
  transform: rotate(45deg);
  background: #FF7319;
  content: ''
}
<link href="https://cdn.jsdelivr.net/npm/vuetify@1.5.14/dist/vuetify.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.5.14/dist/vuetify.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <v-app id="inspire">
    <v-container>
      <v-flex xs3>
        <v-btn color="#FF7319" class="myButton">+My Button</v-btn>
      </v-flex>
    </v-container>
  </v-app>
</div>

【问题讨论】:

  • 如果你的问题我猜对了,我想这不是边框问题,它的组件似乎有另一个颜色较深的元素,这使得主按钮颜色看起来像边框。跨度>
  • 请尝试提出更清晰的问题,并花更多的时间来准备它们,以使它们明确地为人们提供清晰的定义,这样您就不会浪费人们的时间进行不必要的猜测工作。我弄清楚了您想要什么并清理了问题,但请从中学习。
  • 另外知道我的答案是否是你正在寻找的东西会很好。我对它不是最满意的,但我可以想出最好的解决方案,而无需挖掘 vue.js 库的默认按钮 UX

标签: javascript css vuetify.js


【解决方案1】:

您的库会自动为按钮应用悬停效果,我尽力为您模仿:

.myButton:after {
    position: absolute;
    top: 50%; 
    margin: -17.25px -119.5px;
    width: 35px; 
    height: 35px;
    transform: rotate(45deg);
    background: #FF7319;
    content: '';
}
.myButton:hover{
  transition: box-shadow .4s ease-in-out;
}
.myButton:hover:after{
  box-shadow:  rgba(0,0,0,.1) 0 0 0 100px inset;
  transition: box-shadow 0.1s ease-in-out;
}

只有更改在 css 中。可能想针对时间调整一些过渡,但在我看来还是有点偏离。

编辑:我还在代码笔中将 after 伪元素的高度设置为 34.4px,因为它在那里对我来说排列得更好 - 恢复到原来的 35px。

【讨论】:

  • 接受这个作为答案。我想这让我知道在哪里寻找解决方案。
  • 我不知道,但在试错测试中,插入框阴影似乎在初始元素框阴影动画开始后的 :after 元素上触发。这就是我抵消过渡速度的原因。您可以在 vue.js 中找到修改此按钮的部分,并将那里的 css 与 this/add this 进行比较 - 但也可以在看到这些更改后更好地选择如何集成这些更改。
  • 我对 vue.js 不熟悉,但如果你没有看过这里,我会试试这个:v1.vuetifyjs.com/en/components/buttons
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 2017-09-30
  • 1970-01-01
  • 2017-04-03
  • 2017-01-16
  • 2017-02-15
  • 2010-12-02
相关资源
最近更新 更多