如何使用CSS将三个项目连续设置为33.3%的三个项目?弯曲或网格(没关系)

发布于 2025-01-30 16:35:17 字数 1134 浏览 3 评论 0原文

这是所有代码示例 - >

https://codepen.io/mihailovic-aio/mihailovic-aleksandar/pen/pen/pen/pen/pen/pen/eyvrewe

需要?首先,我有边距,负边缘的问题。 我需要全宽度为33.3%,

以解决负边距。

我希望每个项目恰好是33.3%,并且要全长。目前对我来说是32%,如果我将其设置为33.3%,那是一条新线路的捷径。

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32%;
  height: 75px;
  background: #f4f4f4;
  margin: 3px;
  border-radius: 10px;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item"> 7</div>
</div>

Here is all code example ->

https://codepen.io/mihailovic-aleksandar/pen/eYVREwE

What do I need? First I have a problem with margin, negative margin.
I need the to item be full width 33.3%

To solve the negative margins.

I want each item to be exactly 33.3% and to be full length. It's 32% for me at the moment, and if I set it to 33.3%, it's a shortcut to a new line.

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32%;
  height: 75px;
  background: #f4f4f4;
  margin: 3px;
  border-radius: 10px;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item"> 7</div>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

束缚m 2025-02-06 16:35:17

即使是的3px 保证金的3px ,当使用width:33%时,您的flex项目包裹也将使您的flex项目包裹到新行。您可以使用宽度:calc(100%/3)使其完全33.33%,但您必须删除静态的左右Margin

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100%/3);
  margin: auto auto .5em auto;
  height: 75px;
  background: #f4f4f4;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

如果要有间距,则可以使用宽度:calc(100%/3.1) on intem with rangin:auto,因此它们以中心为中心。 .1帐户有一些间距。另一个选项是使用宽度:calc(100%/3-6px);来考虑保证金:3px;

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100%/3 - 6px); /* -6px accounts for margin: 3px; i.e., top + bottom at 3px = 6px */
  margin: 3px;
  height: 75px;
  background: #f4f4f4;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

Even a measly 3px of margin will make your flex items wrap to a new line when using width: 33%. You can use width: calc(100%/3) to make them exactly 33.33% but you will have to remove the static left and right margin.

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100%/3);
  margin: auto auto .5em auto;
  height: 75px;
  background: #f4f4f4;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

If you want to have spacing you can use width: calc(100%/3.1) on item with margin: auto so they're centered. The .1 accounts for some spacing. Another option would be to use width: calc(100%/3 - 6px); to account for margin: 3px;.

.container {
  display: flex;
  flex-wrap: wrap;
  height: 165px;
  width: 100%;
}

.item {
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100%/3 - 6px); /* -6px accounts for margin: 3px; i.e., top + bottom at 3px = 6px */
  margin: 3px;
  height: 75px;
  background: #f4f4f4;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

‖放下 2025-02-06 16:35:17

如果要包含边距(尽管您应该在边距上包括一个差距),则需要使用calc(33.33%-6px)作为宽度

.container {
    display: flex;
    flex-wrap :wrap;
    height: 165px;
    width: 100%;
}

.item {
  background: red;
   display: flex;
  align-items: center;
  justify-content: center;
  width: calc(33.33% - 6px);
  height: 75px;
  background: #f4f4f4;
  margin: 3px;
  border-radius: 10px;
}
<div class="container">
  <div class="item">1</div>
   <div class="item">2</div>
   <div class="item">3</div>
   <div class="item">4</div>
   <div class="item">5</div>
   <div class="item">6</div>
   <div class="item"> 7</div>
</div>

if you want to include the margin (though you should include a gap over a margin), you need to use calc(33.33% - 6px) as width

.container {
    display: flex;
    flex-wrap :wrap;
    height: 165px;
    width: 100%;
}

.item {
  background: red;
   display: flex;
  align-items: center;
  justify-content: center;
  width: calc(33.33% - 6px);
  height: 75px;
  background: #f4f4f4;
  margin: 3px;
  border-radius: 10px;
}
<div class="container">
  <div class="item">1</div>
   <div class="item">2</div>
   <div class="item">3</div>
   <div class="item">4</div>
   <div class="item">5</div>
   <div class="item">6</div>
   <div class="item"> 7</div>
</div>

傻比既视感 2025-02-06 16:35:17

您可以将容器用于项目,并给它们宽度:33.33%并将保证金设置为您的项目。

这是基于您的笔的示例:

.container {
  display: flex;
  flex-wrap :wrap;
  height: 165px;
  width: 100%;
}
.item-container {
  display: flex;
  width: 33.33%;
  height: 75px;
}
.item{  
  width:100%;
  margin: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f4f4;
  border-radius: 10px;
}
<div class="container">
  <div class="item-container">
    <div class="item">1</div>
  </div>
  <div class="item-container">
    <div class="item">2</div>
  </div>
  <div class="item-container">
    <div class="item">3</div>
  </div>
  <div class="item-container">
    <div class="item">4</div>
  </div>
  <div class="item-container">
    <div class="item">5</div>
  </div>
  <div class="item-container">
    <div class="item">6</div>
  </div>
  <div class="item-container">
    <div class="item">7</div>
  </div>
</div>

You can use a container for your items and give them width:33.33% and set margin to your items.

Here is an example based on your pen :

.container {
  display: flex;
  flex-wrap :wrap;
  height: 165px;
  width: 100%;
}
.item-container {
  display: flex;
  width: 33.33%;
  height: 75px;
}
.item{  
  width:100%;
  margin: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f4f4;
  border-radius: 10px;
}
<div class="container">
  <div class="item-container">
    <div class="item">1</div>
  </div>
  <div class="item-container">
    <div class="item">2</div>
  </div>
  <div class="item-container">
    <div class="item">3</div>
  </div>
  <div class="item-container">
    <div class="item">4</div>
  </div>
  <div class="item-container">
    <div class="item">5</div>
  </div>
  <div class="item-container">
    <div class="item">6</div>
  </div>
  <div class="item-container">
    <div class="item">7</div>
  </div>
</div>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文