css - 如何将 5 个带边框的 div 恰好放在包含带边框的 div 中

标签 css layout html

当我尝试将 5 个宽度为 20%、边框为 1px 的内联 block div 放入一个包含 div 且边框为 1px 时,它们会换行到下一行。

如果我去掉所有边框,它们确实适合。

我知道这是因为 div 占据了 100% 的包含 div 区域,包括它的填充和边框区域,这意味着它们不适合 边界内,所以它必须包起来。

我的问题是如何修改它以使它们完全适合。这肯定是一个常见问题吗?

<html>
    <head>
        <title> Test </title>
        <style type=text/css>

            div
            {
                margin: 0;
                padding: 0;
            }
            #navBar
            {
                border: 1px solid black;
                margin-left: auto;
                margin-right: auto;
                margin-top: 10px;
                width: 50%;
            }
            .navBtn
            {
                border: 1px solid black;
                display: inline-block;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="navBar">
            <div class="navBtn" style="width:20%">Text</div><div class="navBtn" style="width:20%">Text</div><div class="navBtn" style="width:20%">Text</div><div class="navBtn" style="width:20%">Text</div><div class="navBtn" style="width:20%">Text</div>
        </div>
    </body>
</html>

作为旁注,如果我将 5 个 div 放在它们自己的行上,它们会在它们之间呈现空格,这很疯狂,因此它们都在一条线上。在我的真实代码中,div 是用 php 生成的,所以它并不长。

最佳答案

margin:0 -1px 0 -1px为您提供一个简单的起点。

还建议使用 float:left为此自 display:inline-block在某些浏览器中存在错误。

获取容器 <div>要垂直扩展以适应内容,只需要一个带有 clear:both 的元素在你漂浮的之后。

都可以在这里看到:http://jsfiddle.net/steve/qEJaA/

关于css - 如何将 5 个带边框的 div 恰好放在包含带边框的 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132694/

相关文章:

javascript - 有没有一种方法可以将Angular2生成的网站另存为静态网站

css - 如何在标题中垂直居中显示我的 Logo

css - 电子邮件开发 - HTML

swift - 如何防止 Spacer 使 VStack 贪婪地增长超出必要范围?

CSS 3 馅饼 :hover not working

css - 如何将我的导航栏固定到页面顶部

html - CSS 在 Opera 和 IE 中看起来很糟糕;我应该从哪里开始?

javascript - 修复了导航栏淡入/淡出问题

html - 导航栏的边框

php - Microsoft Exchange 不会将 PHPmailer 生成的电子邮件呈现为 HTML