居中的div,两边的div都延伸到页边距

时间:2014-06-11 19:43:45

标签: html css

我想要一个居中的div,两边的div都延伸到页边距。 必须有一种更有效的方法来做到这一点。

目前我有两个div,每个都有49%的宽度,然后在它们下面有一个居中的div,我在它们上面移动以创建效果。

问题是,这会在下方创造一个尴尬的空间。

HTML:    
<div id="green"></div>
<div id="red"></div>
<div id="blue"></div>

CSS:
#green {
height:25em;
width:49.99%;
background-color:#132a10;
display:inline-block;
margin:0;
float:left;
opacity:.47;
}
#red {
height:25em;
width:49%;
background-color:#400120;
display:inline-block;
margin:0;
opacity:.4;
}
#blue {
background-color:#436a97;
position:relative;
bottom:26em;
width:22em;
height:27em;
margin-right:auto;
margin-left:auto;
z-index:1;
opacity:;
}

http://jsfiddle.net/JFA2z/5/

2 个答案:

答案 0 :(得分:2)

这个差距来自于在蓝色div上使用相对定位。通过相对定位,元件的原始位置仍然占据空间,并且元件相对于它重新定位。您可以使用绝对定位以及这些规则来修复它:

#blue {
    background-color:#436a97;
    position:absolute;
    width:6em;
    height:7em;
    margin:auto;
    top:0;
    left:0;
    right:0;
}

<强> jsFiddle example

答案 1 :(得分:0)

使所有div的高度相同,并使蓝色div的上边距为-16px

<html>
<head>
<style>
#green
{
 height:7em;
 width:49.99%;
 background-color:#132a10;
 display:inline-block;
 margin:0;
 float:left;
 opacity:.47;
}
#red
{
 height:7em;
 width:49%;
 background-color:#400120;
 display:inline-block;
 margin:0;
 opacity:.4;
}
#blue
{
 background-color:#436a97;
 position:relative;
 bottom:6em;
 width:6em;
 height:7em;  /*edit*/
 margin-right:auto;
 margin-left:auto;
 margin-top:-16px;  /*edit*/
 z-index:1;
 opacity:;
}
</style>
</head>
<body>
  <div id="green"></div>
  <div id="red"></div>
  <div id="blue"></div>
</body>
</html>