2012-08-26 164 views
0

我有一个background-color的div和一个3像素的白色边框。在IE9边框右侧显示背景

当我html元素设置为direction:rtloverflow-y: scroll,我得到的背景,边框右侧的像素 - 只有在IE9:

enter image description here

我在这里贴上我的代码,因为在JsFiddle上我无法复制这个bug。

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <style> 
      html { 
       overflow-y: scroll; 
       direction:rtl; 
      } 
      .main { 
       margin: 0 auto; 
       width: 960px; 
      } 
      .sld-menu-item { 
       height: 85px; 
       border: 3px solid #fff; 
       background-color: #d25188; 
      } 
    </style> 
</head> 
<body> 
    <div class="main" role="main"> 
     <div class="sld-menu-item sld-menu-item-2"> 
     </div> 
    </div> 
</body> 

有没有人遇到这个问题,和/或可有人提出一个解决办法?我不能放弃滚动和RTL规则...

回答

1

我只能通过设置溢出来解决它:隐藏在包含的元素,并做阴性切缘黑客:

.main { 
    overflow: hidden; 
} 
.sld-menu-item { 
    margin-right: -1px; 
} 

您也可能然后想设置sld-menu-item的宽度为961px。大概可以把它放在IE9条件语句中。我希望有更好的解决方法。

1

我把头撞在墙上好几个小时,最后我用一种很奇怪的方式解决了它... 将.main的宽度改为961px,似乎微软并不知道如何找到甚至范围的“中间”。