这是一个奇怪的问题,那已经耗费了我很多小时的时间。这里有一张照片,因为我只能放1个链接:http://www.screencast.com/t/byVmPE6H。接下来的解释。IE8中的CSS填充消失/ jquery
基本上,我需要实现的是照片中的第1点。
请注意,左侧填充大于右侧填充。初始填充属性为:
padding: 12px 15px;
(即12px垂直填充,15px水平)。
然后,通过jQuery,在页面加载时,我设置了左填充一些值,像这样:
$(links[0]).attr("style","padding-left : "+padding+"px;");
(我可能已经使用的CSS(),效果和问题保持不变)
这在所有浏览器中都能很好地工作,除IE之外,你猜对了。我不是在谈论版本6或7,但只有IE 8.所以,在IE 8中,在页面加载时,我从上面的照片中获得第2点。
请记住,这只发生在页面加载。当我将鼠标指针放在链接上时(即触发mouseover事件),正确的填充将跳回原位并且看起来很完美,就像在第一个链接中一样(实际上第一张图片来自IE8!)。
消除上面的jquery行不会触发相同的行为,15px填充是好的。在链接上没有注册“鼠标悬停”的事件处理程序。这里只有这个CSS属性的鼠标悬停:
#navigation li.first:hover a{
background: transparent url(../images/menu_on_left.png) left top no-repeat;
}
(即只背景图像的变化,绝对没有别的)
所以,当页面加载,如果我使用jquery来改变左边的填充,右边的消失。在鼠标悬停时,正确的填充将弹出回到视图中。我无法解释为什么会发生这种情况。如果我找不到解决方案,我实际上正在考虑计算所有菜单项的位置并将其排列在绝对位置。听起来真的很糟糕,我知道。
任何人都可以启发我吗?