2013-06-11 71 views
3

嘿,我有点不确定这个结构。 本质上我想要一个4个div。浮动容器重叠底部div,但不顶部

<div class="container"> 
    <div class="top-border"></div> 
    <div class="box"></div> 
    <div class="bottom-border"></div> 
</div> 

该容器容纳三个较小的divs。我的目标是让box div保存内容,边框div在框中创建一个托架。边框顶部将浮动到左侧,边框底部将浮动到右侧。唯一的问题是容器与底部支架重叠,但不是顶部。我不希望它重叠...有没有办法解决这个问题?

这里是一个的jsfiddle:http://jsfiddle.net/6ghzN/

回答

5

在底边框的div,改变

margin-top: -40px; 

margin-bottom: -8px; 
+0

这很好地工作的感谢!我不知道这种情况下,margin-top和margin-bottom会有不同的表现。 –

0

添加margin-bottom: -10px;上下边界类。

1).container去除背景颜色,并将其添加到.box

jsfiddle

1

我用这种方法取得了成功。

.box{ 
    ... 
    background:#dedede; 
} 

2)阴性切缘加入的.top-border右侧,这样.box彩车正确:

.top-border{ 
    ... 
    margin-right:-40px; 
} 

http://jsfiddle.net/6ghzN/2/

2

我会去一个不同的方式,

只需添加.box:before.box:after

这样,你没有所有额外的div被标记!

.container{ 
    background:#dedede; 
    width:80%; 
    height:auto; 
    float:left; 
} 
.box{ 
    height:800px; 
    width:100%; 
    color:#cecece; 
    float:left; 
    position:relative; 
} 
.box:before{ 
    content: ""; 
    width: 40px; 
    height: 40px; 
    border-left: 8px solid gray; 
    border-top: 8px solid gray; 
    position: absolute; 
    left: -8px; 
    top: -8px; 
} 
.box:after{ 
    content: ""; 
    width: 40px; 
    height: 40px; 
    border-right: 8px solid gray; 
    border-bottom: 8px solid gray; 
    position: absolute; 
    right: -8px; 
    bottom: -8px; 
} 

http://jsfiddle.net/6ghzN/11/

+1

+1清洁标记! –

+1

请注意IE7不支持':before'和':after'伪类。 http://caniuse.com/css-gencontent – showdev

+0

我真的很喜欢这个解决方案,但不幸的是我使用的CMS目前不支持伪类。在路上绝对会记住! –