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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章