有没有办法使“句子大小写”格式化?例如,“THIS IS SENTENCE 1. THIS IS SENTENCE 2. THIS IS SENTENCE 3.” 变为 -> “This is sentence 1. This is sentence 2. This is sentence 3.”
有没有办法使“句子大小写”格式化?例如,“THIS IS SENTENCE 1. THIS IS SENTENCE 2. THIS IS SENTENCE 3.” 变为 -> “This is sentence 1. This is sentence 2. This is sentence 3.”
你可以使用id/class:first-letter
属性来实现这一点。
摘自上述重复的问题:
p {
text-transform: lowercase;
}
p:first-letter {
text-transform: uppercase;
}
::first-letter
伪元素,它会针对一个_element_中的第一个字母。 - John Dvorak::first-letter
但它不会将第二个句子的首字母大写。它变成了这样。** 这是第1个句子。这是第2个句子 ** 我想要的是 ** 这是第1个句子。这是第2个句子 **。 - Lianspan
。 - John Dvorak只有三个CSS属性。
text-transform: capitalize;
text-transform: lowercase;
text-transform: uppercase;
没有一个会按照你的要求输出。你可以使用小写的text-transform,然后使用JavaScript来大写每个句子的第一个单词。
text-transform:none
。 - John DvorakCSS可以转换每个单词的首字母,但不能转换每个句子的首字母。可能您需要在此处使用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>
var result = ""
而不是 result = ""
。好的,+1。 - Muhammad Talha Akbartext-transform:capitalize;
属性。capitalize
将所有单词首字母大写 - John Dvoraktext-transform: capitalize;
会让每个单词都变成大写字母。但是我想要的是每一个句子的第一个字母变成大写字母,就像我的例子一样。 - Lian