【问题标题】:How to retain a space after floated :first-letter when the first letter is immediately followed by a space?当第一个字母紧跟一个空格时,如何在浮动后保留一个空格:first-letter?
【发布时间】:2017-08-27 14:36:42
【问题描述】:

当第一个单词是单个字母时,在首字母大写和第二个字母之间引入一个空格是什么优雅的解决方案(即不添加   到文本中)?

我正在尝试在段落的第一个字母中添加首字母大写。我遇到的问题是,如果第一个单词是 1 个字母的单词,例如 I,它看起来会令人困惑,这会导致后面的空格消失。

一个例子如下:

p::first-letter {
  font-size: 150%;
  float: left;
}
<p>Some text.</p>

<p>
    I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text.
</p>

解决方案必须像float: left 一样保持行之间的行高相同。

【问题讨论】:

    标签: css typography


    【解决方案1】:

    这有点难以弄清楚,但是将您的 CSS 更改为这个。

    p::first-letter {
      font-size: 150%;
      vertical-align: text-top;
    }
    

    float: left; 属性删除了间距,因此如果您将其替换为 vertical-align,它会保留空间并将文本与顶部对齐以达到所需的效果。

    编辑

    这里是an example JSFiddle 以显示它的工作原理。

    【讨论】:

    • 这很好用,直到有多行,不幸的是;当它换行时,它会导致更大的行高。:jsfiddle.net/q15px2ny/1
    • 有什么问题?它似乎显示正常。
    • 我已经编辑了我的评论以使其更清楚:当它换行时,它会导致更大的行高。
    【解决方案2】:

    以下解决方案保留第一个字符后的空格。

    p {
      white-space: pre-wrap;
    }
    
    p::first-letter {
      font-size: 150%;
      float: left;
    }
    <p>Some text.</p>
    
    <p>I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text. I am some long text.</p>

    NB:这要求 p 的内部 html 在一行上进行格式化,并且空格对于该行的其余部分是正确的,这样它就不会干扰其余的空白。

    【讨论】:

    • 如果可能的话,可以通过选择第一个字母之后的文本然后对其应用white-space: pre-line 来改进这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2015-05-02
    • 2014-05-14
    • 1970-01-01
    相关资源
    最近更新 更多