【发布时间】:2018-06-07 16:12:08
【问题描述】:
我有一个 flex-container 里面有一些 flex-items,我有很多(我已经包裹在一个 span 中),我想放在文本后面。
由于某种原因,z-index 不适用于此跨度项目。根据规范,flexbox 应该与 flex-containers 和 flex-items 正常运行,但我似乎无法让白色文本位于黑色数字之上? (或者推文字后面的数字,都可以)。
codepen:https://codepen.io/emilychews/pen/rpjpmB
CSS
.row {
display: flex;
margin: auto;
padding: 1rem;
background-color: red;
width: 70%;
max-width: 1043px;
box-sizing: border-box;
}
#row-2 {background: red;}
#row-2 div {
position: relative;
box-sizing: border-box;
margin: .5rem;
padding: 2.488rem 1rem;
flex: 1;
z-index: 1;
}
#number1 {position: absolute; font-size: 7.4300rem; z-index: 1;}
#row-2 > div > h3, #row-2 > div > p {text-align: center; color: white; z-index:99;}
HTML
<div id="row-2" class="row">
<div>
<span id="number1">01</span>
<h3>This is A Title</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<div>
<h3>This is A Title</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<div>
<h3>This is A Title</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
</div>
【问题讨论】:
-
给#row-1 div p 和#row-1 div h3 元素一个位置:相对的,它应该可以工作。
-
如果您将该代码投入生产,那么以后的深层嵌套将会对您不利。考虑在最后一个 p 标签上使用一个类,而不是嵌套那么深。我相信在 ecg8 建议的元素上放置相对位置应该可以解决问题。