css - 为什么一个按钮仍然改变它的背景颜色,即使我设置了它的 :focus :active style?

标签 css button less pseudo-class

我的 Less 代码如下:

.btn(@width: 80px, @height: 36px, @radius, @font-size: 14px, @font-color, @color) {

    ...

    background-color: @color;
    &:focus, &:active {
        background-color: darken(@color, 10%);
        outline: none;
    }
}
.btn {
    .btn(5.8rem, 2.6rem, 0.5rem, 1.2rem, #fff, @c-blue);
}
.btn.disabled {
    background-color: @c-gray;
    &:focus, &:active {
        background-color: @c-gray;
    }
}

当我使用 <button class='btn'>button</button> 时,它将按预期运行。但是如果我使用 <button class='btn disabled'>button</button> , 当我点击按钮时,它仍然改变 background-color .

奇怪!而且它只发生在我使用移动仿真时。

浏览器是"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36" .

模拟时,"Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53" .

编译后的 CSS:

.btn {
    display: inline-block;
    width: 5.8rem;
    height: 2.6rem;
    line-height: 2.6rem;
    font-size: 1.2rem;
    color: #fff;
    text-align: center;
    background-color: #4099de;
    border-radius: .5rem;
    border: none;
    cursor: pointer
}
.btn:focus, .btn:active {
    background-color: #2380c8;
    outline: none
}
.btn.disabled {
    background-color: #9ba6ae
}
.btn.disabled:focus, .btn.disabled:active {
    background-color: #9ba6ae
}

最佳答案

使用:

.btn {
    -webkit-tap-highlight-color: rgba(0,0,0,0);    
}

关于css - 为什么一个按钮仍然改变它的背景颜色,即使我设置了它的 :focus :active style?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337404/

相关文章:

windows - Assetic 在 Windows 上生成空文件(symfony2 + less)

css - 如何更改 less 编译,使其不添加 @import 语句?

css - 我可以使用 CSS :hover to effect another elements properties?

javascript - 使用 JavaScript 更改链接标签的 href

css - 如何在 HTML 中将文本设为粗体?

创建按钮数组

css - 我可以在 LESS mixin 中使用 CSS 伪类数组吗?

html - 如何在 Bootstrap 列中居中图像

html - 我并排对齐了 2 个按钮,但现在我的背景不见了

javascript - 如何制作带有标志的语言选择器按钮? (html+js)