代码之家  ›  专栏  ›  技术社区  ›  animuson Hemanshu

为什么列表从包含元素之外开始?

  •  2
  • animuson Hemanshu  · 技术社区  · 14 年前

    这总是把我逼疯了。为什么列表是这样的?如果将“边距”和“填充”设置为0,则希望它在其周围文本的左侧正常对齐,但不是。这是列表项标记中的文本开始的位置,然后它会将项目符号和/或数字呈现在其左侧、重叠边框等。为什么还没有修复此问题?谁在他们正确的想法下决定做列表的行为?您甚至不能为左侧指定精确的填充或边距,以使数字与普通文本保持对齐,因为当数字计数达到更高的级别时,它不会自动向右移动(例如9-&g t;10,它现在是2个数字,在左侧占用更多空间)。

    无论如何,有一个问题:有没有任何简单的方法(不使用JavaScript等)来解决这个问题,最好是在CSS中?我想让左边的数字仍然与右边对齐,但整个列表仍然与文本左对齐。

    lists http://img338.imageshack.us/img338/8957/lists.jpg

    我知道你可以用表格来实现这一点,但这并不是一个有序的列表,是吗?

    编辑: 注意如何 list-style-position 属性使第十个元素向右推文本,使其不均匀。我想将深蓝色框移到右上方,以便深蓝色的左边缘与周围的文本对齐,但我不能简单地设置填充值,因为它需要移动的量取决于项目的数量。

    list-style-position http://img707.imageshack.us/img707/9277/liststyleposition.jpg

    2 回复  |  直到 12 年前
        1
  •  0
  •   meder omuraliev    14 年前

    正如前面提到的其他海报,默认位置是 outside .

    由于不一致性和错误,样式列表很难处理跨浏览器的问题。我建议使用JS或服务器端脚本生成 span 包含数字的元素,并相应地设置其样式(使用循环和whatNot)。

    很肯定,考虑到IE糟糕的列表呈现错误,跨浏览器的样式是不可能的。

        2
  •  2
  •   Matt Mitchell    14 年前

    要获得这种效果,请使用: list-style-position:inside;

    http://www.w3schools.com/Css/pr_list-style-position.asp

    另一篇(古老的)关于列表可能性的文章: http://www.alistapart.com/articles/taminglists/