2014-12-06 58 views
0

我试图回答这个问题的背后:How to make a colorful gradient glow around your input-box?股利出现输入

我的问题,问题是为何rainbowBg DIV出现overinput,而不是落后吗?我已经尝试定位输入absolute,设置z-indexes,没有任何工作。

<div class="rainbowWrap"> 
    <div class="rainbowBg"></div> 
    <input class="rainbow" type="text"/> 
</div> 

尝试在输入中输入。只有在输入边框和rainbowBg div之间单击时,才能将其聚焦。我只在Chrome中进行过测试。

​​

回答

3

的z-index只有当你确定位置的作品。给你的彩虹班加上“职位:亲戚”。

+0

天啊。你是对的。我现在感到很蠢,因为我浪费了太多时间,我以为我已经试过了。谢谢! – Cristy 2014-12-06 22:24:56

1

只要给div一个负数z-index。您甚至可以从输入中删除z-index

.rainbowBg { 
    z-index: -1; 
} 

http://jsfiddle.net/b03acbdu/6/

是不言而喻的,因为inputz-index ingored用于非定位的元素等givern的0。从MDN固定值后面:

当没有Z-index属性被指定时,元素在默认渲染层0(零)上呈现。

z-index是相对于亲本或整个文档的方面,MDN再次具有描述The Stacking Context一个有用的制品。 .rainbowWrap的孩子被放入他们自己的堆叠环境中,因为.rainbowBg是它的孩子,它将始终位于它的prent背景之上。或者如文章所述:

找出Z轴上堆叠元素的渲染顺序的一个简单方法是将其视为一个“版本号”排序,其中子元素是次版本数字在他们父母的主要版本号下面。

+0

相对于文档或父级,是否是“z-index”?因为具有负索引的“div”应该放在它的父级之后,如果它是相对于文档。 – Cristy 2014-12-06 22:28:27

+0

而且,为什么设置z-index为负数会将它放在input后面? – Cristy 2014-12-06 22:30:09