【问题标题】:Making first letter of each sentence uppercase将每个句子的首字母大写
【发布时间】:2017-12-22 15:34:38
【问题描述】:

我正在努力完成这项工作。在我的 HTML 标记中,我有几个句子的段落。它只是以大写字母开头的新段落。但我想要的是多个句子在同一段落中以大写的第一个单词开头。

有没有办法在没有js的情况下实现这一点?我尝试了以下混合:

@mixin sentence-case() {
  text-transform: lowercase;
  &:first-letter {
    text-transform: uppercase;
  }
}

我想说把它应用到一个有段落的类中,并且那个段落中的每个句子也都是大写的。

谢谢

【问题讨论】:

标签: html css sass


【解决方案1】:

似乎是由于使用了 SCSS 语法,而您似乎在谈论 SASS(基于问题标签)。

在 SASS 中,mixin 会被定义为:

-sentence-case()
  text-transform: lowercase

  :first-letter
    text-transform: uppercase


.sentenceCase
  +sentence-case()

在 SCSS 中,mixin 会被定义为:

@mixin sentence-case() {
  text-transform: lowercase;

  &:first-letter {
    text-transform: uppercase;
  }
}

.sentenceCase {
  @include sentence-case();
}

在任何一种情况下,您都可以将 .sentenceCase 类分配给具有以下内容的元素:

<p class="sentenceCase"></div>

结果:

.sentenceCase {
  text-transform: lowercase;
}
.sentenceCase:first-letter {
  text-transform: uppercase;
}
<p class="sentenceCase">
our first sentance
</p>

<p class="sentenceCase">
our second first sentance
</p>

但是,对于每个句子中的每个第一个字母都应大写的附加要求,使用此 mixin 是不可行的。目前没有 CSS 选择器来选择句子中的每个首字母。

【讨论】:

  • 我使用的是 scss 语法。但是,如果我希望句子中的每个单词都以大写字母开头,那是否意味着每个句子都必须是一个段落?如果当前没有 CSS 选择器来选择句子中的每个首字母。
  • 没错。当前没有 CSS 选择器来选择句子中的每个首字母。您可能需要使用 JavaScript 进行正则表达式匹配,或者将每个句子分解为 &lt;span&gt; 以使用 :first-letter 选择器。
猜你喜欢
  • 2015-01-25
  • 2017-03-30
  • 1970-01-01
  • 2021-07-23
  • 2022-11-16
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多