像问题标题一样,是否可以更改每个单词的首字母的颜色和字体大小。例如,像下面的图片:我可以只使用CSS来更改每个单词的首字母的颜色和字体大小
是否有可能与只 CSS来做到这一点?我可以使用jQuery,但只能在纯CSS或CSS3解决方案中无法使用。
像问题标题一样,是否可以更改每个单词的首字母的颜色和字体大小。例如,像下面的图片:我可以只使用CSS来更改每个单词的首字母的颜色和字体大小
是否有可能与只 CSS来做到这一点?我可以使用jQuery,但只能在纯CSS或CSS3解决方案中无法使用。
可以产生小帽子的每一个字大写的文本使用此CSS:
h1 {
font-variant: small-caps;
text-transform: capitalize;
}
但你不能改变单独使用CSS首字母的颜色;你将不得不使用jQuery将span
元素添加到文本中,然后设置这些元素的样式。事情是这样的:
$('h1').html(function() {
// Very crude regex I threw together in 2 minutes
return $(this).text().replace(/\b([a-z])/gi, '<span class="caps">$1</span>')
});
有了这个CSS:
h1 {
font-variant: small-caps;
text-transform: capitalize;
}
h1 .caps {
color: red;
}
使用psedo元素:first-letter
,如:
.word:first-letter
{
font-size:200%;
color:#8A2BE2;
}
由于意见建议,这需要每个单词在它自己的元素,例如。 <span>
但是,这更接近你在纯CSS中想要的东西。
除非每个单词都是class =“wrap”的块或嵌入块,否则这是行不通的 – BoltClock
这个工作,但仅限于第一个单词的第一个字母。 – tomthorgal
在这里你去 -
<p class="each-word">First letter of every word is now red!</p>
.first-letter {
color: red;
}
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")
}
}
为你的脚本+1,但正如我所说的纯CSS解决方案是首选 – Champ
HTML
<h1>The title of this page goes here</h1>
JQuery的
$(document).ready(function() {
var words = $('h1').text().split(' ');
var html = '';
$.each(words, function() {
html += '<span style="font-size:200%">'+this.substring(0,1)+'</span>'+this.substring(1) + ' ';
});
$('h1').html(html);
});
http://stackoverflow.com/questions/8730037/capitalise-the-first-letter-of-each-word-within-a-certain-class将有助于jQuery解决方案。这是不可能的,因为没有':每个单词的第一个字母'选择器 – andyb