如何在 CSS 中对齐两列文本

Posted

技术标签:

【中文标题】如何在 CSS 中对齐两列文本【英文标题】:How to align two columns of text in CSS 【发布时间】:2011-09-01 00:58:34 【问题描述】:

我在排列一些文字时遇到了一些问题。我需要两列,一列带有数字,一列带有文本,如下所示:

1 个条目 2 参赛作品二 3 条目三 4 条目五 5 条目六

左栏是Georgia,右栏是Arial(字体大小略有不同)。我可以为每一行设置一个容器 div,并将数字和文本段落绝对定位在它们的顶部或底部,这样可以正常工作。问题是这意味着我必须给每一行一个固定的高度,以便它正确显示,如果文本需要流到多行上,这会导致问题(由于文本条目是动态的,它可能会这样做)。

我想在不使用表格和不使用绝对定位的情况下执行此操作,以便单个文本条目可以跨越多行(并且跨浏览器兼容)。

【问题讨论】:

你为什么不想为此使用一张桌子? 任何你不使用<ol>的原因,数字需要自己的元素吗? @AllisonC 因为这是一个有序列表,而不是表格。 【参考方案1】:

根据我的评论,我认为最适合这份工作的元素是ordered list。

ol 
   font-family: georgia, serif;
   font-size: 16px;
   font-weight: bold;

ol li span 
   font-family: arial, sans-serif;
   font-weight: normal;
   font-size: 12px;
<ol>
  <li><span>Entry one<br>text on another line</span></li>
  <li><span>Entry two</span></li>
  <li><span>Entry three</span></li>
  <li><span>Entry five</span></li>
  <li><span>Entry six</span></li>
</ol>

通过允许在列表“项目符号”和其中的内容之间更改font-family 的跨度,如果您有块内容,这些可能是 div。

【讨论】:

噢!我不确定我是怎么错过的,当然它是一个有序列表,效果很好:)如果我想要内联的项目符号/数字但我不希望文本在它们下面流动是正确的方法使用 padding-left: 1.5em;列表样式位置:外部;还是有更清洁的方法?此外,是否有任何跨浏览器方法可以删除每个数字后的句号?非常感谢您的帮助,非常感谢:) @deshg:关于"is there any cross browser way of removing the fullstop after each number" - 你需要支持哪些浏览器? @thirtydot:尽可能多的浏览器,理想情况下是所有浏览器,但我很感激现在对大多数事情来说这是一个很大的要求! @thirtydot 和@clairesuzy,我刚刚意识到使用上面的代码,如果一个项目符号的文本超过 2 行或更多行(我假设 17px 匹配奥尔?)。有没有办法减少文本的行距,因为当我将它设置在跨度上时它没有效果,如果我将它设置在 li 上,那么 firefox 中的间距比任何其他浏览器都多(这是不寻常的) .如果您知道为什么会这样,我将不胜感激?非常感谢【参考方案2】:

您应该只使用适当样式的ol 元素,如下所示:

见:http://jsfiddle.net/tPjQR/

如果您想在数字和列表内容上使用不同的样式,您需要将每个 li 的内容包装在类似 span 的内容中。没有更好的方法。

ol 
    font-family: Georgia, serif;

ol span 
    font-family: Arial, sans-serif;
    font-size: 17px

<ol>
    <li><span>Entry one</span></li>
    <li><span>Entry two</span></li>
    <li><span>Entry three</span></li>
    <li><span>Entry five</span></li>
    <li><span>Entry six</span></li>
    <li><span>Entry Long Long Long Long Long Long Long Long Long Long Long Long Long Long Long Long Long</span></li>
</ol>

【讨论】:

以上是关于如何在 CSS 中对齐两列文本的主要内容,如果未能解决你的问题,请参考以下文章

css如何对齐文本与文本输入框

CSS:如何将列表元素与左对齐文本居中对齐?

CSS:如何将列表元素与左对齐文本居中对齐?

如何在 Twitter Bootstrap 中使用 CSS 将文本与元素的中间对齐?

如何在自定义按钮中对齐中心文本?

如何连续响应两列?在第一个文本中,在bootstrap 4中的第二个图像中