2011-09-11 32 views
10

它所做的基本上是渲染右上角和右下角而不是正确的顶部+左下角。Internet Explorer 9(和10)向我渲染我的圆角

这里的CSS:

.formlabel, .formlabel2, .formhead{ 
    width:200px; 
    font-size:18px; 
    height:22px; 
    font-weight:normal; 
    background-color:#FF8000; 
    text-align:right; 
    margin-top:5px; 
    padding-right:1px; 
    border:none; 
    color:white;  
    -webkit-border-top-left-radius: 5px; 
    -webkit-border-bottom-left-radius: 5px; 
    -moz-border-radius-topleft: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    border-top-left-radius: 5px; 
    border-bottom-left-radius: 5px; 
} 

从我已经能够推断,这是因为他们具有direction:rtl属性的另一个类中。如果我将direction:ltr添加到上述类中,那么角落将被正确舍入。 (你可以尝试使用上面的代码,并加入direction:rtl

问题是,该网站是希伯来语,所以我需要它保持rtl。

任何想法?

+3

愚蠢的_stupid_ IE开发者。只是一点点符合性会不时好起来。 – Bojangles

+0

也许你可以使用绝对定位来堆叠两个元素,并放置背景和边框以及方向:ltr指向下层元素和上层元素上的所有rtl内容? – Neil

回答

1

我本来以为一个简单的解决方案就是在IE9 +中放置一个条件注释到<head>来使用你已经反转的css。

<!--[if gte IE 9]> 
    <style> 
     .formlabel, .formlabel2, .formhead{ 
      border-top-right-radius: 5px; /* switched from left */ 
      border-bottom-right-radius: 5px; /* switched from left */ 
     } 
    </style> 
<![endif]--> 

如果你愿意的话,而不是在条件注释使用style,你可以链接到一个单独的外部样式表来代替。

+1

IE10不再支持条件注释。 – duri

+0

@duri:这很有趣。虽然它仍然可以用于IE9,并且希望在IE10完成时它会被纠正,假设有人通知他们这个问题。 – tw16

+1

@jontsef:正如我原先所想的那样,在IE10中测试的bug已经修复,所以上面的条件语句将适用于IE9。因此问题解决了:) – tw16