如何仅使用CSS(不是每个单词的第一个字母)将文本框的第一个单词的第一个字母更改为大写
答案 0 :(得分:0)
使用已被设计为输入的常规div。
#input:first-letter {
text-tranform: uppercase;
}
#input {
-moz-appearance: textfield;
-webkit-appearance: textfield;
background-color: white;
background-color: -moz-field;
border: 1px solid darkgray;
box-shadow: 1px 1px 1px 0 lightgray inset;
font: -moz-field;
font: -webkit-small-control;
margin-top: 5px;
padding: 2px 3px;
width: 398px;
}
<div id="input" contenteditable>hello world</div>
将第一个字母更改为change
事件中的大写字母。
var input = document.getElementById('input-field');
input.value = input.value.substr(0, 1).toUpperCase() + input.value.substr(1);
var change = input.addEventListener('change', function() {
input.value = input.value.substr(0, 1).toUpperCase() + input.value.substr(1);
})
<input id='input-field' type='text' value='hi world'>
使用:first-letter
伪选择器:
p:first-letter {
text-transform: uppercase
}
<p>hello darkness my old capital</p>
答案 1 :(得分:0)
据我所知,CSS中没有句子上限。其他答案似乎需要javascript。
如果您只希望每个元素的第一个字母都是大写的,那么这是一种粗略的方法来实现它,但它绝对不会接近实际的句子上限:
p {
text-transform: lowercase;
}
p:first-letter {
text-transform: uppercase;
}
<p>THIS IS THE FIRST EXAMPLE SENTENCE.</p>
<p>THIS IS THE SECOND EXAMPLE SENTENCE.
AND THIS THE THIRD, BUT IT WILL BE ENTIRELY LOWERCASE.</p>
答案 2 :(得分:-1)
你必须写js来实现这个
var capitalize = function(e){
// if the first letter is lowercase a-z
// ** don't run the replace unless required, to permit selecting of text **
if(this.value.match(/^[a-z]/)){
// replace the first letter
this.value = this.value.replace(/^./,function(letter){
// with the uppercase version
return letter.toUpperCase();
});
}
}
// listen to key up in case of typeing, or pasting via keyboard
// listen to mouseup in case of pasting via mouse
// prefer `up` events as the action is complete at that point
document.getElementById('targetBox').addEventListener('keyup', capitalize);
&#13;
<input type="text" id="targetBox">
&#13;