如何从Firefox中删除阴影中的奇怪边框?

时间:2011-09-27 13:37:31

标签: css firefox cross-browser css3

在Firefox http://jsfiddle.net/qwbpZ/4/

中查看此小提琴

在悬停时,您会看到此灰线

enter image description here

谷歌浏览器没问题,但这个灰色边框出现在其他浏览器中。 我该如何解决这个问题?

CSS

a, a:visited {color:#fff}

.btn {
  display: inline-block;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  border-radius: 8px;
  -webkit-box-shadow: 0 9px 0 #000000, 0 13px 0 rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 9px 0 #000000, 0 13px 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 9px 0 #000000, 0 13px 0 rgba(0, 0, 0, 0.1);
  -webkit-transition: -webkit-box-shadow .2s ease-in-out;
  -moz-transition: -moz-box-shadow .2s ease-in-out;
  -o-transition: -o-box-shadow .2s ease-in-out;
  transition: box-shadow .2s ease-in-out;
  padding: 0px;
        background: black; /*  see ? */
}

.btn span {
  display: inline-block;
  padding: 22px 22px 11px;
  font-family: Arial, sans-serif;
  line-height: 1;
  text-shadow: 0 -1px 1px rgba(19,65,88,.8);
  background: #2e2e2e;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  border-radius: 8px;
  -webkit-box-shadow: inset 0 -1px 1px rgba(255,255,255,.15);
  -moz-box-shadow: inset 0 -1px 1px rgba(255,255,255,.15);
  box-shadow: inset 0 -1px 1px rgba(255,255,255,.15);
  -webkit-transition: -webkit-transform .2s ease-in-out;
  -moz-transition: -moz-transform .2s ease-in-out;
  -o-transition: -o-transform .2s ease-in-out;
  transition: transform .2s ease-in-out;
  color: #FFF;
        font-size: 32px;
        border: 0
}

.btn:hover {
  -webkit-box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
  -moz-box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
  box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
}

.btn:hover span {
  -webkit-transform: translate(0, -4px);
  -moz-transform: translate(0, -4px);
  -o-transform: translate(0, -4px);
  transform: translate(0, -4px);
}

.btn:active {
  -webkit-box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
  -moz-box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
  box-shadow: 0 8px 0 #000,
    0 12px 10px rgba(0,0,0,.3);
  -webkit-transition: -webkit-box-shadow .2s ease-in-out;
  -moz-transition: -moz-box-shadow .2s ease-in-out;
  -o-transition: -o-box-shadow .2s ease-in-out;
  transition: box-shadow .2s ease-in-out;
}
.btn:active span { 



  -webkit-transform: translate(0, 0px);
  -moz-transform: translate(0, 0px);
  -o-transform: translate(0, 0px);
  transform: translate(0, 0px);
}

3 个答案:

答案 0 :(得分:6)

似乎没有完美的解决方案:阴影和边界半径之间的这种抗偏移像素是粘性的。

所以,我想出了以下两个解决方案:

很遗憾,但这些并不是通用解决方案,我找不到合适的方法来修复错误本身。

答案 1 :(得分:1)

快速修复:将底部和侧面1px黑色边框应用于按钮 固定按钮:http://jsfiddle.net/FJGeZ/2/
注意框阴影y轴距离小1px以补偿1px底部边框,加上内部跨距带负边距以重叠父边框。

此处的孤立错误:http://jsfiddle.net/AkZE6/

答案 2 :(得分:0)

试试这个:

-moz-background-clip: padding; 
-webkit-background-clip: padding-box; 
 background-clip: padding-box;