英文:
How to fix the css to keep 4 cards in a row while they are center aligned?
问题
遇到一个与CSS属性(Flex)有关的问题。我有多个卡片,希望每行有4个卡片,这样无论屏幕大小如何,都始终每行有4个卡片。由于我使用的显示元素是Flex,它会根据屏幕大小进行调整。我在前端开发方面非常新,请您检查并修复我的CSS属性,以使4个卡片在一行中对齐。
这是代码:
https://codesandbox.io/s/tender-feynman-we6n9s?file=/src/productsConfig.js
基本上我希望每行有4个卡片。
英文:
Facing an issue with a css property (Flex) . I have multiple cards and i want it to be 4 cards per row so that irrespective for screen size it will always have 4 cards per row. Since i am using display element as Flex it adjusted according to screen size. Very new to this front end dev work, can you please check and fix my CSS property to align 4 cards in a row.
here is the code:
https://codesandbox.io/s/tender-feynman-we6n9s?file=/src/productsConfig.js
答案1
得分: 1
你可以添加flex-basis
,它设置内容框的大小,所以在类.react-card-flip
上使用CSS flex-basis: 25%
。
更新
如果你不想增加空间,那么尝试这个:
.react-card-flip:nth-child(3n+1):not(:first-child) {
break-after: always;
}
这段代码简单地找到了你的第四个元素并在其上添加了一个分页符。尝试使用ctrl
+滚动鼠标来减小你的页面,每行最多只能容纳4张卡片。
在sandbox上尝试。
英文:
You can add flex-basis, it sets the size of the content box, so your css flex-basis: 25%
on class .react-card-flip
Update
if you don't want increase your space then try this:
.react-card-flip:nth-child(3n+1):not(:first-child) {
break-after: always;
}
this code just simply found your 4th element and add a break on it. Just try to decrease your page using ctrl
+ scroll your mouse to see. It max 4
cards per row.
try on sandbox
答案2
得分: 0
尝试将以下样式添加到你的style.css文件中,以实现响应式的自动卡片换行布局:
.container {
display: flex;
flex-wrap: wrap;
}
.card {
width: calc(25% - 40px);
margin: 20px;
}
英文:
Try with adding this style to your style.css file for responsive auto card wrap on space.
.container {
display: flex;
flex-wrap: wrap;
}
.card {
width: calc(25% - 40px);
margin: 20px;
}
答案3
得分: 0
使用flex布局,假设你希望卡片的宽度是固定的(300px),并且假设你只在大屏幕上工作,为了确保每行显示4个宽度为300px的元素,最好也将父元素的宽度设置为1500px,例如,在这种情况下,只有4个带有边距和内边距的元素会显示在一行中。
.container {
display: flex;
flex-wrap: wrap;
width: 1500px;
justify-content: center;
margin: auto;
}
.react-card-flip {
flex: 1 0 300px;
border: 1px solid red;
margin: 5px;
min-height: 50px;
}
<div class="container">
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
</div>
英文:
Using flex, and since you want the width of the cards to be fixed (300px), and assuming you're only working on large screens, to guarantee displaying 4 elements of 300ps in a row, it's best to also set the width of the parent to 1500px for example, in this case only 4 elements with margins, paddings will be displayed in a single row.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-css -->
.container {
display: flex;
flex-wrap: wrap;
width: 1500px;
justify-content: center;
margin: auto;
}
.react-card-flip {
flex: 1 0 300px;
border: 1px solid red;
margin: 5px;
min-height: 50px;
}
<!-- language: lang-html -->
<div class="container">
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
<div class="react-card-flip"></div>
</div>
<!-- end snippet -->
答案4
得分: 0
我认为问题是"不正确的级别"。
在 https://we6n9s.csb.app/ 中按 "f12" 键,然后您将看到以下级别:
第1级是 "container"。
第2级是 "react-card-flip"。
第3级是 "react-card-flipper"。
第4级是 "react-card-front"。
第5级是 "card"。
也许你可以使用 .react-card-flip
而不是 .card
。
.react-card-flip {
position: flex;
flex: 1 0 22%;
border: 1px solid red;
width: 22%;
height: 300px;
min-height: 50px;
}
英文:
I thought the problem is "incorrect level".
Press "f12" in https://we6n9s.csb.app/, then you will see the 1st level is "container".<br>
The 2nd level is "react-card-flip".<br>
The 3rd level is "react-card-flipper".<br>
The 4th level is "react-card-front".<br>
The 5th level is "card".<br>
Maybe you could use .react-card-flip
but not .card
.react-card-flip {
position: flex;
flex: 1 0 22%;
border: 1px solid red;
width: 22%;
height: 300px;
min-height: 50px;
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论