1

我正在尝试创建一些圆角的 div(应该是按钮)。我可以使用border-radius.htc 或PIE.htc 来实现它。

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

在此处输入图像描述

.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{

    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)
    );

}

我的html的一部分:

<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;

在此处输入图像描述

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

我完全被困住了。我该如何做到这一点,创建一个圆角的 div 溢出到另一个 div?

4

1 回答 1

2

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

CSS如果没有您提供的元素的剩余部分,您可以看到一个工作示例,在所有提到的浏览器上进行了全面测试,使用您的定义div.menu_buttons

请参阅此工作示例!

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弯角Demos和Page


经测试

Windows XP 专业版 2002 Service Pack 3

  • 互联网浏览器 8.0.6001.18702
  • 歌剧 11.62
  • 火狐 3.6.16
  • Safari 5.1.2
  • 谷歌浏览器 18.0.1025.168 m
  • K-Meleon 1.5.4

Windows 7 家庭版服务包 1

  • Internet Explorer 9.0.8112.164211C
  • 歌剧 11.62
  • 火狐12.0
  • Safari 5.1.4
  • 谷歌浏览器 18.0.1025.168 m

Linux Ubuntu 12.04

  • 火狐12.0
  • Chromium 18.0.1025.151(开发人员内部版本 130497 Linux)

已编辑

与 OP 对CSS position.

没有position设置的圆角 div 的工作示例


已编辑

经过一番交谈后的最终修复是正确声明position元素包装器的 CSS 和元素本身。

具有正确声明的小提琴示例!CSS

于 2012-05-26T15:38:58.757 回答