display:none
在 IE7 中的问题解析display:none
是 CSS 中的一个属性值,用于完全隐藏元素,使其不占据任何空间,也不会在页面上显示。
在 IE7 中,display:none
有时会出现以下问题:
IE7 对 display:none
的实现存在以下缺陷:
display
属性时存在渲染问题/* 方法1:结合 visibility 和 height */
.hidden-element {
visibility: hidden;
height: 0;
width: 0;
overflow: hidden;
}
/* 方法2:使用绝对定位 */
.hidden-element {
position: absolute;
left: -9999px;
top: -9999px;
}
.hidden-element {
display: none;
/* IE7 特定修复 */
*display: none;
*visibility: hidden;
}
// 使用 JavaScript 强制隐藏元素
if (navigator.appVersion.indexOf("MSIE 7.") != -1) {
var elements = document.getElementsByClassName('hidden-element');
for (var i = 0; i < elements.length; i++) {
elements[i].style.display = 'none';
elements[i].style.visibility = 'hidden';
}
}
display:none
和 display:block
visibility:hidden
结合其他属性这些解决方案适用于:
*
前缀的 CSS 属性是 IE7 特有的 hack,可能会影响现代浏览器的样式解析没有搜到相关的文章