1

我有这个具有内联样式的按钮。它是内联的,因为它是用户选择的,所以不幸的是无法将一个类链接到这个。

所以我有以下 CSS 内联:

background: #1e5799; /* Old browsers */
background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* IE10+ */
background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */

所以我的问题是,如何在我想以某种方式简单地反转背景的地方应用悬停颜色。但请记住,我事先不知道颜色,所以我不能真正在悬停时应用任何颜色。但如果我只是简单地反转背景,这将模拟悬停效果。

此外,按钮可以是可变大小的。

这可以做到吗?

这是一个小提琴http://jsfiddle.net/hLrvA/

我试过这个,它有点工作,但不是真的,因为它没有填充按钮。

a:hover { background-position:0 -15px !important; }

任何有关我如何实现这一目标的见解都将不胜感激。

4

2 回答 2

0

我在尝试更改 :hover 上的背景颜色属性时遇到了类似的情况

HTML

<div class="demo"></div>

CSS

.demo{
    width: 50px;
    height: 150px;
    background: #388cb6;
    background: -moz-linear-gradient(top, #41a2c5 0%, #388cb6 50%, #327cab 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#41a2c5), color-stop(50%,#388cb6), color-stop(100%,#327cab));
    background: -webkit-linear-gradient(top, #41a2c5 0%,#388cb6 50%,#327cab 100%);
    background: -o-linear-gradient(top, #41a2c5 0%,#388cb6 50%,#327cab 100%);
    background: -ms-linear-gradient(top, #41a2c5 0%,#388cb6 50%,#327cab 100%);
    background: linear-gradient(to bottom, #41a2c5 0%,#388cb6 50%,#327cab 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#41a2c5', endColorstr='#327cab',GradientType=0 );

}
.demo:hover{
    background-color: red;
}

以上不起作用,但是如果您直接定位背景而不是更具体的背景颜色,它将起作用:

.demo:hover{
    background: red;
}

似乎大多数浏览器更喜欢单个内联背景声明而不是单个属性。

注意:我使用了一个伪类来说明它不仅限于锚链接。

于 2013-09-09T13:08:14.500 回答
0

在悬停状态下反转背景颜色的唯一方法是交换每个背景属性中的十六进制值。

但是,您可以应用悬停状态,该状态使用基于默认状态的渐变中定义的颜色的渐变。

在 jsFiddle 上查看

HTML:

<a href="#">Button</a>

CSS:

a {
    background: #1e5799; /* Old browsers */
    background: -webkit-linear-gradient(#1e5799, #7db9e8);
    background: -moz-linear-gradient(#1e5799, #7db9e8);
    background: -o-linear-gradient(#1e5799, #7db9e8);
    background: linear-gradient(#1e5799, #7db9e8);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
    background-size:1px 200px;
    border-radius: 8px;
    color: #fff;
    cursor:pointer; 
    display: block;
    font-size: 1.4em;
    height: 100px;
    line-height: 100px;
    text-decoration: none;
    text-align: center;
    width: 200px;

    -webkit-transition: background 1s ease-out;
       -moz-transition: background 1s ease-out;
         -o-transition: background 1s ease-out;
            transition: background 1s ease-out;
}

a:hover {
    background-position:100px;
}
于 2013-02-10T03:48:29.140 回答