我正在尝试找到我在这里拥有的物品的高度。该项目的格式如下:
<div class="press-item">
<span class="press-title">MUSIC IS MY RADAR</span>
<span class="press-title">“Like It Never Happened” Review</span>
<img src="http:...jpg">
<span class="press-subtitle">1st May 2020...Empire.</span>
<a href="https://themusic...-review/">Read More</a></div>
其中几个在一个大容器 div 中, class press-blocks
。我的 CSS 看起来像这样:
.press-blocks{
display: grid;
grid-gap: 2em;
grid-template-columns: auto auto auto auto;
grid-auto-rows: 0;
}
.press-item{
text-align: justify;
}
在 Javascript 中,我试图找到每个单独press-item
div 的高度。我有这个:
function buildpress(Object){
var allItems = document.getElementsByClassName("press-item");
for(var i = 0; i < allItems.length; i++){
resizeItem(allItems[i]);
}
}
function resizeItem(item){
var grid = document.getElementsByClassName("press-blocks")[0],
rowGap = parseInt(window.getComputedStyle(grid).getPropertyValue("grid-row-gap")),
rowHeight = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-auto-rows'));
var rowSpan = Math.ceil((item.querySelector(".press-item").getBoundingClientRect().height+rowGap)/(rowHeight+rowGap));
item.style.gridRowEnd = "span " + rowSpan;
}
buildpress()
当我运行该页面时,它告诉我“无法读取属性 'getBoundingClientRect' of null”。它不应该为空,我的 html 有 21 个具有该类名的 div。我正在尝试做类似于https://w3bits.com/css-grid-masonry/上的教程的事情。