当我尝试将 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/