效果实现了,但是没理解为什么要设置绝对定位,高手们谁知道? /*使用伪元素制作导航列表项分隔线*/ .nav li:after{ content:""; width:1px; height:20px; position:absolute;/*为什么要设置绝对定位*/ top:15px; right:0px; background-image:linear-gradient(to top,#f00,#000);
绝对定位脱离文档流,且具有跟随性,即紧随在它之前的元素(未设置绝对定位的元素)的后面,且不占据任何空间。这个时候给他设置top, right 从而完美控制伪元素的位置,且不需要加入padding margin 以免影响整体宽高值。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
p{
position: relative;
}
span{
position: absolute;
}
.test{
display: block;
box-sizing: border-box;
width:100px;
height:100px;
position: absolute;
background:#3f3f3f;
padding:20px 20px;
color:white;
bottom:300%;
left:-50px;
visibility: hidden;
}
.test::after{
top:100%;
content: " ";
border-width:20px;
border-style: solid;
position: absolute;
background:#3f3f3f;
border-color: black white white white;
margin-left:50%;
left:-20px;
}
.a{
margin-left:40px;
display: block;
position: relative;
margin-top:200px;
}
.a:hover .test{
visibility: visible;
}
</style>
</head>
<body>
<p>asdfasdf
<span>sdf</span></p>
<a href="" class="a">
<div class="test">
hello world!
</div>
sd
</a>
</body>
</html>
