【问题标题】:div with % width and px border具有 % 宽度和 px 边框的 div
【发布时间】:2012-02-16 10:48:03
【问题描述】:

我正在尝试创建一个内部有 3 个 div 的 div。

    .outter
    {
        right: 100px;
        border: 10px solid white;
    }
    .main
    {
        overflow: hidden;
        width: 100%;
        height: 150px;
    }
    .left
    {
        float: left;
        width: 40%;
        height: 100%;
        background-color: green;
        border-right: 5px solid white;
    }
    .center
    {
        float: left;
        width: 40%;
        height: 100%;
        background-color: red;
        border-left: 5px solid white;
        border-right: 5px solid white;
    }
    .right
    {
        float: right;
        width: 20%;
        height: 100%;
        background-color: orange;
        border-left: 5px solid white;
    }



<div class="outter">
    <div class="main">
        <div class="left">
        </div>
        <div class="center">
        </div>
        <div class="right">
        </div>
    </div>
</div>

这是我到目前为止所得到的。 -父div应该有一个固定的100px的正确距离,一个10px的白色边框,宽度是100% - 100px; - 内部 div 有 40% + 40% + 20%,它们之间的距离为 10 px(这就是为什么我把边界左 5 和边界右 5。

我在设置时遇到问题。我需要的是有固定大小的边框和右边的边距。其他 div 应该是动态的以填充 100% 的宽度。

谁能帮帮我?

问候,

【问题讨论】:

    标签: css html width border


    【解决方案1】:

    您可以为此使用box-sizing。像这样写:

    .main,
    .main >*{
        -moz-box-sizing:border-box;
        -webkit-box-sizing:border-box;
        box-sizing:border-box;
    }
    

    检查一下:

    http://jsfiddle.net/ubtdT/

    【讨论】:

    • 就是这样!这就是我想要达到的目标。谢谢桑迪普。
    【解决方案2】:

    box-model 有问题。一个元素不能有 100% 的宽度和 10px 的边框,因为边框是在 100% 宽度之外添加的,这会导致您的问题。

    根据您打算支持的浏览器,您可以使用 CSS3 的 box-sizing 属性。通过设置box-sizing: border-box;,您可以强制浏览器以指定的宽度和高度渲染盒子,并在盒子内添加边框和填充。哪个应该可以解决您的问题。请注意旧版浏览器的有限支持。

    如果您想进行更多实验,可以使用新的 CSS3 calc() 来实际计算动态宽度:

    /* Firefox */
    width: -moz-calc(75% - 100px);
    /* WebKit */
    width: -webkit-calc(75% - 100px);
    /* Opera */
    width: -o-calc(75% - 100px);
    /* Standard */
    width: calc(75% - 100px);
    

    【讨论】:

    • " 一个元素不能有 100% 的宽度和 10px 的边框,因为边框是在 100% 的宽度之外添加的,这会导致您的问题。"确切地。谢谢克里斯托弗。我将尝试/研究这个新的 css3 calc() 但首先我需要完成它!
    猜你喜欢
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多