我有一个水平导航,其中插入了三角形边框 :before 和 :after 一个列表项,使其看起来好像列表项右侧有一个白色边框点。它在 FF 和 Chrome 中呈现,但不是在 IE8 中呈现,我使用的是 html5 doctype 并包含 html5.js。
看起来好像列表项背景颜色堆叠在箭头边框的顶部,因此看不到它,因为如果我关闭背景颜色,我可以看到箭头。我认为这可能是一个 z-index 问题,但这也无济于事。我还在 IE 中注意到所有 :after 样式都被划掉了,有什么想法吗?
<html>
<head>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<style type="text/css">
ul.registration-nav {
float: left;
margin-bottom: 45px;
width: 100%;
}
ul.registration-nav li {
background-color: #afafaf;
color: #FFFFFF;
display: block;
float: left;
font-weight: 600;
padding: 10px 0;
position: relative;
text-align: center;
text-decoration: none;
width: 33%;
}
ul.registration-nav li.arrow:after {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
border-left: 15px solid #afafaf;
position: absolute;
top: 50%;
margin-top: -20px;
left: 100%;
z-index: 2;
}
ul.registration-nav li.arrow:before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 24px solid transparent;
border-bottom: 24px solid transparent;
border-left: 18px solid white;
position: absolute;
top: 50%;
margin-top: -24px;
margin-left: 1px;
left: 100%;
z-index: 1;
}
ul.registration-nav li.checkout {
background-color: #cecece;
}
ul.registration-nav li.active {
background-color: #067673;
}
ul.registration-nav li.active:after {
border-left: 15px solid #067673;
}
</style>
</head>
<body>
<ul class="nav inline registration-nav capitalize">
<li class="register arrow active">Register</li>
<li class="books arrow">Books</li>
<li class="checkout">Checkout</li>
</ul>
</body>
</html>