模拟 flex-direction:row 使用 display:grid

Simulate flex-direction:row using display:grid

是否可以使用 display: grid 重新创建它 和 gap 而不是 display: flexmargin,CSS 不知道有多少项目?

.item {
  width: 50px;
  height: 50px;
  flex-basis: 50px;
  flex-grow: 0;
  flex-shrink: 0;
  background: orange;
  margin-right: 10px;
}
.item:last-child {
  margin-right: 0;
}

#items {
  display: flex;
  flex-direction: row;
  padding: 10px;
  margin: 10px;
  border: 2px solid red;
  width: fit-content;
}
<div id="items">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>

有没有办法告诉 display: grid 元素您希望额外的项目出现在新列而不是新行中?

这是你需要的

display: grid;
grid-template-columns: repeat(4, 1fr);
gap:10px;

我没有看到有多少物品, 然后 temani afif 得到了你

grid-auto-flow: column;
gap:10px;
``

id #items 上使用 grid-auto-flow: column; 和您的网格显示。这相当于使用 flex.

时的 flex-direction: row;

.item {
  width: 50px;
  height: 50px;
  flex-basis: 50px;
  flex-grow: 0;
  flex-shrink: 0;
  background: orange;
  margin-right: 10px;
}

.item:last-child {
  margin-right: 0;
}

#items {
  display: grid;
  grid-auto-flow: column;
  padding: 10px;
  margin: 10px;
  border: 2px solid red;
  width: fit-content;
}
<div id="items">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>