DIV下拉菜单覆盖其他内容



我正在尝试制作它,以便当您单击DIV中的图标时,会有一个下拉框显示并覆盖DIV的内容。但是现在,我的下拉框只是推出DIV的内容,而不是叠加它。在此网站上浏览了类似的问题之后,我几乎可以肯定的是,我的CSS必须在我的CS中做出一些要素的位置:相对和其他元素位置:绝对,但是我已经玩了一段时间了,似乎无法使其正常工作。以下是我的代码的干净版本(没有各种位置尝试)。

相关的CSS代码是:

#ideas_box {
    display: inline-block;
    *display: inline;
    background-color: white;
    min-width: 1110px;
    overflow: hidden;
    margin: 0px 20px 20px 20px;
    border: solid 1px #6a6a6a;
    box-shadow: 3px 3px 3px #cecdcd;
    -moz-box-shadow: 3px 3px 3px #cecdcd;
    -webkit-box-shadow: 3px 3px 3px #cecdcd;
}
#ideas_box_majority_bar_green{
    display: inline-block;
    *display: inline;
    float: left;
    width: 10px;
    margin-bottom: -1000px;  /* for making green bar as large as parent div */
    padding-bottom: 1000px; /* for making green bar as large as parent div */
    background-color: #a8fba6;
}
#ideas_box_main_content {
    display: inline-block;
    *display: inline;
    float: left;
    width: 100%;
    margin: 10px 0px 10px 20px;
}
#ideas_box_top {
    display: inline-block;
    *display: inline;
    float: left;
    width: 100%;
    overflow: hidden;
}
#ideas_box_top_image {
    display: inline-block;
    *display: inline;
    float: left;
    width: 60px;
}
#ideas_box_top_titlebar {
    display: inline-block;
    *display: inline;
    float: left;
}
#ideas_box_top_titlebar_title {
    display: inline-block;
    *display: inline;
    float: left;
    width: 100%;
    padding: 5px 0px 0px 0px;
    color: #060708;
    font-family: "Arial";
    font-size: 150%;
}
#ideas_box_top_titlebar_postInfo {
    display: inline-block;
    *display: inline;
    float: left;
    width: 100%;
    color: #363636;
    font-family: "Arial";
    font-style: italic;
    font-size: 80%;
}
#ideas_box_top_iconBar {
    display: inline-block;
    *display: inline;
    float: right;
    width: 150px;
    padding-right: 30px;
}
#ideas_box_top_iconBar_comment {
    display: inline-block;
    *display: inline;
    float: left;
    width: 50px;
    text-align: center;
    color: #060708;
    font-family: "Arial";
}
#ideas_box_top_iconBar_thumbsUp {
    display: inline-block;
    *display: inline;
    float: left;
    width: 50px;
    text-align: center;
    color: #060708;
    font-family: "Arial";
}
#ideas_box_top_iconBar_thumbsDown {
    display: inline-block;
    *display: inline;
    float: left;
    width: 50px;
    text-align: center;
    color: #060708;
    font-family: "Arial";
}
#ideas_box_content {
    float: left;
    overflow: hidden;
    color: black;
    font-family: "Arial";
    font-size: 100%;
    margin-right: 40px;
}

#comments_dropDown_box_point {
    display: none;
    width: 20px;
    height: 14px;
    position: relative;
    left: 13px;
    top: 3px;
    background:url('../img/box_point.png'); 
    z-index: 10;
}
#comments_dropDown_box {
    display: none;
    position: relative;
    width: 70px;
    color: black;
    background-color: white;
    border: solid 1px #C2C2C2;
    overflow: auto;
    left: -13px;
    top: 2px;
    z-index: 9;
    border-radius: 6px;
    -moz-border-radius: 6px;
    -webkit-border-top-right-radius:6px;
    -webkit-border-top-left-radius:6px;
    -webkit-border-bottom-left-radius:6px;
    -webkit-border-bottom-right-radius:6px;
    border: solid 1px #C2C2C2;
    box-shadow: 3px 3px 3px #cecdcd;
    -moz-box-shadow: 3px 3px 3px #cecdcd;
    -webkit-box-shadow: 3px 3px 3px #cecdcd;
}
#comments_dropDown_box .comments_dropDown_row {
    float: left;
    width: 100%;
    overflow: auto;
    text-align: center;
    padding: 5px 0px 5px 0px;
    font-style: italic;
}
#comments_dropDown_box .dropDown_divider {
    float: left;
    width: 100%;
    height: 2px;
    background-color: #dfdede;
}

HTML代码是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="application/xml; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<html lang="en">
<head>
    <!-- JQUERY -->
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="js/scripts_ideaboard.js"></script>
    <!-- CSS -->
    <link type="text/css" href="css/ideaboard.css" rel="stylesheet"  media="screen">
</head>
<body>
    <!-- LIST -->
    <div id="ideas_box">
        <div id="ideas_box_majority_bar_green"></div>
        <div id="ideas_box_main_content">
            <div id="ideas_box_top">
                <div id="ideas_box_top_image"></div>
                <div id="ideas_box_top_titlebar">
                    <div id="ideas_box_top_titlebar_title">Test</div>
                    <div id="ideas_box_top_titlebar_postInfo">Test on Aug 09 2017, 08:37:58pm</div>
                </div>
                <div id="ideas_box_top_iconBar">
                    <div id="ideas_box_top_iconBar_comment">
                        <img src="img/comments.jpg" style="height: 40px; width: 40px;"><br>
                        +8
                        <!-- display drop down for comments -->
                            <div id="comments_dropDown_box_point"></div>
                            <div id="comments_dropDown_box">
                                <div class="comments_dropDown_row">
                                    User1
                                </div>
                                <div class="dropDown_divider"></div>
                                <div class="comments_dropDown_row">
                                    User2
                                </div>
                                <div class="dropDown_divider"></div>
                                <div class="comments_dropDown_row">
                                    User3
                                </div>
                            </div>
                        <!-- END display drop down for comments -->
                    </div>
                    <div id="ideas_box_top_iconBar_thumbsUp">
                        <img src="img/like.jpg" style="height: 40px; width: 40px;"><br>
                        +3
                    </div>
                    <div id="ideas_box_top_iconBar_thumbsDown">
                        <img src="img/dislike.jpg" style="height: 40px; width: 40px;"><br>
                        -2
                    </div>
                </div>
            </div>
            <div id="ideas_box_content">
            This is a test
            </div>
        </div>
    </div>
    <!-- LIST -->
    <div id="ideas_box">
        <div id="ideas_box_majority_bar_green"></div>
        <div id="ideas_box_main_content">
            <div id="ideas_box_top">
                <div id="ideas_box_top_image"></div>
                <div id="ideas_box_top_titlebar">
                    <div id="ideas_box_top_titlebar_title">Test</div>
                    <div id="ideas_box_top_titlebar_postInfo">Test on Aug 09 2017, 08:37:58pm</div>
                </div>
                <div id="ideas_box_top_iconBar">
                    <div id="ideas_box_top_iconBar_comment">
                        <img src="img/comments.jpg" style="height: 40px; width: 40px;"><br>
                        +8
                        <!-- display drop down for comments -->
                            <div id="comments_dropDown_box_point"></div>
                            <div id="comments_dropDown_box">
                                <div class="comments_dropDown_row">
                                    User1
                                </div>
                                <div class="dropDown_divider"></div>
                                <div class="comments_dropDown_row">
                                    User2
                                </div>
                                <div class="dropDown_divider"></div>
                                <div class="comments_dropDown_row">
                                    User3
                                </div>
                            </div>
                        <!-- END display drop down for comments -->
                    </div>
                    <div id="ideas_box_top_iconBar_thumbsUp">
                        <img src="img/like.jpg" style="height: 40px; width: 40px;"><br>
                        +3
                    </div>
                    <div id="ideas_box_top_iconBar_thumbsDown">
                        <img src="img/dislike.jpg" style="height: 40px; width: 40px;"><br>
                        -2
                    </div>
                </div>
            </div>
            <div id="ideas_box_content">
            This is a test
            </div>
        </div>
    </div>
</body>

JS代码是:

$(document).ready(function() {
    $("#ideas_box_top_iconBar_comment").click(function()
    {
        $("#comments_dropDown_box").toggle();
        $("#comments_dropDown_box_point").toggle();
    });

});

实时版本在这里:http://quickid.net/test/ideaboard.html(单击第一篇文章中的注释图标)

任何帮助都将不胜感激。

正如我在评论中提到的那样 - 您必须对其余的代码进行更多的重新格式化,以使其完全按照您的需求工作,但是我有一段时间,所以我以为我会告诉你如何制作整个position: relativeposition: absolute

首先,我将所有ID更改为类,并在您的父元素上删除了您的overflow: hidden - 使用此活动,将无法将您的"工具提示"弹出。当然,这会破坏您的绿线的工作方式,但它使我们能够使工具提示正常工作。

之后,我在您的.ideas_box_top_iconBar_comment中添加了position: relative,因为这将是父母工具提示箭头的类。

然后,我包裹了工具提示箭头&amp;.comments_dropDown_boxWrapper中的菜单,并具有以下CSS:
.comments_dropDown_boxWrapper { 
  position: absolute;
  top: 100%;
  left: 0;
  display: none;
}

然后,在更改JavaScript以与新包装班一起使用后,我们可以正常工作!

这是JSFIDDLE,因此您可以看到所有操作。这不是您正在做的事情的逐步解决方案,但我希望它能为您提供足够的帮助,可以帮助您自己解决。

jsfiddle:https://jsfiddle.net/yt8ltu31/

将其设置为position: absolute,然后做z-index: 1

最新更新