我想只使用CSS
来大写第一个字母和其他应该是小字符串是:
SOMETHING BETTER
sOMETHING bETTER
Something better
但结果应为
Something Better
这可以使用CSS吗?要资本化我使用的第一个字母
text-transform: capitalize;
但不能在每种情况下都有资本化。 “我想使用CSS,因为在我的应用程序中,它已经编写了每个硬编码的地方,但是到处都有一个类。”
答案 0 :(得分:36)
您应该能够使用:first-letter
伪元素:
.fl {
display: inline-block;
}
.fl:first-letter {
text-transform:uppercase;
}
<p>
<span class="fl">something</span> <span class="fl">better</span>
</p>
的产率:
更好的东西
答案 1 :(得分:7)
仅使用CSS是不可能的,但您可以使用Javascript或PHP来实现。
在 PHP
中ucwords()
在 Javascript
中function toTitleCase(str){
return str.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
答案 2 :(得分:6)
您可以尝试this answer和一些javascript(使用jQuery)的组合
HTML:
<div class='capitalize'>
SOMETHING BETTER
SOMETHING BETTER
SOMETHING BETTER
</div>
JAVASCRIPT:
$('.capitalize').each(function(){
var text = this.innerText;
var words = text.split(" ");
var spans = [];
var _this = $(this);
this.innerHTML = "";
words.forEach(function(word, index){
_this.append($('<span>', {text: word}));
});
});
CSS:
.capitalize {
text-transform: lowercase;
}
.capitalize span {
display: inline-block;
padding-right: 1em
}
.capitalize span:first-letter {
text-transform: uppercase !important;
}
答案 3 :(得分:2)
为什么不在css中使用:first-letter伪元素?
h2:first-letter{
text-transform: uppercase;
}
h2{
*your general code for h2 goes here;*
}
答案 4 :(得分:0)
是的,CSS在这里没有帮助。欢迎来到JavaScript的世界,一切皆有可能。
window.onload = function(){
var elements = document.getElementsByClassName("each-word")
for (var i=0; i<elements.length; i++){
elements[i].innerHTML = elements[i].innerHTML.replace(/\\b([a-z])([a-z]+)?\\b/gim, "<span class='first-letter'>$1</span>$2")
}
}
.first-letter {
color: red;
}
<p class="each-word">First letter of every word is now red!</p>