2012-04-10 84 views
2

我有一个简单的CSS问题,我的手在这里 - 我这样想着... - 在这里我基本上只是想创建一个很好的靠左对齐使用::before伪元素与生成content: "» "作为列表标记列表(ul) 。CSS:为什么这些列表元素的缩进不排队?

现在重要的是我尝试尽管我根本无法重现从这A List Apart: Taming Lists文章的结果。在链接的例子中,列表正是我想如何设计我的风格。

我已复制的JS小提琴这里足见其对齐文本问题的例子:http://jsfiddle.net/jannis/f8TxN/

这里也是一个快速的图像来说明这一点更好。从ALA左侧例子,我在正确的版本:

List Misalignment

但是,你将能够在小提琴看出,li内的第一线,根本不会留下对齐的休息本文内容为li

我真的很感谢有人看一看,并告诉我我在这里做错了什么。

许多感谢您的阅读,

Jannis

回答

2

这是对<ul>text-indent: -1em;导致该问题。将其设置为固定值-13px可修复小提琴。

但是,根据生成的内容的宽度(尤其受所使用的font-size影响)的宽度,如果要继续使用值,则可能需要不同的值。 px与当前字体无关。

仅添加了text-indent,因此作者知道生成的内容会向前推送第一行。我假设所选择的值符合原始文章在任何浏览器和字体被使用。

将以下CSS(来自ALA文章)复制到小提琴font-family: Verdana, sans-serif;font-size: 11px;中,在我的浏览器中更正了对齐方式。

1

在我眼中,即使是ALA版本也是一个(几个?)像素,并且远非完美,尽管它们与您有相反的问题,其中第一行的文本比其他文本更深。

我得到了你的榜样,通过改变工作下面从-1em到-0.85em:

text-indent: -0.85em; 

即使使用不同的字体大小,这仍然工作。

它看起来像使用的字符的宽度也被考虑在内,所以你的例子和ALA之间的差异的原因甚至可以归结为使用的字体。

相关问题