谁能告诉我为什么这个页面右上角的绝对定位导航按钮在ie7 中不可见,但在所有其他浏览器(包括 ie8 和 9)中都可以正常工作
谢谢!
对于您正在使用display:inline-block
的 IE7 或更低版本未正确支持的应用程序(有时它可以工作,而另一些则不能 - 取决于元素和情况)。
使用display:block
andfloat:left
代替,因为这更受支持(但是,如果您看到我的第一个链接,您也可以使用display:inline
)。
不要忘记包含overflow:hidden
在周围的 UL 元素中,否则由于浮动,您会得到奇怪的结果。
CSS:
#navlist {
list-style: none;
margin: 0;
padding: 0;
display: block;
overflow: hidden;
}
#navlist li {
list-style: none;
margin: 0;
padding: 0;
display: block;
float: left;
/* your styles from before */
background-color: #F2F2F2;
border-radius: 5px 5px 5px 5px;
color: black;
height: 20px;
padding-top: 2px;
text-align: center;
width: 20px;
}
标记:
<ul id="navlist">
<li id="li1">
<a id="link1" href="#">1</a>
</li>
<li id="li2">
<a id="link2" href="#">2</a>
</li>
<li id="li3">
<a id="link3" href="#">3</a>
</li>
<li id="li4">
<a id="link4" href="#">4</a>
</li>
</ul>
有用的链接:
您可以尝试的另一件事(如果上述方法不能解决问题)是暂时删除 IE7 的条件注释代码 - 只是为了确保其中没有任何问题导致问题:
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="css/ie7.css" />
<script type="text/javascript" src="Scripts/ie7.js"></script>
<![endif]-->
现在我已经能够在 IE7 中进行实际测试,如果启用边框,问题就会出现 - 使用 css 边框进行调试总是一个好主意:) 上面的问题是由一个子元素推出的宽度引起的你的父母元素innerWrap
。这不会影响更现代的浏览器,但是 IE7 和更早版本总是尝试包装他们的孩子,无论它们放在哪里或它们的大小是多少(除非您覆盖此行为)。因为你的子元素slideWrap
是 3000px 宽,它会导致你的右定位元素从屏幕边缘消失。
以下css应该修复它:
#innerWrap { width: 100%; }
使用 left 或 right 属性以使其可见。