gpt4 book ai didi

css - 是否可以在不同列的 CSS 网格的内部间隙中绘制垂直分隔符?

转载 作者:行者123 更新时间:2023-11-28 14:15:10 24 4
gpt4 key购买 nike

我想要一个可变长度元素的响应式网格。网格应填充包含元素的可用宽度,列数根据容器的宽度而变化。使用 CSS 网格很容易实现;但是,我不知道如何在列之间添加垂直边框(即,仅在内部列间隙中)。下面的简单演示设法在存在三列的情况下实现垂直边框:

https://codepen.io/yowzadave/pen/OYPvLd?editors=1100

html, body {
box-sizing: border-box
}

.container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr));
grid-column-gap: 0.5rem;
}

.item {
border-right: 1px solid black;
padding-right: 0.5rem;
}

.item:nth-child(3n) {
border-right: none;
padding-right: 0;
}

.box {
background-color: pink;
height: 2rem;
margin: 0.5rem;
}
<html>
<body>
<div class="container">
<div class="item"><div class="box"></div></div>
<div class="item"><div class="box"></div></div>
<div class="item"><div class="box"></div></div>
<div class="item"><div class="box"></div></div>
<div class="item"><div class="box"></div></div>
<div class="item"><div class="box"></div></div>
</div>
</body>
</html>

...但是如果浏览器变宽或变窄,边框就会错位。有没有办法在所有浏览器宽度上正确放置边框?

最佳答案

您可以在所有重叠的网格元素上使用伪元素,并确保覆盖所有间隙:

html,
body {
margin: 0;
}

.container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
grid-column-gap: 0.5rem;
overflow:hidden; /* Hide the overflow */
position:relative;
}

.item {
box-sizing: border-box;
position:relative;
}

.item:before {
content:"";
position:absolute;
top:0;
right:-0.25rem; /* Half the gap */
height:100vh; /* Big height*/
width:1px;
background:#000;
}

.box {
background-color: pink;
height: 2rem;
margin: 0.5rem;
}
<div class="container">
<div class="item">
<div class="box"></div>
</div>
<div class="item">
<div class="box"></div>
</div>
<div class="item">
<div class="box"></div>
</div>
<div class="item">
<div class="box"></div>
</div>
<div class="item">
<div class="box"></div>
</div>
<div class="item">
<div class="box"></div>
</div>
</div>

关于css - 是否可以在不同列的 CSS 网格的内部间隙中绘制垂直分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56012789/

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