javascript - 我应该如何设置这些元素的宽度以使它们完美契合?

标签 javascript css

我正在构建一个网站,其中包含一组网格形状的正方形。我希望它们是完美的正方形,宽度和高度相等。它工作得很好,除了当您调整页面大小时,它们会在一行上显示两个和三个之间闪烁。这是代码:

const get = (querySelector) => document.querySelector(querySelector),
      getAll = (querySelector) => document.querySelectorAll(querySelector),
      getClass = (className) => document.getElementsByClassName(className),
      getTag = (tagName) => document.getElementsByTagName(tagName);
function resizePosts() {
    if (get('.post')) {
        for (let i = 0; i < getClass('post').length; i++) {
            getClass('post')[i].style.width = getClass('post')[i].parentElement.offsetWidth/3-10.982;
            getClass('post')[i].style.height = getClass('post')[0].offsetWidth;
        }
    }
    window.addEventListener('resize', resizePosts, false);
}
window.addEventListener('load', resizePosts, false);
window.addEventListener('resize', resizePosts, false);
.posts {
    font-size: 2.5em;
    font-family: 'Lato', sans-serif;
    padding: 0 25px;
    flex-wrap: wrap;
    display: flex;
    min-height: 150px;
}
.posts-themselves {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}
.post {
    border: 0.5px solid black;
    margin: 5px;
    width: 33%;
    overflow: hidden;
}
<div class = 'posts'>
  <div class = 'posts-themselves'>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
  </div>
</div>

请帮我设置正确的尺寸!

最佳答案

您需要添加尺寸的测量单位(“px”)

const get = (querySelector) => document.querySelector(querySelector),
      getAll = (querySelector) => document.querySelectorAll(querySelector),
      getClass = (className) => document.getElementsByClassName(className),
      getTag = (tagName) => document.getElementsByTagName(tagName);
function resizePosts() {
    if (get('.post')) {
        for (let i = 0; i < getClass('post').length; i++) {
            getClass('post')[i].style.width = getClass('post')[i].parentElement.offsetWidth/3-10.982 +"px";
            getClass('post')[i].style.height = getClass('post')[0].style.width;
        }
    }
}
window.addEventListener('load', resizePosts, false);
window.addEventListener('resize', resizePosts, false);
.posts {
    font-size: 2.5em;
    font-family: 'Lato', sans-serif;
    padding: 0 25px;
    flex-wrap: wrap;
    display: flex;
    min-height: 150px;
}
.posts-themselves {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}
.post {
    border: 0.5px solid black;
    margin: 5px;
    overflow: hidden;
}
<div class = 'posts'>
  <div class = 'posts-themselves'>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
    <div class = 'post'>

    </div>
  </div>
</div>

关于javascript - 我应该如何设置这些元素的宽度以使它们完美契合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58595946/

相关文章:

javascript - 检查 javascript 数组是否不仅包含空值

在 iframe 中启动网站时的 JavaScript 问题

javascript - 修改sencha中的CSS伪选择器样式

javascript - 使用变换而不是宽度/高度为 GPU 加速动画 div 的尺寸

javascript - 将 JS 转换为 Typescript

javascript - 使用nodejs运行两个任务异步?

javascript - 为什么 background-size 或 background-repeat 属性不适用于我的图像 slider ?

javascript - Highcharts - 放大时工具提示位置不正确

css - 从复制器数据库备份恢复 wordpress 主题自定义 css

html - 是否可以将第二个 child 的宽度设置为行列表中最大的一个?