css为什么我的ul和ol列表在IE7中无法正常显示?

1. 问题分析

在IE7中,ul和ol列表无法正常显示,原因是IE7会给display: list-item;样式设置一个默认的list-style-image,导致列表样式混乱。

2. 解决方案

2.1 清除默认样式

我们可以在CSS中清除掉默认的样式,重新设定列表样式。例如:

ul, ol {

list-style: none;

margin: 0;

padding: 0;

}

ul li, ol li {

margin: 0;

padding: 0;

list-style-position: inside;

}

ul li:before {

content: "?";

margin-right: 5px;

color: #000;

}

ol li:before {

content: counter(section) ".";

margin-right: 5px;

color: #000;

}

这里我们使用list-style: none;来清除默认样式,再自定义样式。

注意,在设置list-style-position: inside;后,在ul li:beforeol li:before中分别添加了列表项所需的符号和序号,以及一些空间调整。这样就可以很好地解决IE7中列表样式的问题了。

2.2 使用IE7 Hack

还有一种方法是对IE7使用Hack,像这样:

ul, ol {

*list-style: none;

}

ul li {

*list-style: disc;

}

ol li {

*list-style: decimal;

}

这种方式可以通过添加*来达到Hack的效果。但是,Hack有许多弊端,比如不规范,不易维护,不被所有浏览器兼容等等。所以,我们不推荐使用Hack来解决这个问题。

3. 总结

在IE7中,ul和ol列表无法正常显示,我们可以通过清除默认样式或使用IE7 Hack来解决这个问题。但是,为了保证代码的规范性和易维护性,我们不推荐使用Hack方法。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。