首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CSS3悬停不透明度缓入缓出效果?

CSS3悬停不透明度缓入缓出效果?
EN

Stack Overflow用户
提问于 2016-12-11 08:18:38
回答 3查看 18.5K关注 0票数 4

有没有更好更简单的方法来写下面的不透明缓入淡出效果?

CSS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 .button-hover {
    font-family: arial black;
    font-size: 100px;
    color: #000;

    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -ms-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
    opacity: 1;
}

.button-hover:hover {
    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -ms-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
    opacity: 0.5;
}

正如您所看到的,我重复了这两行代码,这看起来并不理想:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -ms-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="container">
    <a href="#" class="button-hover">HOVER ME</a>
</div>

jsfiddle

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-11 08:41:26

不要重复转换规则。 CSS pre-processors可以帮助添加供应商前缀,但您真的不需要(也不应该)在:hover中重复转换声明。只需在元素的默认状态中设置一次,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.button-hover {
    font-family: arial black;
    font-size: 100px;
    color: #000;
    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -ms-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
    opacity: 1;
}

.button-hover:hover {
    opacity: 0.5;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="container">
    <a href="#" class="button-hover">HOVER ME</a>
</div>

Understanding CSS3 Transitions

票数 7
EN

Stack Overflow用户

发布于 2016-12-11 08:30:59

& 可以让这一切变得简单。你可以使用SASS & LESS Mixins来实现这一点。

示例(SASS):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* Create a Mixin (SASS) */
@mixin transition($property, $time, $method) {
  -webkit-transition: $property $time $method;
  -moz-transition: $property $time $method;
  -ms-transition: $property $time $method;
  -o-transition: $property $time $method;
  transition: $property $time $method;
}

/* Include this Mixin (SASS) */
.button-hover:hover {
  @include transition(opacity, 1s, ease-in-out);
}

示例(更少):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* Create a Mixin (LESS) */
.transition(@property, @time, @method) {
  -webkit-transition: @arguments;
  -moz-transition: @arguments;
  -ms-transition: @arguments;
  -o-transition: @arguments;
  transition: @arguments;
}

/* Include this Mixin (LESS) */
.button-hover:hover {
  .transition(opacity, 1s, ease-in-out);
}

这将转换为CSS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.button-hover:hover {
  -webkit-transition: opacity 1s ease-in-out;
  -moz-transition: opacity 1s ease-in-out;
  -ms-transition: opacity 1s ease-in-out;
  -o-transition: opacity 1s ease-in-out;
  transition: opacity 1s ease-in-out;
}

更多关于、的信息

票数 3
EN

Stack Overflow用户

发布于 2016-12-11 08:20:58

这些是浏览器支持所需的前缀。您可以查看here哪些浏览器版本需要前缀,并根据您希望支持的浏览器来决定是否可以删除它们。

例如,-moz-前缀是火狐的前缀,你可以看到从火狐16开始不再需要它了,所以你可以在火狐16+中使用没有-moz-transition

阅读有关前缀here的更多信息。

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

https://stackoverflow.com/questions/41084228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文