在页面内容上方浮动div


80

我已经实现了一个弹出框,可以动态显示搜索选项。我希望该框“浮动”在所有网站内容之上。当前,当显示该框时,它将替换其下方的所有内容,并且看起来很糟。

我相信我已经尝试将box的div的z-index设置为高于其余页面内容的z-index,但是仍然没有运气。


2
您可能想在Google“灯箱”中查看该方法是否可以达到预期的效果。
DOK 2010年

3
问题中的网址给出了404
Bryan Oakley

Answers:


111

您要使用绝对定位

绝对位置元素相对于具有非静态位置的第一个父元素放置。如果找不到这样的元素,则包含的块为html

例如 :

.yourDiv{
  position:absolute;
  top: 123px;
}

要使其正常工作,父级必须是亲戚(position:relative

在您的情况下,这应该可以解决问题:

.suggestionsBox{position:absolute; top:40px;}
#specific_locations_add{position:relative;}

2
@MrBoJangles更新了答案以使用您的链接。答案是4岁,是不同的时间^^
marcgg 2014年

1
几个注意事项:您确实需要指定一个上坐标和/或一个左坐标,否则似乎不起作用。还请注意,如果您希望div在屏幕上显示,有时网页并不总是在当前左上方显示“ 0,0”(即使看起来像这样),则可以通过stackoverflow.com/q/查看。3464876/32453。如果周围还有其他绝对位置的div,则可能还需要设置z-index。另外,如果有“全屏”选项,则如果不是“全屏” div的子元素,则可能不会显示“ on top div”。GL!
rogerdpack

1
答案为“要使其正常工作,父级必须是相对的”,下一个答案“确保它没有位置为相对的父级标记”。有人错了!
BJury

有没有办法做到这一点position: sticky;?我有一个导航栏,当页面滚动时,我想保留在原处,将其更改为绝对值会破坏它。
CorruptComputer

B判断您未正确阅读。您定位的div不能是相对的。它里面的div必须是相对的。
约翰·罗德

13

使用

position: absolute;
top: ...px;
left: ...px;

定位div。确保它没有带有position:relative;的父标记。


2
可能还需要使用z-index
stommestack


1

是的,z指数越高越好。它将内容元素放置在页面上的所有其他元素之上。假设您对页面上的某些元素具有z-index。寻找最高的z-index,然后为您的弹出式元素提供更高的z-index。这样,它甚至可以在具有z-index的其他元素上流动。如果页面上的任何元素中都没有z-index,则应输入z-index:2; 或更高。


1

下面的代码正在工作,

<style>
    .PanelFloat {
        position: fixed;
        overflow: hidden;
        z-index: 2400;
        opacity: 0.70;
        right: 30px;
        top: 0px !important;
        -webkit-transition: all 0.5s ease-in-out;
        -moz-transition: all 0.5s ease-in-out;
        -ms-transition: all 0.5s ease-in-out;
        -o-transition: all 0.5s ease-in-out;
        transition: all 0.5s ease-in-out;
    }
</style>

<script>
 //The below script will keep the panel float on normal state
 $(function () {
        $(document).on('scroll', function () {
            //Multiplication value shall be changed based on user window
            $('#MyFloatPanel').css('top', 4 * ($(window).scrollTop() / 5));
        });
    });
 //To make the panel float over a bootstrap model which has z-index: 2300, so i specified custom value as 2400
 $(document).on('click', '.btnSearchView', function () {
      $('#MyFloatPanel').addClass('PanelFloat');
  });

  $(document).on('click', '.btnSearchClose', function () {
      $('#MyFloatPanel').removeClass('PanelFloat');
  });
 </script>

 <div class="col-lg-12 col-md-12">
   <div class="col-lg-8 col-md-8" >
    //My scrollable content is here
   </div>
   //This below panel will float while scrolling the above div content
   <div class="col-lg-4 col-md-4" id="MyFloatPanel">
    <div class="row">
     <div class="panel panel-default">
      <div class="panel-heading">Panel Head </div>
     <div class="panel-body ">//Your panel content</div>
   </div>
  </div>
 </div>
</div>

0

结果容器divposition: relative表示它仍在文档流中,并将更改其周围元素的布局。您需要使用position: absolute以达到“浮动”效果。

您还应该检查正在使用的标记,如果您有<li>不带容器的phantom <ul>,则可以将div#suggestions和和都替换div#autoSuggestionsList为一个<ul>并获得所需的结果。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.