html - 使用 float 在 asp.net 中出现重叠 div 的问题

标签 html css

aspx:

<div id="home_tabs" CssClass="home_tabs" runat="server">
                    <asp:Button ClientIDMode="static" Text="Cures" 
                        ID="cures_btn" CssClass="home_tab" runat="server" onclick="cures_btn_Click" />
                    <div id="home_tabs_line" CssClass="home_tabs_line" runat="server"></div>
                </div>

CSS:

.home_tab 
{
    vertical-align: top !important;
    height: 46px;
    padding: 0px 15px !important;
    line-height: 46px !important;
    background: #cecece !important;
    border-radius: 0px !important;
    box-shadow: none !important;   
    color: #000 !important;
    border: solid #fff 1px !important;
    border-bottom-width: 0px !important;
    margin-right: 10px !important;
    padding-left: 50px !important;
    z-index: 10;
}

.home_tabs_line 
{
    float: left;
    width: 100%;
    vertical-align: middle;
    height: 1px;
    z-index: 0;
    margin-bottom: 10px;
}

.home_tabs {
   height: 46px;
}

我希望 home_tabs_line 位于 home_tab div 下。我给了他们 z 索引并将行向左浮动。为什么它们不重叠?

最佳答案

您需要将外部 div 的位置设置为相对位置,将内部位置设置为绝对位置,才能使 z-index 正常工作。

之后,所有内部 div 的bottomtopleftright 值将定位div根据外层div。使用 bottom:0 可以将线粘贴到外部 div 的底部。为此,您必须删除 ma​​rgin-bottom 属性或将其值用作 bottom 的值。

CSS:

.home_tab 
{
    vertical-align: top !important;
    height: 46px;
    padding: 0px 15px !important;
    line-height: 46px !important;
    background: #cecece !important;
    border-radius: 0px !important;
    box-shadow: none !important;   
    color: #000 !important;
    border: solid #fff 1px !important;
    border-bottom-width: 0px !important;
    margin-right: 10px !important;
    padding-left: 50px !important;
    z-index: 10;
    position: absolute; /*ADDED*/
}

.home_tabs_line 
{
    background-color: blue;
    float: left;
    width: 100%;
    vertical-align: middle;
    height: 1px;
    z-index: 0;
    /*margin-bottom: 10px;*/ /*DELETED*/
    position: absolute; /*ADDED*/
    bottom:0; /*ADDED*/
}

.home_tabs {
    position:relative; /*ADDED*/
    background-color: red;
    height: 46px;
}

参见 fiddle ,例如:http://jsfiddle.net/vg2rpd7k/

关于html - 使用 float 在 asp.net 中出现重叠 div 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902303/

相关文章:

javascript - jquery滚动条隐藏菜单中的元素

html - 如何防止垂直降压

javascript - 在包含 Flash 的 iFrame 上显示 DIV

css - Javafx、css、为分割 Pane 设置背景图片?

html - 基于 css 媒体查询重新调整 DIV 的显示顺序?

javascript - 如何将 CustomMarker 与 MarkerClustererPlus 一起使用?

html - Bootstrap 4 下拉菜单位置

javascript - 如何让自定义箭头在 Slick Slider 中工作?

javascript - 用链接替换 ​​html 中的单词,但如果搜索词冲突,则更喜欢更长的单词

html - 将背景应用于 <html> 和/或 <body>