多个FLOAT DIV和BORDER

时间:2013-06-29 01:04:41

标签: html css css-float border css3

当我尝试将 2个div,它们都浮动到左侧一个宽度为80%,另一个为20%。然后我想在第一个div 的右侧绘制边框,在5px 框阴影中绘制,因为每个div都有不同的颜色。

所以我刚刚在这个网站上搜索了我找到了这个解决方案Border issue in Floating div

这是个坏主意恕我直言 ....我的分辨率为1920px宽度,我不能把48%用于DIV的宽度.... for 4px边框我会在网页上找到2% - 2px 的空白区域。 你可以说,只需将背景颜色添加到身体:我可以因为每个DIV已经拥有它,但它也是一个空间问题,比例 !!!

我遇到的另一个问题:我将高度设置为100%(在第二个div上,宽度为20%),它在示例中有效;但是在真实网站中,高度也设置为100%,DIV不占据列的整个高度,而是直到最后一个图像的边距限制。

最后一个问题:带有浮动div的box-shadow这是个坏主意... 我应该把盒子阴影放在最后一个div上,只是左侧,而不是前一个div的右侧?

在此处查看我的代码 http://jsfiddle.net/9gp6J/

div#contenuto_body{
    margin: 0 0;
    padding: 0 0;
    float: left;
    width: 80%;
    height: 100%;

    background-color: #C90;

    -moz-box-shadow: 0 0 5px 1px #333;
    -webkit-box-shadow: 0 0 5px 1px #333;
    -ms-box-shadow: 0 0 5px 1px #333;   
    box-shadow: 0 0 5px 1px #333;

    border-right: 4px solid #E6B800;
}

body{
    margin: 0 0;
    padding: 0 0;
}

div#ads{
    margin: 0 0;
    padding: 0 0;
    width: 20%;  
    float: left;
    height: 100%;

    background-color: #CCC;
}

div#ads img{
    width: 70%;
    max-width: 200px;
    display: block;
    margin: 25% auto;
}

2 个答案:

答案 0 :(得分:0)

您可以使用css3中提供的css3功能calc(...),具体取决于您支持哪种浏览器,这可能是合适的。 IE9以下的任何内容都不支持这一点,请记住这一点。这是一个小提琴: http://jsfiddle.net/9gp6J/9/

任何其他解决方案都必须涉及负边距,例如:

div#contenuto_body{
    ...
    margin-right: -4;
}

这应该适用于任何IE7及以上版本。

答案 1 :(得分:0)

对于边框问题,在左侧div中添加一个div,并为该内部div添加右边框。这样,左外部div可以保持80%而不会增加4px边界问题。

HTML:

<div id="container">
    <div id="left">
        <div id="inner_left">
            content left
        </div>
    </div>
    <div id="right">
        content right
    </div>
</div>

CSS:

div#container {
    height:200px;
}

div#left {
    float:left;
    width:80%;
    height:100%;
    background:red;
}

div#inner_left {
    border-right:4px solid black;
    height:100%;
}

div#right {
    float:left;
    width:20%;
    height:100%;
    background:green;
}

选中此jsfiddle