【发布时间】:2015-04-26 08:55:13
【问题描述】:
我正在使用 flexbox 来对齐我的子元素。我想做的是使一个元素居中,而另一个元素则与最左边对齐。通常我会使用margin-right: auto 设置左侧元素。问题在于将中心元素推离中心。这可能不使用绝对定位吗?
HTML 和 CSS
#parent {
align-items: center;
border: 1px solid black;
display: flex;
justify-content: center;
margin: 0 auto;
width: 500px;
}
#left {
margin-right: auto;
}
#center {
margin: auto;
}
<div id="parent">
<span id="left">Left</span>
<span id="center">Center</span>
</div>
【问题讨论】:
-
查看此站点以获取对 flexbox 的引用:css-tricks.com/snippets/css/a-guide-to-flexbox
-
我没有看到任何解决我的问题的内容。
-
我把这个链接作为对 flexbox 最准确和全面描述的参考。如果你在那里找不到答案,那么它可能是不可能的。您可以在没有绝对定位的情况下尝试的一件事是使用两个容器。一个会将第一个按钮对齐到左侧,第二个将对齐到中心。然后以负上边距向上推第二个。
-
是的,没有绝对定位也是可能的。在 HTML 中创建第三个元素 (
#right)。使其与#left相同,但在容器的另一端除外。将以下 CSS 应用于#right:visibility: hidden和margin-left: auto。现在#left上的margin-right: auto将按需要工作。更多细节在这里:stackoverflow.com/q/35250367/3597276