Firefox和Opera渲染边框不正确

时间:2012-12-03 15:57:56

标签: css firefox border shapes

我创建了一个circular menu使用由纯CSS制作的梯形,但是当我旋转它们时,Firefox在两侧显示一条线,在Opera上,所有梯形都有一个奇怪的背景/边框颜色,有点像透明。梯形look like this

.trapezoid {
  width: 100px;  height: 0px;
  margin: 55px auto 0 auto;
  border-bottom: 140px solid black;
  border-left: 35px solid transparent;
  border-right: 35px solid transparent;
  transition: rotate (100deg);
}

Chrome和IE9都可以。 我怎样才能找到解决这个问题的方法?

2 个答案:

答案 0 :(得分:1)

你想在Firefox上使用-moz; -o for Opera。这些是在这些浏览器中正确格式化的扩展。 A great site for shapes here

.trapezoid 
{ 
        border-bottom: 100px solid red; 
        border-left: 50px solid transparent; 
        border-right: 50px solid transparent; 
        height: 0; 
        width: 100px; 
        transform:rotate(180deg);
        -moz-transform:rotate(180deg); /* Firefox 4 */
        -webkit-transform:rotate(180deg); /* Safari and Chrome */
        -o-transform:rotate(180deg); /* Opera */

}

此外,我不确定你是否试图改变某种效果;但转换代码看起来像这样:

  transition:width 2s, height 2s;
 -moz-transition:width 2s, height 2s, -moz-transform 2s; /* Firefox 4 */
 -webkit-transition:width 2s, height 2s, -webkit-transform 2s; /* Safari and Chrome */
 -o-transition:width 2s, height 2s, -o-transform 2s; /* Opera */

只需手动添加转换;然后在悬停上抛出变换。如果你试图像按钮一样添加它。希望这会有所帮助。

我使用Firebug查看了一些其他数据;使用Firefox 16.02,此代码有效:

.trapezium
{
  height: 0px;
  width: 80px;
  border-bottom-width: 80px;
  border-bottom-style: solid;
  border-bottom-color: #2d9dcd;
  border-left-width-value: 40px;
  border-left-style-value: solid;
  border-left-color-value: transparent;
  border-right-width-value: 40px;
  border-right-style-value: solid;
  border-right-color-value: transparent;
  margin-top: 30px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 10px;
}

我相信这就是你要找的东西。尝试一下,让我知道它是否有效。

答案 1 :(得分:0)

这种情况正在发生,因为缺少供应商前缀。 如下所示应用供应商前缀,您将做对。

过渡属性用于设置和计时过渡时间 https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_transitions

.trapezoid {
  width: 100px;  height: 0px;
  margin: 55px auto 0 auto;
  border-bottom: 140px solid black;
  border-left: 35px solid transparent;
  border-right: 35px solid transparent;
  -webkit-transform: rotate(100deg);
    -moz-transform: rotate(100deg);
    -o-transform: rotate(100deg);
    -ms-transform: rotate(100deg);
    transform: rotate(100deg);
}