gpt4 book ai didi

javascript - 大量元素的行内 block 元素之间的垂直间隙

转载 作者:行者123 更新时间:2023-11-28 01:05:13 27 4
gpt4 key购买 nike

我目前正在做 JS/jQuery Project对于 Odin 元素,我认为我的解决方案表现非常好。

我遇到的问题是,对于更多的元素(在 JSFiddle 中,每行大约 40-45 个元素,在我的 Chrome 浏览器中大约 50-52 个元素),两者之间会有一个垂直间隙两个相邻行的元素。我最初设置了 vertical-align: top 来消除间隙,这对每行提到的 40-50 个元素有效。

Here is the JSFiddle.

如果您提高 JS 文件中每行的元素数量(将其设置为 50 或更高),您就会明白我的意思。

这不是我要寻找的行为。我想要一个连接的网格,两侧的单元格之间没有间隙。知道是什么破坏了 vertical-align: top 吗?

编辑:我认为这与百分比宽度/高度有关,因为如果除法结果是“困难分数”,它也会在低于 40 的数字上中断。

最佳答案

行内框从它们的 block 级父框继承可继承的属性。因此,您的网格采用 .containerline-height。当 .container 溢出时 vertical-align: top; 停止工作,所以最好使用 line-height:0; 到父元素( .container).

来源:https://www.w3.org/TR/CSS2/visuren.html#inline-boxes

$(document).ready(function() {
createGrid(48);
$(".cell").mouseenter(function() {
$(this).css("background-color", "green");
});
$(".cell").mouseleave(function() {
$(this).css("background-color", "white");
});
});

function createGrid(n) {
var container = $(".container");
container.empty();

var sizeP = 100 / n;

var cell = $('<div/>', {
class: 'cell',
style: 'width: ' + sizeP + '%; height: ' + sizeP + '%;'
});

for(i = 0; i < n*n; i++) {
container.append(cell.clone());
}
}
.container {
border: 5px solid black;
border-radius: 5px;
padding: 10px;
margin: 10px;
width: 800px;
height: 800px;
line-height:0;
}

.cell {
display: inline-block;
box-sizing: border-box;
border: 1px solid black;
vertical-align: top;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<body>
<div class="container"></div>
</body>

关于javascript - 大量元素的行内 block 元素之间的垂直间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40081993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com