【问题标题】:Consistent left-aligning of a numerical list数字列表的一致左对齐
【发布时间】:2011-03-08 06:44:32
【问题描述】:

如何确保数字列表中的所有内容都左对齐到同一个位置?你看到当你从 #9 到 #10 时,编号会得到一个额外的数字并将内容推到右边一点吗?我可以忍受 #99-to-#100 搞砸了,但我想解决这个 #9-to-#10 问题。使编号向外使内容正确对齐,但是编号没有背景。

#file ol {
    line-height: 3em;
    font-size: 1.2em;
    color: #999;
}

    #file ol li {
        list-style: decimal inside none;
        padding: 0 0 0 1em;
    }

    #file ol li.alt {
        background: #eee;
    }

【问题讨论】:

  • 能否添加一个 HTML 示例,或者最好制作一个 jsFiddle 演示?

标签: css


【解决方案1】:

列表样式需要在外部才能发生。

#file ol li {
    list-style: decimal outside none;
    padding: 0 0 0 1em;
}

要解决您的背景问题,唯一的其他选择是在 LI 中使用您放置 inline-block 的另一个元素,该元素具有预定义的宽度并手动递增或使用表格。如果您的项目不依赖向后兼容性,请告诉我,因为可能有一些 CSS3 选项。

【讨论】:

  • 我知道表格可以整齐地对齐,但这对我不起作用,因为我允许人们在此列表中拖放元素。通过使用<ol>,编号会在项目随机播放时自动更新。我宁愿不使用额外的标记来解决背景问题。此时,HTML 将仅出于样式目的而添加,这是 CSS 应该做的。但如果这是唯一的方法,那么......我会做的。
  • @David,CSS 3,呵呵。 @JoJo,如果您想要自动编号,则需要使用小数点外的列表(实际上我很惊讶它适用于所有浏览器)。您需要在设计元素的重要性和实施的可能性之间取得平衡。
  • 啊……现在更有意义了! =D
  • 设计问题有很多解决方案。最好的是用 CSS 完成的。转向 HTML 或 JS 解决方案会使代码更加复杂。 JS 几乎可以解决任何设计问题,但并不理想。
  • @JoJo,我不知道你希望我告诉你什么。我不知道你的要求,所以我只能提供事实。有一个使用 CSS3 的 :before、nth-* 和编号属性的解决方案,但是您会失去对 90% 浏览器的支持。我认为您不会找到比我提供的 100% 兼容所有浏览器更好的答案。
猜你喜欢
  • 2014-04-20
  • 2011-11-09
  • 2016-01-18
  • 2020-04-14
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多