重叠的 div 会产生大量不需要的空间
我遇到的情况是,我有两个元素,如下在这篇文章的底部。
我希望我的 FrontPageMenu 重叠,因此它与我的地图重叠,因此它可以用作菜单。您可以在以下位置看到它的工作情况: http://mcoroklo.dk/ 。
为了完成这项工作,我使用了position:relative;顶部:-550px; ,但是,这在我的图像下方提供了 550px 的空白;-)
基本上我想在一切正常的情况下删除这个空白。
一种解决方案是定位:相对;顶部:550px;关于其余的内容,但我什至不想评论这是多么愚蠢;-)
希望你们能嘲笑这一点并说“放入这个属性!”。
完整地图 - 一种使用 CSS 的图像地图:
<dl id="fullMap">
<dd>
<a id="bamselandMap" href="Bamseland.aspx" title="Bamser"></a>
</dd>
<dd>
<a id="andedammenMap" href="Badeaender.aspx" title="Badeænder"></a>
</dd>
<dd>
<a id="boblerMap" href="Saebebobler.aspx" title="Sæbebobler"></a>
</dd>
</dl>
FrontPage 菜单 div。在 HTML 中是这样的:
<div class="FrontPageMenu">
<h3 style="color:white;">Legetøj</h3>
<hr />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_0" title="Besøg Badeænder universet ved at klikke her" href="legetoej/badeaender" style="color:White;">Badeænder</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_0_ChildrenLink_0" title="Besøg Designer badeænder universet ved at klikke her" href="legetoej/badeaender/designer-badeaender" style="color:DarkGray;">Designer badeænder</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_0_ChildrenLink_1" title="Besøg Store badeænder universet ved at klikke her" href="legetoej/badeaender/store-badeaender" style="color:DarkGray;">Store badeænder</a></span>
<br /><br /><br />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_1" title="Besøg Bamser universet ved at klikke her" href="legetoej/bamser" style="color:White;">Bamser</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_1_ChildrenLink_0" title="Besøg Mikroovns bamser universet ved at klikke her" href="legetoej/bamser/mikroovns-bamser" style="color:DarkGray;">Mikroovns bamser</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_1_ChildrenLink_1" title="Besøg Musik bamser universet ved at klikke her" href="legetoej/bamser/musik-bamser" style="color:DarkGray;">Musik bamser</a></span>
<br /><br /><br />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_2" title="Besøg Sæbeboble udstyr universet ved at klikke her" href="legetoej/saebeboble-udstyr" style="color:White;">Sæbeboble udstyr</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_2_ChildrenLink_0" title="Besøg Sæbeboble pinde universet ved at klikke her" href="legetoej/saebeboble-udstyr/saebeboble-pinde" style="color:DarkGray;">Sæbeboble pinde</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_2_ChildrenLink_1" title="Besøg Sæbeboble vand universet ved at klikke her" href="legetoej/saebeboble-udstyr/saebeboble-vand" style="color:DarkGray;">Sæbeboble vand</a></span>
FrontPage 菜单 CSS 类:
.FrontPageMenu
{
position:relative;
top:-550px;
background-color:Gray;
padding:10px;
width:200px;
background:url('http://www.mulius.com/Media/Site/FrontPageMenuBackground.png') repeat scroll 0 0 transparent;
min-height:400px;
}
I have a situation where I have two elements, which are as follows in the bottom of this post.
I want my FrontPageMenu to overlap, so it is on overlapping my map, so it works as a menu. You can see it working at: http://mcoroklo.dk/ .
To make this work, I've used position:relative; top:-550px; , BUT, this gives 550px of white space below my image ;-)
Basically I want to remove this white space, while everything works.
One solution could be to position:relative; top:550px; on the rest of the content, but I don't even want to comment on how stupid that is ;-)
Hope you guys can laugh at this and say "put in this property!".
Full map - a kind of image map using CSS:
<dl id="fullMap">
<dd>
<a id="bamselandMap" href="Bamseland.aspx" title="Bamser"></a>
</dd>
<dd>
<a id="andedammenMap" href="Badeaender.aspx" title="Badeænder"></a>
</dd>
<dd>
<a id="boblerMap" href="Saebebobler.aspx" title="Sæbebobler"></a>
</dd>
</dl>
FrontPage menu div. In HTML it is like this:
<div class="FrontPageMenu">
<h3 style="color:white;">Legetøj</h3>
<hr />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_0" title="Besøg Badeænder universet ved at klikke her" href="legetoej/badeaender" style="color:White;">Badeænder</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_0_ChildrenLink_0" title="Besøg Designer badeænder universet ved at klikke her" href="legetoej/badeaender/designer-badeaender" style="color:DarkGray;">Designer badeænder</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_0_ChildrenLink_1" title="Besøg Store badeænder universet ved at klikke her" href="legetoej/badeaender/store-badeaender" style="color:DarkGray;">Store badeænder</a></span>
<br /><br /><br />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_1" title="Besøg Bamser universet ved at klikke her" href="legetoej/bamser" style="color:White;">Bamser</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_1_ChildrenLink_0" title="Besøg Mikroovns bamser universet ved at klikke her" href="legetoej/bamser/mikroovns-bamser" style="color:DarkGray;">Mikroovns bamser</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_1_ChildrenLink_1" title="Besøg Musik bamser universet ved at klikke her" href="legetoej/bamser/musik-bamser" style="color:DarkGray;">Musik bamser</a></span>
<br /><br /><br />
<span style="font-weight:bold; font-family:Arial; font-size:11pt; "><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_ParentCategoryName_2" title="Besøg Sæbeboble udstyr universet ved at klikke her" href="legetoej/saebeboble-udstyr" style="color:White;">Sæbeboble udstyr</a></span>
<br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_2_ChildrenLink_0" title="Besøg Sæbeboble pinde universet ved at klikke her" href="legetoej/saebeboble-udstyr/saebeboble-pinde" style="color:DarkGray;">Sæbeboble pinde</a></span>
<br /><br />
- <span style="font-family:Arial; font-size:11pt;" ><a id="ContentPlaceHolder1_ContentPlaceHolder1_ProductCategoryList1_CategoryRepeater_CategoryChildrenRepeater_2_ChildrenLink_1" title="Besøg Sæbeboble vand universet ved at klikke her" href="legetoej/saebeboble-udstyr/saebeboble-vand" style="color:DarkGray;">Sæbeboble vand</a></span>
FrontPage menu CSS class:
.FrontPageMenu
{
position:relative;
top:-550px;
background-color:Gray;
padding:10px;
width:200px;
background:url('http://www.mulius.com/Media/Site/FrontPageMenuBackground.png') repeat scroll 0 0 transparent;
min-height:400px;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
创建地图的包含元素
position:relative;
并创建地图position:absolute;
。然后,不要使用top: -550px
,而是使用left: 20px;顶部:20px;
。在演示 CSS 中,我使用!important
来覆盖您的基本样式表。你在课堂上不需要这个。使包含元素的位置相对,使得子元素的绝对定位与其相关(而不是页面)。当您(或其他人)稍后查看您的代码时,使用负位置和边距来纠正差异很难理解和调试。使用浮动可能会导致页面其他地方出现布局问题,而且不那么直观。你真正想说的是,“我希望这个菜单位于我的地图的左上角”。由于地图和菜单是兄弟姐妹,因此这是绝对定位。
演示:http://jsfiddle.net/ThinkingStiff/M6Jc9/
Make the map's containing element,
position: relative;
and make the mapposition: absolute;
. Then, instead of usingtop: -550px
, useleft: 20px; top: 20px;
. In the demo CSS I used!important
to override your base stylesheet. You won't need that in your classes. Making the containing element's position relative makes the child element's absolute positioning related to that (not the page).Using negative positions and margins to correct the difference is difficult to understand and debug when you (or someone else) looks at your code later on. Using floats can lead to layout issues elsewhere on the page and is not as intuitive. What you're really saying is, "I want this menu to be in the top left corner of my map". Since the map and the menu are siblings, that's absolute positioning.
Demo: http://jsfiddle.net/ThinkingStiff/M6Jc9/
我建议尝试使用带有浮动、边距和填充的 div,而不是使用相对位置。但我感受到你的痛苦......
I would recommend trying with div with float and margins and padding, and not using relative positions. But i feel your pain....
将
margin-bottom: -500px;
添加到 FrontPageMenu 类中。您应该知道,当一个元素具有
position:relative
时,它仍然会占据其未移动时通常拥有的空间。在这种情况下,您可以通过使用负边距来解决此问题。Add
margin-bottom: -500px;
to the class FrontPageMenu.You should know that when an element has
position: relative
, it will still occupy the space it would normally have if it wasn't moved. In this case you can solve this by using a negative margin.