html - div 标签未正确对齐

标签 html css css-tables

我在 div 标签上遇到了一个奇怪的问题,实际上这些 div 标签是对齐的并分组在一个容器中,但这里真正愚蠢的问题是我的代码

<html>
<head>
<style>
    body {
        padding: 0 2%;
    }
    #footer {
     width: 100 %;
        clear: both;
        border: 1px solid #CCC;
    }
    #footer .col_one {
        float: left;
        width: 25%;
        border: 1px solid #CCC;
    }
    #footer .col_two {
        float: left;
        width: 25%;
        border: 1px solid #CCC;
    }
    #footer .col_three {
        float: left;
        width: 24%;
        border: 1px solid #CCC;
    }
    #footer .col_four {
        float: left;
        width: 25%;
        border: 1px solid #CCC;
    }
</style>
</head>
<body>
    <div id="footer">
        <div class="col_one">
            &nbsp; something here
        </div>
        <div class="col_two">
            &nbsp; something here
        </div>
        <div class="col_three">
            &nbsp; something here
        </div>
        <div class="col_four">
            &nbsp; something here
        </div>
        <div style="clear: both">
        </div>
    </div>
</body>
</html>

现在在 #footer .col_three 中,当我将宽度设置为 24% 时,它们会以正确的顺序显示所有框,但随后我将其设置为 25%,最后一个就在第一个框的下方,为什么是这样吗?总的页脚容器是 100%,有四个 div 框,每个宽度为 25%,我错了,希望你能理解,抱歉英语不好。

最佳答案

那是因为你设置的宽度,是内容的宽度,不包括padding、margin和borders。所以总宽度是 100% + 8px(对于 4 个 div 每边的 1px 边框)。因此它不适合。

您可以通过在 div 中放置额外的 div 来解决这个问题。你制作的外层 div 宽度为 25%,没有边框。内部 div,你可以给一个边框,但没有明确的宽度,所以它会填充它的父级:

http://jsfiddle.net/GolezTrol/fm7LV/1/

我通过在这些 div 上放置单独的类来稍微修改选择器:col one 而不是 col_one。这样,您可以对所有列使用 .col 选择器,并在需要为特定列设置样式时使用 .col.one 选择器。 :)

关于html - div 标签未正确对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797608/

相关文章:

javascript - 将推送的元素拆分为 Javascript 空数组

JavaScript点击字母显示文字问题

javascript - 如何更改不在屏幕上的元素的 CSS 可见性样式?

html - 在 css 中调整图像大小

html - 桌面边框不会变色

html - 使用 CSS 去掉表格中的水平边框

html - 如何通过 CSS 为列中的每个表格单元格设置样式?

html - 如何设置网站的最大宽度并使其可滚动

c++ - QTextDocument 中文本前的边框

css - div 的垂直和水平对齐 - 第 2 部分