使用 Flexbox 将元素左对齐和居中对齐
P粉545682500
P粉545682500 2023-08-27 21:54:23
[CSS3讨论组]

我正在使用 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>


P粉545682500
P粉545682500

全部回复(1)
P粉561323975

添加第三个空元素:

<div class="parent">
  <div class="left">Left</div>
  <div class="center">Center</div>
  <div class="right"></div>
</div>

以及以下样式:

.parent {
  display: flex;
}
.left, .right {
  flex: 1;
}

只有左翼和右翼会成长,并且由于以下事实......

  • 只有两个增长元素(如果为空也没关系)和
  • 两者具有相同的宽度(它们将均匀分配可用空间)

...中心元素将始终完美居中。

在我看来,这比接受的答案要好得多,因为您不必将左侧内容复制到右侧并隐藏它以获得两侧相同的宽度,它只是神奇地发生(flexbox 很神奇)。


实际操作:

.parent {
  display: flex;
}

.left,
.right {
  flex: 1;
}


/* Styles for demonstration */
.parent {
  padding: 5px;
  border: 2px solid #000;
}
.left,
.right {
  padding: 3px;
  border: 2px solid red;
}
.center {
  margin: 0 3px;
  padding: 3px;
  border: 2px solid blue;
}
<div class="parent">
  <div class="left">Left</div>
  <div class="center">Center</div>
  <div class="right"></div>
</div>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号