0

我在使用 margin-left CSS 属性时遇到了一些问题。我有一些嵌套的无序列表。这是列表的样子,没有改变左边距(在 IE 和 Chrome 中):

不修改 margin-left CSS 属性

我想减少每个列表的缩进量,所以我添加了这个 CSS 代码:

ul li ul
{
    margin-left: -25px;
}

这在 Chrome 中运行良好,显示如下:

在 Chrome 中正确显示

但是,IE 8 显示如下:

IE中显示不正确

我猜这两个浏览器的边距开始的来源是不同的?如何在所有浏览器中实现减少嵌套无序列表缩进的预期效果?

4

3 回答 3

1

您应该研究 ul 和 li 的边距和填充“归零”,如下所示:

ul,li { margin: 0; padding: 0; }

由于不同的浏览器有不同的默认值。从那里,您应该能够根据需要添加自己的边距和填充。

于 2013-04-16T19:16:03.267 回答
1

始终使用 CSS 重置是一件好事。这将避免浏览器之间的差异。您可以使用通用重置,例如;

* {
  margin: 0;
  padding: 0;
  outline: 0;
  /* etc */
}

或者更深入一点,使用Eric Meyer 的一个或任何其他人。有几个。

无论如何,在你的情况下,你应该重置你的边距和填充,而不是使用负ul边距li

ul, li {
  margin: 0;
  padding: 0;
}
于 2013-04-16T19:18:39.113 回答
0

我建议http://necolas.github.io/normalize.css/或标准的重置 css 样式表

不同的浏览器设置不同的默认设置。

于 2013-04-16T19:17:59.280 回答