如何在弹性容器中居中卡片

Posted

技术标签:

【中文标题】如何在弹性容器中居中卡片【英文标题】:How to center cards in a flex container 【发布时间】:2016-04-26 01:10:49 【问题描述】:

我想将这些卡片准确地放置在浅蓝色背景的中间。而且当我缩小浏览器时,卡片之间的空间也应该减少。 (我正在使用 Chrome。)

我的 style.css 文件不工作

.flex-item
    height: 350px;
    width: 250px;
    background-color: white;
    text-align: center;
    margin: 15px;
    display: inline-block;
    border: 1px solid #ccc;
    box-shadow: 0px 5px 25px #aaa;
    border-radius: 10px;



.flex-container
    display: flex;
    webkit-justify-content: center;
    height:380px;
    background-color: lightblue;
    

html

       <!-- cards -->
   <div class="flex-container">
       <div class="row">
          <div class="col-md-3 flex-item" >
             <img src="bg.jpg" class="img img-responsive" style="margin-bottom:5px; margin-top:10px; border-radius:250px;">
             <legend>Section</legend> 
             <p>Lorem ipsum dolor sit amet glo dlbogn</p>
             <button class="btn btn-success btn-sm" style="float:right;" >Read More</button>
          </div>
          <div class="col-md-3 flex-item" >
             <img src="bg.jpg" class="img img-responsive" style="margin-bottom:5px; margin-top:10px; border-radius:250px;">
             <legend>Section</legend>
              <p>Lorem ipsum dolor sit amet glo dlbogn</p>
              <button class="btn btn-success btn-sm" style="float:right;" >Read More</button>
          </div>
          <div class="col-md-3 flex-item" >
             <img src="bg.jpg" class="img img-responsive" style="margin-bottom:5px; margin-top:10px; border-radius:250px;">
             <legend>Section</legend>
             <p>Lorem ipsum dolor sit amet glo dlbogn</p>
             <button class="btn btn-success btn-sm" style="float:right;" >Read More</button>
          </div>
       </div>
    </div>

【问题讨论】:

【参考方案1】:

.flex-container 移动到与.row 相同的元素。

由于您的 .flex-iteminline-block 而不是应用。

.flex-container 
    text-align: center;

卡片周围的空间 - 使用百分比:

.flex-item + .flex-item 
    margin-left: 2%;

删除 col- 类的引导浮动:

.flex-item 
    float: none;

它将为除第一个.flex-item 之外的所有.flex-item 添加边距。

示例:

.flex-container 
  width: 100%;
  height: 250px;
  background-color: rgba(0, 0, 150, .3);
  text-align: center;

.flex-item 
  box-sizing: border-box;
  border: 1px solid #ddd;
  background-color: rgba(0, 150, 0, .3);
  display: inline-block;
  width: 150px;
  height: 250px;

.flex-item + .flex-item 
  margin-left: 2%;
<div class="flex-container">
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
</div>

【讨论】:

它的工作.. 谢谢:) 但你能解释一下, text-align 属性如何影响卡片?据我所知,它应该只影响文本。我是新手。 @MD.TAWSIF-UL-KARIMTawsif 它也影响内联元素。这就是为什么它会影响display: inline-block 元素。【参考方案2】:

这里有一个运行良好的示例

.flex-container 
  background-color: lightblue;
   height:380px;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    align-items: center;
    justify-content: center;


.flex-item 
    background-color: white;
    padding: 5px;
    height: 350px;
    width: 250px;
    margin: 10px;
    line-height: 20px;
    color: white;
    font-weight: bold;
    font-size: 2em;
    text-align: center;
    margin: 15px;
    display: inline-block;
    border: 1px solid #ccc;
    box-shadow: 0px 5px 25px #aaa;
    border-radius: 10px;
<div class="flex-container">
  <div class="flex-item"></div>
  <div class="flex-item"></div>


</div>

【讨论】:

【参考方案3】:

您只需对当前代码进行一些更正即可。

.flex-container 
   display: flex;
   justify-content: center;
   height: 380px;
   background-color: lightblue;

【讨论】:

以上是关于如何在弹性容器中居中卡片的主要内容,如果未能解决你的问题,请参考以下文章

如何在弹性项目(单元格)中居中图像

如何使弹性容器居中但左对齐弹性项目

如何使弹性容器居中但左对齐弹性项目

卡未在引导程序 4 中居中 [重复]

如何在容器 MUI 中居中网格元素?

如何在容器中居中元素,同时保持它们垂直对齐?