我有一个 flex-box(有关示例,请参见下面的代码段)。
我想设置它,以便在所有情况下,<h2>
is 位于flex-box的中心,其他 span 将根据它们的标记围绕它流动。
我基本上是在寻找一个align-self
CSS 代码,但是对于主轴,而不是横轴(这可能有助于解释我的要求)。
我也在申请margin: auto;
我的<h2>
,这是我在阅读本文后了解到的(很棒的页面,但仍然给我留下了以下问题 - 除非我没有完全理解所有内容)。
这是我得到的代码:
.container {
align-items: center;
border: 1px solid red;
display: flex;
justify-content: center;
width: 100%;
}
h2 {
margin: auto;
]
<div class="container">
<h2>I'm an h2</h2>
<span>I'm span 1</span>
<span>I'm span 2</span>
<span>I'm span 3</span>
</div>
<div class="container">
<span>I'm span 1</span>
<span>I'm span 2</span>
<span>I'm span 3</span>
<h2>I'm an h2</h2>
<span>I'm span 4</span>
<span>I'm span 5</span>
<span>I'm span 6</span>
</div>
<div class="container">
<span>I'm span 1</span>
<span>I'm span 2</span>
<h2>I'm an h2</h2>
<span>I'm span 3</span>
</div>
完全重申我的问题:我想知道如何将 the<h2>
放在我的页面上,以便其他<span>
s所在的位置<h2>
始终位于flex-box的死点。
谢谢你。
PS 我愿意使用 JS 和 jQuery,但更喜欢纯 CSS 方式来实现这一点。
更新
这是并在@ Michael_B回答后更新
他的回答让我思考。虽然我还没有找到一种方法来做到这一点,但我相信以下是朝着正确方向迈出的一步:
HTML
<div class="container">
<div>
<span>I'm span 1</span>
<span>I'm span 2</span>
<span>I'm span 3</span>
</div>
<h2>I'm an h2</h2>
<div>
<span>I'm span 4</span>
<span>I'm span 5</span>
<span>I'm span 6</span>
</div>
</div>
CSS
.container div {
flex: 1 1 auto;
text-align: center;
}
h2 {
flex: 0 0 auto;
margin: auto;
}
.container {
align-items: center;
border: 1px solid red;
display: flex;
justify-content: center;
width: 100%;
}
.container div {
flex: 1 1 auto;
text-align: center;
}
h2 {
flex: 0 0 auto;
margin: auto;
}
<div class="container">
<div>
</div>
<h2>I'm an h2</h2>
<div>
<span>I'm span 1</span>
<span>I'm span 2</span>
<span>I'm span 3</span>
</div>
</div>
<div class="container">
<div>
<span>I'm span 1</span>
<span>I'm span 2</span>
<span>I'm span 3</span>
</div>
<h2>I'm an h2</h2>
<div>
<span>I'm span 4</span>
<span>I'm span 5</span>
<span>I'm span 6</span>
</div>
</div>
<div class="container">
<div>
<span>I'm span 1</span>
<span>I'm span 2</span>
</div>
<h2>I'm an h2</h2>
<div>
<span>I'm span 3</span>
</div>
</div>
基本上,理论是虽然总<span>
s 的数量未知,但已知的是总共会有三个元素:<div><h2><div>
正如您在上面的代码段中看到的那样,我尝试过(flex: 0 0 auto
和flex: 1 1 auto
等)让它工作,但没有成功。谁能告诉我这是否是朝着正确方向迈出的一步,以及如何将其推向实际产品?
再次感谢你。