我有一个有两个子元素的块元素,我会分别占用一半的空间,减去它们之间的固定大小的空隙。这应该是容易calc()
:在两个元素之间分割空间时的额外像素
var left = document.getElementById("left");
var right = document.getElementById("right");
var info = document.getElementById("info");
var offset = 5;
function toggleStyle() {
if (offset === 5) {
offset = 7;
} else {
offset = 5;
}
info.innerHTML = right.style = left.style = "width: calc(50% - " + offset + "px);";
}
toggleStyle();
#container {
width: 300px;
height: 160px;
background-color: green;
}
#left, #right {
display: inline-block;
background-color: blue;
height: 150px;
margin-top: 5px;
margin-bottom: 5px;
}
#left {
margin-right: 5px;
}
#right {
margin-left: 5px;
}
<div id="info"></div>
<button onclick="toggleStyle()">Toggle</button>
<div id="container">
<div id="left"></div>
<div id="right"></div>
</div>
在上面的代码中,我有一个300像素家长带着孩子,应该是50% - 5px
= 145px(宽),加上保证金为5px每个。这意味着两个孩子,加上他们的利润,应该占据300px。当我以这种方式设置它们时,它们会缠绕。如果我为每个孩子减去额外的2个像素,它们似乎完全填充空间,尽管它们每个仅测量148px(包括边距)。多余的像素来自哪里?
::叹息::男人,有时候我真的很讨厌的HTML。 – Coderer
@Coderer它通常是造成最严重问题的最简单的事情! :)为了将来的参考,这发生在“内嵌块”显示,但您可以手动删除空白或HTML注释也可以。例如'
<! - 尽可能多的空间,你想在这里! - >' – FluffyKitten