【发布时间】:2016-12-03 16:38:05
【问题描述】:
我正在使用 flexbox 将带有图标的标题居中。我试图将标题的文本部分完美居中,忽略图标。图标应该在文本居中后添加到标题的右侧。我尝试使用绝对定位,但效果不佳,因为当浏览器宽度变小时我还需要换行。
在我的示例中,整个标题居中。有了图标,它就会使文本不居中。
html
<div class="container">
<div class="wrapper">
<div class="image"></div>
<div class="heading">
<span class="title">racecar racecar racecar</span>
<span class="fa fa-lg fa-car">
</span>
</div>
<div class="description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tortor dolor, varius a convallis ut, tincidunt non turpis. Nam gravida.
</div>
</div>
<div class="wrapper">
<div class="image"></div>
<div class="heading">
<span class="title">kayak kayak kayak</span>
<span class="fa fa-lg fa-car">
</span>
</div>
<div class="description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pellentesque euismod efficitur. Quisque vitae gravida dolor. Fusce et dui quis arcu sagittis sodales. Vivamus tincidunt orci et neque pulvinar, a aliquam diam tristique. Curabitur lacinia nibh est, id cursus ligula mollis eu. Nullam suscipit nisi vel euismod bibendum. Duis congue.
</div>
</div>
<div class="wrapper">
<div class="image"></div>
<div class="heading">
<span class="title">rotor rotor rotor</span>
<span class="fa fa-lg fa-car"></span>
</div>
<div class="description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et dui quis arcu sagittis sodales. Vivamus tincidunt orci et neque pulvinar, a aliquam diam tristique. Curabitur lacinia nibh est, id cursus ligula mollis eu. Nullam suscipit nisi vel euismod bibendum. Duis congue.
</div>
</div>
</div>
css
.wrapper {
border: 1px solid red;
display: flex;
flex-direction: column;
align-items: center;
}
.image {
height: 100px;
width: 100px;
background-color: blue;
border-radius: 65px;
}
.title {
font-size: 50px;
}
.description {
padding: 15px;
}
【问题讨论】:
-
由于 flex 容器通过空间分布来对齐项目,当您只有一侧有一个项目时,这会造成不平衡,使居中的兄弟姐妹偏离中心。一种解决方案是创建一个图标的副本,用
visibility: hidden放在对面(左侧)。这将平衡事情。这是完整的解释和其他选项:stackoverflow.com/q/38948102/3597276 -
查看我的更新答案。
-
您是否需要使用 flexbox,或者其他东西也可以(如果有效)?另外,如果文本换成 2 行,您希望图标在哪里结束?
-
@andi 我需要图标始终位于标题文本的末尾。我也希望文本在包裹到 2 行时保持完全居中(但我觉得这可能是不可能的)