IE8中的圆角,div的一部分溢出到其他div不可见

时间:2012-05-26 15:17:41

标签: html css internet-explorer-8 rounded-corners

我正在尝试创建一个具有圆角的div(应该是按钮)。我可以使用border-radius.htc或PIE.htc来解决这个问题。

我使用margin-top定位它们。流向下面另一个div的按钮部分是不可见的,它应该是可见的。检查屏幕截图:

enter image description here

.menu_buttons{
       margin-top:45px;
       overflow: visible;
       margin-left: 10px;
       width: 85px;
       height: 3em;
       vertical-align: middle; 
       float:left;
       cursor: pointer;
       text-align: center;
       font: 0.9em Arial, Helvetica, sans-serif;

       border-radius: 10px;
       behavior: url(PIE.htc);

}

.diagonal:

.diagonal{

    background-image: linear-gradient(left top, #CFD993 30%, #8DA900 68%);
    background-image: linear-gradient(-45deg, #CFD993 30%, #8DA900 68%);
    background-image: -o-linear-gradient(left top, #CFD993 30%, #8DA900 68%);
    background-image: -moz-linear-gradient(-45deg left top, #CFD993 30%, #8DA900 68%);
    background-image: -webkit-linear-gradient(135deg, #CFD993 30%, #8DA900 68%);
    background-image: -ms-linear-gradient(left top, #CFD993 30%, #8DA900 68%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#CFD993', endColorstr='#8DA900', GradientType=1); 
    /*background: #CFD993;*/


    background-image: -webkit-gradient(
            linear,
            left top,
            right bottom,
            color-stop(0.3, #CFD993),
            color-stop(0.68, #8DA900)
    );

}

我的部分内容:

<div class="diagonal" id="section1">
        <img alt="SMIC Service Management In the Cloud" src="/images/smic_small.png" id="smic">        
        <div class="link_menu">
            <button class="menu_buttons ui-corner-all smic_green" id="overview">Overview</button>
            <!--Some more <div....-->
            <button class="menu_buttons ui-corner-all smic_green" id="usage_benchmark">SMICloud<br>usage<br>benchmark</button>            
            <a class="menu_items" id="get_smic">Get SMICloud</a>
            <!--Some more <a....-->
            <a class="menu_items" id="contact">Contact</a>
         </div>  

    </div>

根据以下屏幕截图添加以下.diagonal更改外观:

position: relative;
z-index: -1;

enter image description here

当尝试将z-index -10添加到#section1下面的div时,没有任何反应。

我完全陷入困境。我怎么能这样做,创建一个圆角的div溢出到另一个div?

1 个答案:

答案 0 :(得分:2)

您应该将定义分开,以防止奇怪的行为并节省调试时间。

如果您提供的元素没有剩余的CSS,您可以使用div.menu_buttons的定义来查看在所有提到的浏览器中经过全面测试的实际示例:

请参阅此Working Example!

<强> CSS

.curved {
  -moz-border-radius:10px;        /* Firefox */
  -webkit-border-radius:10px;     /* Safari and chrome */
  -khtml-border-radius:10px;      /* Linux browsers */
  border-radius:10px;             /* CSS3 */
  behavior:url(border-radius.htc) /* Internet Explorer */
}

.menu_buttons {
  position:relative;
  top: 20px;
  margin-left: 10px;
  width: 85px;
  height: 60px;
  float:left;
  vertical-align: middle;    
  cursor: pointer;
  text-align: center;
  font: 0.9em Arial, Helvetica, sans-serif;
}

示例HTML

<div class="menu_buttons curved">.menu_buttons element</div>

下载border-radius.htc,然后查看CSS curved corner Demos and Page


TESTED ON

Windows XPProfissionalversão2002Service Pack 3

  • Internet Explorer 8.0.6001.18702
  • Opera 11.62
  • Firefox 3.6.16
  • Safari 5.1.2
  • Google Chrome 18.0.1025.168 m
  • K-Meleon 1.5.4

Windows 7 Home Edition Service Pack 1

  • Internet Explorer 9.0.8112.164211C
  • Opera 11.62
  • Firefox 12.0
  • Safari 5.1.4
  • Google Chrome 18.0.1025.168 m

Linux Ubuntu 12.04

  • Firefox 12.0
  • Chromium 18.0.1025.151(Developer Build 130497 Linux)

EDITED

与OP关于强制设备CSS position的评论相关。

Working example对于带有圆角的div,没有position设置


EDITED

在一些聊天之后的最终修复是元素包装器和元素然后自我的CSS position的正确声明。

Fiddle Example具有正确的CSS声明!