【问题标题】:child element covering parent element子元素覆盖父元素
【发布时间】:2012-11-23 00:09:32
【问题描述】:

基本上我的网站的布局方式是,我有一些元素在内容页面之外具有全宽背景(例如,让导航栏背景完全穿过页面)。所以基本上我决定做的是在内容 div 中创建另一个 div ,并且对于导航栏它可以工作,但是对于网站的下一部分,由于某种原因,子元素覆盖了它的父元素所有浏览器。我不明白为什么它似乎适用于导航栏部分。

这里是 CSS

#top-slider {
width:100%;
height:400px;
background: #222; /* Show a solid color for older browsers */
background: -moz-linear-gradient(#fefefe, #f1f1f1);
background: -o-linear-gradient(#fefefe, #f1f1f1);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fefefe), to(#f1f1f1)); /* older webkit syntax */
background: -webkit-linear-gradient(#fefefe, #f1f1f1);
-webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px;
-moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px;
box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; 
float:left;
padding-bottom:20px;
position:relative;
width:980px;


}

#top-slider-full-bar {
position:absolute;
left:-9999px;
width:99999px;
background: #222; /* Show a solid color for older browsers */
background: -moz-linear-gradient(#fefefe, #f1f1f1);
background: -o-linear-gradient(#fefefe, #f1f1f1);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fefefe), to(#f1f1f1)); /* older webkit syntax */
background: -webkit-linear-gradient(#fefefe, #f1f1f1);
-webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px;
-moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px;
box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; 
height:400px;

}

这里是网站,http://limerickchambers.hailstormcommerce.com,如您所见,导航栏似乎工作正常... 我试过z-index 但这似乎没有效果。 Limerickchambers.hailstormcommerce.com

谢谢

【问题讨论】:

  • 无意冒犯,但实际上您的代码存在问题,我不明白,您有一个名为 page 的 id,您用 980px 宽的它包装所有内容,然后放置一个 99999px宽度在它定位绝对,它显示封面,因为它定位绝对,如果我可以给你一个建议重建你的页面结构逻辑这个
  • 我采纳了这个建议,谢谢 :)

标签: html css


【解决方案1】:

考虑将您的 html 结构更改为以下内容:http://jsfiddle.net/KpTHz/

这将使这一切更容易管理。

<div class="outer">
 <div class="inner">HEADER</div>
</div>

<div class="outer">
 <div class="inner">CONTENT</div>
</div>

<div class="outer">
 <div class="inner">FOOTER</div>
</div>


.outer {
 width:100%;
 background:#ccc;
}

.inner {
 width:920px;
 background:#999;
 margin:0 auto 20px;
 padding:20px;
}

【讨论】:

  • 谢谢,这更有意义,我是否认为在较小的屏幕和手机上,inner 的宽度会因为设置px 而占据屏幕?只是我不希望屏幕中心的内容在手机等的两侧都有很大的间隙。
  • 在我上面的示例中,网站的宽度是 960 像素(920 + 左右两侧的 20 像素内边距)。您可以将其更改为您喜欢的任何内容。任何屏幕都会向您显示 960 像素的宽度,加上它可以显示的空间之外的任何其他内容。
  • 感谢我进行了更改,新布局更有意义。我知道我正在以一种奇怪的方式去做这件事,尤其是把它看作是一件非常简单的事情。虽然我不得不说,我仍然不完全理解它为什么首先覆盖它,即使尝试校正 z-index。
猜你喜欢
  • 2011-09-29
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多