12

有没有办法格式化“SENTENCE CASE”?例如“这是句子 1。这是句子 2。这是句子 3。更改为 -> 这是句子 1。这是句子 2。这是句子 3。

4

4 回答 4

21

您可以使用id/class:first-letter属性来实现这一点。

取自上述重复的问题:

p {
    text-transform: lowercase;
}
p:first-letter {
    text-transform: uppercase;
}
于 2013-02-18T07:12:28.557 回答
12

只有三个 CSS 属性。

text-transform: capitalize;
text-transform: lowercase;
text-transform: uppercase;

他们都不会像你想要的那样输出。您可以使用小写文本转换,他们使用 JavaScript 将每个句子的第一个单词大写。

小提琴

于 2013-02-18T07:11:25.500 回答
11

CSS 可以转换每个单词的首字母,但不能转换每个句子的首字母。可能你需要在这里使用 Javascript:

<html>
  <head>
    <script language="javascript">
<!--
function fixCapitalsText (text)
{
  result = "";

  sentenceStart = true;
  for (i = 0; i < text.length; i++)
  {
    ch = text.charAt (i);

    if (sentenceStart && ch.match (/^\S$/))
    {
      ch = ch.toUpperCase ();
      sentenceStart = false;
    }
    else
    {
      ch = ch.toLowerCase ();
    }

    if (ch.match (/^[.!?]$/))
    {
      sentenceStart = true;
    }

    result += ch;
  }

  return result;
}

function fixCapitalsNode (node)
{
  if (node.nodeType == 3 || node.nodeType == 4) // Text or CDATA
  {
    node.textContent = fixCapitalsText (node.textContent);
  }

  if (node.nodeType == 1)
    for (i = 0; i < node.childNodes.length; i++)
      fixCapitalsNode (node.childNodes.item (i));
}
// -->
    </script>
  </head>
  <body onload="fixCapitalsNode (document.body);">
    THIS IS FIRST SENTENCE.
    THIS IS SECOND SENTENCE.
    This Is Third Sentence.
  </body>
<html>
于 2013-02-18T07:10:44.370 回答
-4

你可以使用 csstext-transform:capitalize;属性

于 2013-02-18T07:09:28.383 回答