我正在尝试为我的按钮使用渐变样式,但是,我有悬停样式的问题, 这是悬停前的按钮:
这是在悬停之后:
这是haml of button:
= link_to '#', {:class=>'tour_btn btn btn-large btn-primary', :style=>'margin-left: 10px; width: 105px;'} do
%h3
Take a Tour
LESS:
.tour_btn {
#gradient > .vertical(#F98C51, #a35b35);
}
请问好吗?是否可以为悬停状态指定另一种渐变样式? 或者至少,不要在悬停时更改按钮?
答案 0 :(得分:31)
Twitter Bootstrap在悬停时通过转换为background-position
设置动画(因为背景渐变无法进行转换)。在你的情况下发生了什么,背景渐变是用background-position: -15px
向上移动,你看到下面的背景颜色。
要解决此问题,请将您的background-color
设置为悬停时按钮渐变的底部颜色:
.tour_btn {
#gradient > .vertical(#F98C51, #a35b35);
&:hover { background-color: #a35b35 }
}
答案 1 :(得分:6)
如果您为按钮设置了背景图片,则背景会在悬停时向上移动15px
。您可以将其设置为0px
。
.tour_btn:hover {
background-position: 0px !important;
}
答案 2 :(得分:5)
使用自定义css代替LESS来设置按钮样式时,请尝试http://twitterbootstrapbuttons.w3masters.nl/?color=%23F1874E。您将获得自定义按钮的所有CSS,包括悬停效果和禁用/活动状态。
对于上面的按钮,您可以使用:
.btn-custom-lighten.active {
color: rgba(255, 255, 255, 0.75);
}
.btn-custom-lighten {
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #f29461;
background-image: -moz-linear-gradient(top, #f1874e, #f5a77d);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f1874e), to(#f5a77d));
background-image: -webkit-linear-gradient(top, #f1874e, #f5a77d);
background-image: -o-linear-gradient(top, #f1874e, #f5a77d);
background-image: linear-gradient(to bottom, #f1874e, #f5a77d);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff1874e', endColorstr='#fff5a77d', GradientType=0);
border-color: #f5a77d #f5a77d #ef7736;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
*background-color: #f5a77d;
/* Darken IE7 buttons by default so they stand out more given they won't have borders */
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-custom-lighten:hover,
.btn-custom-lighten:focus,
.btn-custom-lighten:active,
.btn-custom-lighten.active,
.btn-custom-lighten.disabled,
.btn-custom-lighten[disabled] {
color: #ffffff;
background-color: #f5a77d;
*background-color: #f39766;
}
.btn-custom-lighten:active,
.btn-custom-lighten.active {
background-color: #f1874e ;
}
用法:
<button class="btn btn-custom-lighten btn-large">Your button</button>
在引导程序(.min).css之后/之后添加CSS 使用这个css,你可以在大多数浏览器中使用自定义按钮效果。
答案 3 :(得分:4)
当使用css:hover属性悬停按钮时,您可以指定CSS的内容。
所以在你的情况下你会想做类似
的事情.tour_btn:hover {
/* your custom css */
}
使用chrome开发人员工具,你应该能够看到bootstrap当前正在应用哪种渐变,然后用你的css覆盖它们。
答案 4 :(得分:1)
.tour_btn:hover {
background-color: #a35b35;
background-position: 30px 30px;
}
我发现这个解决方案你可以尝试这个。它适用于简单的代码