使用CSS限制每行的字符数

Pie*_*ter 29 html css

我有一段文字:

<p>Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum</p>
Run Code Online (Sandbox Code Playgroud)

如何确保CSS在一行中显示的字符数不超过30个?

Ale*_*lex 78

你可以这样做:
(注意这是CSS3和浏览器支持=好!!)

   p {
    text-overflow: ellipsis; /* will make [...] at the end */
    width: 370px; /* change to your preferences */
    white-space: nowrap; /* paragraph to one line */
    overflow:hidden; /* older browsers */
    }
Run Code Online (Sandbox Code Playgroud)

  • 提示:使用`max-width:XXXpx;`是动态表的最佳选择. (5认同)

Sar*_*raz 16

使用CSS是不可能的,你必须使用Javascript.虽然你可以设置p多达30个字符的宽度,然后下一个字母会自动降下来,但这又不会那么准确,如果字符是大写字母则会有所不同.

  • @Christopher问题是限制字符数,而不是段落的宽度.字符具有不同的宽度.你可以说设置最大宽度会是一个更好的主意,但这不是手头的问题. (2认同)

小智 10

如果使用CSS选择等宽字体,则可以轻松解决字符长度变化的问题.

  • 开发者与设计师!斗争! (25认同)
  • 但会影响您的视觉设计. (7认同)

小智 7

最新的方法是使用代表字符的单位“ ch”。

您可以简单地写:

p { max-width: 75ch; }

唯一的窍门是空格将不被视为字符。

另请检查此帖子:https : //stackoverflow.com/a/26975271/4069992


Dan*_*son 5

根据您使用的字体,可以max-width在段落中设置一个计算值。这不是确切的,但是我发现在大多数情况下这并不重要。

p {
  max-width: calc(30em * 0.5);
}
Run Code Online (Sandbox Code Playgroud)

您乘以的数字取决于它是什么字体,以及一个字符在em正方形中占据了多少。更多字符=不太准确。