Ответ 1
вы можете использовать псевдо-элемент :first-letter
:
.fl {
display: inline-block;
}
.fl:first-letter {
text-transform:uppercase;
}
<p>
<span class="fl">something</span> <span class="fl">better</span>
</p>
дает:
Что-то лучше
Я хочу использовать только первую букву, а другой должен быть небольшим, используя CSS
Строка:
SOMETHING BETTER
sOMETHING bETTER
Something better
но результат должен быть
Something Better
Возможно ли это с помощью CSS? Чтобы загладить первое письмо, я использую
text-transform: capitalize;
Но не в состоянии извлечь выгоду в каждом случае. "Я хочу использовать CSS, потому что в моем приложении он написал каждый, где жестко закодирован, но класс был вызван везде".
вы можете использовать псевдо-элемент :first-letter
:
.fl {
display: inline-block;
}
.fl:first-letter {
text-transform:uppercase;
}
<p>
<span class="fl">something</span> <span class="fl">better</span>
</p>
дает:
Что-то лучше
Это невозможно с помощью 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();});
}
Извлечено из Преобразование строки в заголовок с JavaScript
Вы можете попробовать комбинацию этого ответа и некоторого 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;
}
Почему вы просто не используете псевдо-элемент first-letter в css?
h2:first-letter{
text-transform: uppercase;
}
h2{
*your general code for h2 goes here;*
}
Да, 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>