接下来是一个很长的解释,但这是有效传达我正在尝试解决的问题的唯一方法......
我(有点绝望,完全不成功)试图在不使用绝对定位的情况下覆盖 div。需求源于我通过 Javascript 在网站上放置的贝宝购物车。购物车的自然位置很难靠在网页的上边缘(不是它包含的 div,即#wpPayPal或此 div 的包装器,#main)。
该脚本的作者强烈建议不要自定义购物车的样式表,但我发现他编写的教程可以将购物车插入占位符 div,并提供有效容器的定位说明 - 我能够将购物车定位在网站顶部横幅下方部分。然而...
购物车的 HTML 表单和其中的 ul 元素在购物车的样式表中都有高度要求,这会将由容器 div #imageWrapper包装的页面的主要内容推到页面下方太远而无法接受。
我试图将#imageWrapper 置于#main 之上,并从该站点上的帖子中收集了几个想法,但没有成功。我已经尝试在#imageWrapper 上进行绝对定位,但这可以让页脚在下方浮动。#imageWrapper 的高度是可变的,因此我不想将页脚与高度保持在适当的位置,因为防止重叠的最小高度会将页脚向下推得太远,以适应网站的大部分内容。
我还尝试从购物车表单的 CSS 中拉出 position:relative,但购物车会立即浮回到网页顶部。边距、上边距等,不要对此进行补救。
然后我阅读了一篇关于使用 position:relative 和 z-index 覆盖 div 的文章。也试过这个,首先将 z-index: -1 放在#main(包装贝宝购物车的 div)上,但购物车消失了。也不确定它的去向,因为该站点的面包屑导航(也由#main 包裹)保持不变。
然后我将 main 的 z-index 设置为 0 并应用 position:relative to #imageWrapper with z-index:100。购物车重新出现,但仍将 #imageWrapper 按住。
非常欢迎提出建议。无论如何,我都不是一个界面人,只是一个知道如何使用谷歌的人,所以提前感谢你清楚地表达你的决议:)另外,仅供参考,目前我对购物车有最小高度要求form 设置为 0,并将其中的 UL 元素设置为 height:auto。购物车中只有一个项目,这允许#imageWrapper 向上移动页面足以被接受,但这不是一个可行的长期解决方案。
这是一个示例页面- 要查看购物车,请使用主图像下方显示的下拉菜单添加一个项目。在其展开状态下,您将看到#imageWrapper 如何与之相对。
我在下面包含了部分有问题的 HTML / CSS:
<div id="main">
<div id="wpPayPal">
</div><!--end wpPayPal-->
<div id="breadcrumbs">
<span class="B_crumbBox"><span class="B_firstCrumb"><a class="B_homeCrumb" href="/">home</a></span> »</span></span>
</div> <!--end breadcrumbs -->
</div><!-- end Main -->
<div id="imageWrapper">
<div id="imageInnerWrapper">
<div id="featureImage">
<div class="filename"><h1>~ Bryce Canyon Sunrise | Bryce Canyon | Utah ~</h1>
</div><!--end filename-->
ETC...
#main {
display: inline;
position: relative;
z-index: 0;
}
#imageWrapper {
clear: both;
width: 840px;
margin: 0 auto;
padding: 0;
position: relative;
z-index: 100;
}
#imageInnerWrapper {
width: 840px;
margin: 0 auto;
padding: 0;
position: relative;
z-index: 100;
}
#featureImage {
width: 840px;
margin: 0 auto;
padding: 0;
}
#wpPayPal {
overflow: hidden;
float: right;
margin-right: 100px;
min-width: 365px;
min-height: 20px;
}
/* Override the default Mini Cart styles */
#wpBody #PPMiniCart form {
position: relative;
right: auto;
width: auto;
min-height: 0;
}
#wpBody #PPMiniCart form ul {
height: auto;
}