javascript - 与 float 和视口(viewport)百分比单位的奇怪交互

标签 javascript html css

使用 javascript 循环,我试图用使用视口(viewport)百分比宽度和高度调整大小并具有 float:left 的 div 覆盖主体。

这意味着这些 div 中的 100 个应该覆盖整个视口(viewport)。然而,它不是那样工作的,而是将第 10 个向下移动一行。

Javascript

for (var i=0; i<10; i++){
    var newDiv = document.createElement('div');
    newDiv.className= 'square';
    document.body.appendChild(newDiv);
}

CSS

.square {
width: 10vw;
height: 10vh;
background-color: aqua;
float: left;
}
.square:hover {
background-color:red;
}

Fiddle

我已将正文的边距设置为 0。当我制作 100 个这样的 div 时,问题就出现了。

最佳答案

因为 body 上的边距。元素的大小相对于整个视口(viewport),但由于 body 上的默认边距,body 宽度小于此值。

https://jsfiddle.net/msqjd27y/1/

只需添加 正文{ margin :0; }

如果您想要保持 body 的边距,并且仍然需要 10 个元素,则您不想使用视口(viewport)单位。您可以像这样使用 width: 10% https://jsfiddle.net/msqjd27y/2/

关于javascript - 与 float 和视口(viewport)百分比单位的奇怪交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299524/

相关文章:

javascript - 需要为每个 slider 图像放置一个指向按钮的链接

javascript - 如何仅在单击时显示我的导航栏的下拉菜单?

javascript - 这个函数在 Facebook 的 JavaScript 源代码中有什么作用?

javascript - 将变量发送到 <a href>

c# - 将奇怪的日期格式转换为短 DateTime

php - 使用 PHP 和 HTML 的评论框仅返返回告表单的最后评论信息

javascript - Webpack SCSS 到 CSS 提取不起作用

javascript - 如何使用局部 View 展开/折叠 html 表格?

javascript - 在子指令中访问父指令的 Controller 范围变量

php - 使用 php foreach 循环引导 4 张卡片