12

「SENTENCE CASE」をフォーマットする方法はありますか? 例: "THIS IS SENTENCE 1. THIS IS SENTENCE 2. THIS IS SENTENCE 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 プロパティは 3 つしかありません。

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 に答える