堆叠div使它们不重叠

时间:2016-08-12 11:19:42

标签: javascript jquery html css css3

所以我在页面中间有一个div,它是一个按钮和一个搜索框,另一个位于搜索结果显示位置的下方。一切正常,但搜索结果显示在居中的div后面。

我希望它们都被堆叠起来,这样当结果显示时,顶部div向上移动以腾出空间。有小费吗?

Here's the jsfiddle

HTML

int32_t

顶级div的CSS:

<div class="container-fluid">


        <div class="row">
            <h4 class="title">Wikipedia Viewer</h4>
            <h4 class="port">by l-emi</h4>
        </div>

        <div id="aligner">
        <div class="row">

                <div id="centbox">
                    <div class="row">
                        <button type="button" class="butoni" id="randy">Random article</button>
                    <input type="text" name="search" placeholder="Or search!" class="butoni" id="searchy">
                    </div>
                </div>


        </div>

             <div id="resultati">
                <ul id="output">

                </ul>
            </div>
        </div>

</div>

对于结果区域

#centbox {
    overflow: auto;
    position: fixed;
    display: inline-block;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: table;
    text-align: center;
}

修改

修正了它!将#resultati { background-color: #e3e1df; padding: 5px; margin-top: 3.5em; width: 50%; position: fixed; display: inline-block; top: 50%; left: 50%; transform: translate(-50%, -50%); } 更改为position: fixed;,然后将position: absolute;用于顶部d​​iv,将$('#centbox').css("top", "14%");用于结果div。

Updated jsfiddle

谢谢大家!

4 个答案:

答案 0 :(得分:1)

输出前置后,您可以重写顶部定位,将其推到顶部:

$('#centbox').css("top", "25%");

答案 1 :(得分:0)

我建议使用它:

document.getElementById("centbox").style.top = "28%";

答案 2 :(得分:0)

试试这个:

public function getAreEventsAvailableStringMultiple() {
    $availability = [];

    foreach ($this->getAreEventsAvailable() as $eventAvailable) {
        $availability[] = $eventAvailable ? 'Spaces still available' : 'Sold Out';
    }
    return implode(' <br/> ', $availability);
}

答案 3 :(得分:0)

你不需要固定的位置。我建议你将盒子与按钮和结果垂直对齐。

如果没有结果,带按钮的方框将位于中间;只有结果,按钮仍然在中间,你仍然会得到你需要的结果(不太明显的空白页)。