Flex容器动态添加子项后,子项溢出且无法垂直居中怎么办?
我在用Flex布局做一个卡片列表,通过JavaScript动态添加子元素时遇到了问题。设置了flex-wrap和align-items: center,但新添加的子项要么溢出容器,要么垂直位置错乱。
代码是这样的:
function addCard() {
const card = document.createElement('div');
card.style.width = '200px';
card.style.height = '150px';
card.style.background = '#eee';
document.querySelector('.flex-container').appendChild(card);
}
容器样式是
.flex-container {
display: flex;
flex-wrap: wrap;
align-items: center;
height: 400px;
border: 2px solid red;
}
但点击添加按钮后,新卡片要么挤到右侧空白区域外,要么垂直居中失效。试过加justify-content: space-between也不行,求大神指条明路…
试试这样写:
另外动态添加的时候最好给每个子项固定margin,别让它们贴太近,比如加个
card.style.margin = '8px';,省得挤到外面去。