【问题标题】:full screen width child div with position absolute is hiding other elements具有绝对位置的全屏宽度子 div 隐藏其他元素
【发布时间】:2014-10-17 03:19:30
【问题描述】:

我想创建一个比其父级更宽的 div,我找到了许多解决方案。 几乎所有人都这样说:

position:absolute; 
left:0; 
right:0;

(例如:How to expand child <div> with 100% of body width?

这确实是一个解决方案,但只有一个小问题。

情况: (jsfiddle)

<style>
.parent
{
    width:70%; 
    padding: 1%;
}
.fullwidth
{
    position:absolute;
    left:0;
    right:0;
}
</style>  
<div class="parent">

    <div>
        <h1>
            This is a normal div. 
            This text is visible
        </h1>
    </div>

    <div class="fullwidth">
        <h1>
            This is a full width div.
        </h1>
    </div>

    <div class="normal-div">
        <h1>
            This is a normal div
            This text is hiding behind fullwidth div
        </h1>
    </div>
</div>

在本例中,第二个普通 div 隐藏在全角 div 后面,因为全角是绝对定位的。

那么,如何在不让 div 隐藏在全角 div 后面的情况下做到这一点?

【问题讨论】:

  • 是的,关闭父div并在全宽div之后再次打开-jsfiddle.net/gx4p2red/5
  • @Paulie_D 谢谢,但在某些情况下,您不能这样做。想象一下,您在具有嵌套行的网格系统中执行此操作。那么你将不得不关闭多行并且它看起来不一样......
  • 所以?要么你想要一个全宽 div,要么你不...一个全宽 div 不会成为网格系统的一部分。

标签: html css


【解决方案1】:

你需要对“普通的div”做两处修改:

  1. 相对位置(默认为静态)
  2. 将 z-index 设置为低于绝对定位 div 的 z-index

对绝对 div 进行一次更改(将其 z-index 设置为低于“正常”div)。

http://jsfiddle.net/gx4p2red/3/

.fullwidth
{
    position:absolute;
    left:0;
    right:0;

    /*Testing only*/
    background-color: green;
    z-index: 0;
}

/*Testing only*/
.normal-div
{
    background-color:red;
    position: relative;
    z-index: 1;
}

【讨论】:

  • 我不知道为什么,但它不起作用......我现在正在 ipad 上查看它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2021-08-06
  • 2013-12-13
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多