CSS Flexbox - 在两个 div 之间居中一个 div [重复]

Posted

技术标签:

【中文标题】CSS Flexbox - 在两个 div 之间居中一个 div [重复]【英文标题】:CSS Flexbox - Center a div between two divs [duplicate] 【发布时间】:2018-12-09 06:48:42 【问题描述】:

我在导航和搜索按钮之间有一个徽标,我想将徽标置于页面中心。使用水平自动边距使中心 div 向右移动,因为左侧的内容更大。

.flexbox 
  display: flex;

.logo 
  margin: 0 auto;
<div class="flexbox">
  <div class="left-nav">
    <a href="#">Link1</a>
    <a href="#">Link2</a>
    <a href="#">Link3</a>
    <a href="#">Link4</a>
    <a href="#">Link5</a>
    <a href="#">Link6</a>
    <a href="#">Link7</a>
    <a href="#">Link8</a>

  </div>
  <div class="logo">
    Logo
  </div>
  <div class="right-search">
    search
  </div>
</div>

【问题讨论】:

【参考方案1】:

为你的 CSS 试试这个。

它使 div 在显示器上具有一定的宽度,并使徽标文本居中。

    .flexbox 
      display: flex;
    
    .left-nav
    	width:25%;
    
    .logo 
      width:50%;
      text-align: center;
    
    .right-search
    	width:25%;
    
<div class="flexbox">
  <div class="left-nav">
    <a href="#">Link1</a>
    <a href="#">Link2</a>
    <a href="#">Link3</a>
    <a href="#">Link4</a>
    <a href="#">Link5</a>
    <a href="#">Link6</a>
    <a href="#">Link7</a>
    <a href="#">Link8</a>

  </div>
  <div class="logo">
    Logo
  </div>
  <div class="right-search">
    search
  </div>
</div>

【讨论】:

【参考方案2】:

或者

.flexbox 
  display: flex;

.left-nav,
.right-search 
    flex: 0 0 25%;

.logo 
  flex: 0 0 50%;
  text-align: center;

别忘了添加供应商前缀。

【讨论】:

【参考方案3】:

您需要设置一个 flex-basis 值,然后在这些元素上设置收缩值,以便它们可以根据其基础具有相应的宽度。 你还需要声明align-items: center

.flexbox 
  display: flex;
  align-items: center;


.flexbox>div 
  flex-basis: 33%;


.left-nav 
  flex-flow: column wrap;
  flex-shrink: 2;


.logo 
  flex-shrink: 1;
  text-align: center;


.right-search 
  flex-shrink: 2;
<div class="flexbox">
  <div class="left-nav">
    <a href="#">Link1</a>
    <a href="#">Link2</a>
    <a href="#">Link3</a>
    <a href="#">Link4</a>
    <a href="#">Link5</a>
    <a href="#">Link6</a>
    <a href="#">Link7</a>
    <a href="#">Link8</a>

  </div>
  <div class="logo">
    Logo
  </div>
  <div class="right-search">
    search
  </div>
</div>

【讨论】:

以上是关于CSS Flexbox - 在两个 div 之间居中一个 div [重复]的主要内容,如果未能解决你的问题,请参考以下文章

CSS Flexbox 样式根据元素数量变化

Flexbox 中心在 Safari 中不起作用

div 中的字体如何用CSS控制居下

如何在 Flexbox div 中居中文本标题

div+css怎么居左居右剧中

CSS Flexbox 右对齐响应式