Result
正規表現で英数字のみ対応させているので日本語はこのコードでは対応できない。Lettering.jsなら可能。
jQuery
//foo内からテキストを正規表現で探して1つずつspanで囲む $( '.foo' ).children().andSelf().contents().each( function () { if ( this .nodeType == 3) { $( this ).replaceWith($( this ).text().replace(/(\w)/g, "<span class='char'>$&</span>" )); } }); $( '.foo' ).each( function () { //span要素に番号付きのclassを与える $( 'span.char' , this ).each( function (i) { i = i+1; $( this ).addClass( 'char' + i); }); }); |
css
.foo span{ display : inline-block ;} .foo .char 1 { color : red ;} .foo .char 2 { color : green ;} .foo .char 3 { color : blue ;} .foo .char 4 { color :yellow;} .foo .char 5 { color :orange;} .foo .char 6 { color :yellowgreen; padding-left : 5px ;} .foo .char 7 { color :cyan; padding-left : 5px ;} .foo .char 8 { color :gold; padding-left : 5px ;} .foo .char 9 { color :pink; padding-left : 5px ;} .foo .char 10 { color :magenta; padding-left : 5px ;} |
html
< h2 class = "foo" >kachibito</ h2 > |
via
via:http://hompimpaalaihumgambreng.blogspot.jp/2012/04/letteringjs-sederhana.html