我要做的是使用z-index
属性在'p'标记的顶部堆叠'a'标记。所以我的HTML就像这样
<div id="personalText" >
<a href="#" id="editButton"> edit </a>
<p id="descText">{{profile.desc}}</p>
</div>
我的CSS
就像这样
#editButton
{
position:relative;
z-index:2;
}
#descText
{
position:relative;
margin-top: 5px;
margin-bottom:5px;
z-index:1;
}
我认为这应该将a
堆叠在p
标记之上,但这不会发生。任何人都能解释一下我做错了什么吗?
答案 0 :(得分:2)
position: relative
不会从布局中分离元素,因此默认情况下元素仍会占用相同的位置。 relative
有两个目的:将元素 relative 偏移到布局中的“实际”位置(这需要设置top
,left
等),并且作为非static
值,以便position: absolute
的子元素相对于它定位自己。
说了这么多,你想要做的就是你想做的事情,就是在父母身上设置position: relative
,在编辑链接上设置position: absolute
(至少) 。但这可能非常难看,因为文本可能会重叠并且不可读。
答案 1 :(得分:1)
以下是将<a>
标记置于<p>
标记之上的方法:http://jsfiddle.net/gSWJB/1/
该示例显示了一个可能的用例:将链接放在描述的顶部,其中链接可能仅在用户将鼠标悬停在其上时显示。
答案 2 :(得分:1)
你还必须把
#personalText
{
position:relative;
}
#editButton
{
position:absolute; /* change */
top:0; /* new */
left:0; /* new */
z-index:2;
}
答案 3 :(得分:1)
正如Mihalis Bagos所说,你需要向上推动#descText
元素。
以下是生成的CSS:
#editButton
{
position:relative;
z-index:2;
}
#descText
{
position:relative;
margin-top: 5px;
margin-bottom:5px;
bottom:25px;
z-index:1;
}
以下是由此产生的jsFiddle。
答案 4 :(得分:1)
这是JavaScript的完美用法:
CSS
.hidden { display: none; }
的jQuery
$('#descText').hover(function() {
$(this).find('a').removeClass('hidden');
}, function() {
$(this).find('a').addClass('hidden');
});
<强> DEMO 强>