【发布时间】:2013-04-16 22:56:36
【问题描述】:
我有一个非常具体的问题,因为我正在尝试使用没有图像或 JavaScript 的纯 CSS 创建具有角度的导航。我已经弄清楚它可以完美运行,但我遇到的问题是 IE 9 和 Chrome 看起来不同。我可以通过更改伪元素的边距来让两者都工作,但我更喜欢一个解决方案来同时工作。如果有人能弄清楚为什么边距不同,并给我一个单一的 CSS 解决方案,可以在两种浏览器中工作,那就太好了。否则我将不得不为 IE 添加一个单独的类并强制它使用单独的 CSS 条目工作。
这里是使用 arrow-nav 的 jsfiddle
这里是 HTML
<ul>
<li><a href="#" >Some Navigation</a></li>
<li><a href="#">More navigation</a></li>
<li><a href="#">Another Nav</a></li>
<li><a href="#">Test Nav</a></li>
<li><a href="#">A Test Navigation</a></li>
</ul>
CSS
ul {
float:right;
list-style-type:none;
margin:0;
padding:0;
width: 300px;
}
ul li a {
float:left;
width:300px;
}
ul li{
float:left;
width: 300px;
height:50px;
line-height:50px;
text-indent:10%;
background: grey;
margin-bottom:10px;
border:1px solid black;
}
ul li:before {
content:"";
position:absolute;
margin-top:-1px;
border-top: 26px solid transparent;
border-bottom: 26px solid transparent;
border-right: 21px solid black;
margin-left:-22px;
}
ul li:after {
content:"";
position:absolute;
border-top: 25px solid transparent;
border-bottom: 25px solid transparent;
border-right: 20px solid grey;
margin-left:-320px;
}
【问题讨论】:
-
您是否使用 CSS 重置样式表来减少/删除跨浏览器默认设置?
-
我无法让它在 IE7 或 8 以及 mozilla 浏览器中运行。庞大的用户群!这是为了内部的东西吗?如果是这样,用户机器上是否有任何标准安装模块/插件?只是询问这是针对公司内部网站的情况,该网站经常更改浏览器。
-
:before和:after在 IE8(但不是 IE7)中工作 – caniuse.com/#feat=css-gencontent。请参阅下面的答案,了解适用于 IE8+ 的解决方案
标签: html css internet-explorer pseudo-element