如何对齐弹性框中的项目? [复制]

Posted

技术标签:

【中文标题】如何对齐弹性框中的项目? [复制]【英文标题】:How to align items in the flexbox? [duplicate] 【发布时间】:2017-04-24 01:37:35 【问题描述】:

我希望将具有固定宽度和高度的子元素一个接一个地放置在 flexbox 中,它们之间有一个小的缩进,并且父元素要居中,但不居中它的子元素。

我所有试图强制父元素居中并停止将其子元素居中的尝试都失败了,其中包括:

align-self: center;
margin: 0 auto;
justify-content: space-between;

这里是link 预览。我所需要的只是要居中的父元素。

justify-content: center; 对齐父 div,但我不希望最后一行(如果它没有完全填充元素)居中。

那我该怎么做呢?提前谢谢你。

【问题讨论】:

【参考方案1】:

在父 .grid-view 上使用 justify-content: center;

看看下面这个sn-p:

.grid-view 
    display: flex;
    padding: 0px;
    margin: 0px;
    align-self: center;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;


.grid-view .item 
    flex-shrink: 1;
    margin: 5px;
    border: 1px solid #333;
    align-self: flex-start;


.grid-view .item .item-cover 
    width: 200px;
    border: 3px solid #006699;
    border-radius: 3px;
<div class="grid-view"> 
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
    <div class="item">
        <img class="item-cover"  src="https://pbs.twimg.com/profile_images/660946436801101824/niM7azZS.jpg" />
        <h2 class="item-title">Title</h2>
        <p class="item-description">item description</p>
    </div>
</div>

希望这会有所帮助!

【讨论】:

但是最后一个元素居中。我希望他们在左边。 @po4teda 我不认为最后一行完全有可能留在左边,除非 CSS 有办法检测换行(它没有)... @kukkuz,我已经更新了我的问题。有可能吗? @po4teda 我明白你的意思。为此,您需要知道要包装的物品,但我认为没有办法跟踪它。这也是 kukkuz 想要告诉你的。 IMO 你需要 JS 来检测包裹...

以上是关于如何对齐弹性框中的项目? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何垂直对齐颜色框中的文本? [复制]

垂直对齐底部 div 与不同大小的文本

如何从 Angular 的弹性框中的组件中获取元素信息

如何将滑块固定到我的五步滑块中的标记?

左右对齐弹性项目

如何右对齐 HTML 文本框中的文本?