我想要一个居中的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:;
}
答案 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>