我正在尝试在IE7上创建一个有序列表但由于某些原因不起作用。 有人知道为什么会这样吗? 的更新
问题是我无法看到数字,谢谢。
感谢。
例如
<ol>
<li></li>
<li><li>
</ol>
更新 作为一个例子,我看到这个页面,如果你在IE7上看它,你不会看到de数字,但如果你在任何其他(但不是ie)上看它,你会看到数字。
由于
答案 0 :(得分:9)
此SSCCE适用于IE6及以上版本的所有浏览器(IE6 / 7/8,FF2 / 3,Safari3,Chrome4,Opera9)。
<!doctype html>
<html lang="en">
<head>
<title>SO question 2401705</title>
</head>
<body>
<ol>
<li>Item 1
<li>Item 2
</ol>
</body>
</html>
当我尝试用语法上无效的</ol>
替换<ol>
时,它甚至可以正常工作。所以,你的问题出在其他地方。你真的需要在更多细节中详细说明“不工作”。究竟发生了什么?究竟发生了什么不?最好编辑您的问题以包含SSCCE(如上所述)并尝试提问smart way。
注意,与其他人所说的相反,非结束<li>
在普通HTML中在语法上是有效的。它在XHTML中确实无效,但除非您使用基于组件的MVC框架或其他基于XML的工具来生成HTML页面,否则我认为没有任何理由使用XHTML。
更新:您因此看不到这些数字。显然,您已将margin
的{{1}}设置为零。这样他们就会走出视野。以下SSCCE演示了它。它确实在IE6 / 7中失败了。
ol
不要将边距设置为0.这也可能是由所谓的CSS重置表引起的。不要使用它们,只需记住自己指定所有块元素的边距。
答案 1 :(得分:5)
你可能还需要给你的有序列表留一个边距,以便查看IE7中的数字。试试这个:
<ol style="margin-left:25px;">
<li>test1</li>
<li>test2</li>
</ol>
答案 2 :(得分:3)
如果您根本没有看到数字,则可能需要在ol元素上设置边距或填充,例如
ol {
margin-left: 3em;
}
您可能还需要设置list-style: decimal;
。
还有一些CSS错误可能会对旧版IE中的有序列表产生奇怪的影响。症状通常是每个项目的计数器重置为1。你看到了吗?
答案 3 :(得分:2)
完成你的标签,它应该没问题:
<ol>
<li>blah</li>
<li>ha</li>
</ol>
答案 4 :(得分:1)
确保关闭<li>
代码:
<ol>
<li>first thing</li>
<li>second thing</li>
</ol>
答案 5 :(得分:1)
这个问题很老,但我觉得答案都没有解决我的问题:
ol {list-style-position:inside;}
li {display:list-item;}
<ol>
<li>foo</li>
<li>bar</li>
</ol>
list-style-position: inside
修复列表以显示数字(不使用保证金)
display:list-item
当列表元素有宽度或布局时(?我忘了),IE7有一个编号错误,所有列表元素显示为1.
;这解决了这个问题。
答案 6 :(得分:0)
我也偶然发现了这个老问题。对我来说,解决方案是删除我的ol-tag上的float:left声明。如果有人发现它有用,请将其发布在此处。
重现此IE7行为的示例代码:
<!doctype html>
<html lang="en">
<head>
<title>SO question 2401705 - IE6/7 problem</title>
<style type="text/css">ol { float:left; }</style>
</head>
<body>
<ol>
<li>Item 1</li>
<li>Item 2</li>
</ol>
</body>