css - 从 box-sizing 中移除 padding 会增加 div 的宽度

标签 css grid padding

我在网格中使用 box-sizing content-box,右边填充为 15px。当我对最后一个 div 应用 0 的填充时,最后一个 div 的宽度增加了 15px,而行中的其他 div 则失去了这 15px 的相等份额。

有什么办法可以解决这个问题吗?

<div>
    <div class="col one_quarter">
        <h5>One Quarter</h5>
    </div>
    <div class="col one_quarter">
        <h5>One Quarter</h5>
    </div>
    <div class="col one_quarter">
        <h5>One Quarter</h5>
    </div>
    <div class="col one_quarter last">
    <h5>One Quarter</h5>
    </div>
</div>

.col {
    width: 100%;
    float: left;

    border-right: 15px solid transparent;

    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

.one_quarter { 
    width: 25%;
}

.col.last{
border-right-width: 0;
}

最佳答案

当您制作网格时,您必须考虑填充,否则您会得到一些愚蠢的结果。

类也需要重新分配。 (.col 和 .one_quarter 在相同的元素上。所以你的 100% 宽度和 25% 宽度互相覆盖)

Here's an Example Fiddle of what I did.

考虑到这一点,我更新了您的 HTML 和 CSS:

HTML:

<div class="col">
    <div class="one_quarter marginRight">
        <h5>One Quarter</h5>
    </div>
    <div class="one_quarter marginCenter">
        <h5>One Quarter</h5>
    </div>
    <div class="one_quarter marginCenter">
        <h5>One Quarter</h5>
    </div>
    <div class="one_quarter marginLeft">
    <h5>One Quarter</h5>
    </div>
</div>

CSS:

.col {
    width: 100%;
}

.one_quarter { 
    width: 23%;
    float: left;
    border:1px dotted red;
    float: left;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

.col.last{
border-right-width: 0;
}

.marginCenter{margin-right:1%;margin-left:1%;}
.marginLeft{margin-left:2%;}
.marginRight{margin-right:2%;}

关于css - 从 box-sizing 中移除 padding 会增加 div 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981965/

相关文章:

css - 使用 CSS3 过渡动画的有序列表中的选择器

c# - asp.net 如何在 asp 中使用页内链接关闭对话框

html - 如何修复链接上的边框和填充

jquery - 音频播放器中的每首歌曲都可以更改背景颜色

php - 如何使用 PHP 访问字符串函数?

c++ - 计算多边形在网格中旋转后所占的位置

html - CSS Flexbox 或 CSS Grid 用于页眉、粘性页脚和垂直对齐的中间内容?

grid - 非规则网格的双三次插值?

android - 为 textview 设置填充不起作用

html - 尝试从导航菜单中删除填充,以便在悬停时颜色不会改变