我试图在h2元素中包含的跨度上实现滑动门效果。 h2元素的位置设置为相对,以便启用z-index,到目前为止一直很好。 跨度在此h2元素内向右浮动,并且z-index设置为低于h2,以便在视图收缩时在其下方滑动,但保持在下面,就好像只有&#39 ;浮动'这里很重要。
但是,这就是我得到的东西,然后是我希望得到的东西:
Current result of z-indexed span within z-indexed h2:
包含H2元素的CSS:
width: 400px;
height: 24px;
font-size: 13px;
vertical-align: bottom;
position: relative;
z-index: 5;
padding: 2px;
color: white;
text-align: left;
background: url('left-door.gif') top left no-repeat;
嵌套span元素的CSS:
width: 200px;
height: 100%;
float: right;
z-index: 0;
text-align: center;
background: url('right-door.gif') top right no-repeat;
任何人都知道为什么跨度拒绝与h2保持水平,即使h2的固定高度应该限制在它内部(设置清楚:两者都没有做任何事情),并且当它被遮挡时视图收缩?这是因为它是嵌套的?
(另外,' vertical-align'没有效果,文字没有落在文字底部但是处于垂直中间。顺便说一下,刚刚开始这个修补,但碰巧匆忙。谢谢。)
编辑:在BHouwens回答之后,我尝试通过减少H2的文本内容(真实代码有文本),并且跨度对齐水平,唯一的问题是z-index似乎不起作用,但是从我记得上一个问题,z-index并不适用于嵌套元素,因为它们不能叠加在父元素的上方或下方。感谢您帮助排除故障!这有助于我更好地关注,现在想我只需在h2中添加两个跨度!
答案 0 :(得分:0)
可能,下面的代码对你有用!
h2 {
width: 400px;
height: 24px;
font-size: 13px;
vertical-align: bottom;
position: relative;
display: table-cell;
z-index: 5;
padding: 2px;
color: white;
background: #ff0;
}
span {
width: 200px;
height: 100%;
right: 0px;
top: 0px;
z-index: 0;
text-align: center;
background: #f00;
position: absolute;
}
span .wrap {
display: table-cell;
height: 24px;
width: inherit;
vertical-align: bottom;
text-align: center;
}
<h2>
H2
<span>
<div class="wrap">Span</div>
</span>
</h2>
答案 1 :(得分:0)
仅使用您的代码,这可以达到您想要的结果:https://jsfiddle.net/dzpfkoLy/
我的猜测是你有一些其他的CSS代表这些元素(你可以使用Chrome或Firefox中的dev工具进行检查,看看这可能是什么)。否则,如果您想确保所需的结果,可以将span
设置为
span {
// other span styling
position: absolute;
right: 0;
top: 0;
}
将它分流到h2
的右上角。然后,您可以使用z-index
来获得您想要的任何订单。