【发布时间】:2014-05-19 01:48:25
【问题描述】:
相关部分:
#inline-navigation ul {
display: table;
text-transform: uppercase;
text-align: center;
list-style-type: none;
margin: 0 auto;
padding: 24px 0px;
}
#inline-navigation ul li {
display: table-cell;
}
#inline-navigation ul li a {
text-decoration: none;
color: #777;
padding: 0 4px;
font-family: Monaco, Consolas, "Lucida Console", monospace;
font-size: 15px;
transition: 0.3s;
height: 20px;
line-height: 20px;
margin: 0 4px;
position: relative;
}
#inline-navigation ul li a:after,
#inline-navigation ul li a:before {
content: '';
border-bottom: 1px solid #ff6600;
box-shadow: 0 2px 2px -2px #777;
display: block;
position: absolute;
transition: 0.1s;
width: 0;
}
#inline-navigation ul li:nth-child(1) a:before,
#inline-navigation ul li:nth-child(2) a:before {
right: 0;
top: -4px;
}
#inline-navigation ul li:nth-child(1) a:after,
#inline-navigation ul li:nth-child(2) a:after {
bottom: -4px;
left: 0;
}
#inline-navigation ul li:nth-child(3) a:before,
#inline-navigation ul li:nth-child(4) a:before {
left: 0;
top: -4px;
}
#inline-navigation ul li:nth-child(3) a:after,
#inline-navigation ul li:nth-child(4) a:after {
bottom: -4px;
right: 0;
}
#inline-navigation ul li a:hover {
color: #ff6600;
}
#inline-navigation ul li a:hover:before,
#inline-navigation ul li a:hover:after {
width: 75%;
}
在 Internet Explorer 11 中,动画会产生非常奇怪的边框闪烁,其中 :after 和 :before 元素的边框似乎逃脱了父元素(?)。我认为这是因为与其他浏览器相比,动画是反向播放的。
小提琴; http://jsfiddle.net/NfE87/
在 Chrome 和 Firefox 上运行良好。想法?
【问题讨论】:
-
<a>元素默认是内联的,并且您的样式将它们阻止在:before和:after样式中。看起来 IE 在默认内联和块样式之间切换锚点时遇到问题。当我将a{display:block;}添加到样式表的底部时,它似乎解决了这个问题。 -
请注意,我评论而不是回答,因为 a) 我真的不知道到底发生了什么 b) 据我所知,制作锚块可能会破坏您的布局
-
有效!谢谢。我为导航中的
a元素制定了一个非常具体的规则,因此它不会搞砸页面。 -
太棒了!很高兴我能帮上忙。
标签: html css css-animations