CSS3を使用して開発しているWebサイトがあり、h1
タイトルのタグ:
<h1>main title</h1>
今、私はタイトルを別の色にしたいです:
<h1>main <span>title</span></h1>
私もです:
h1 {
color: #ddd;
}
h1 span {
color: #333;
}
notspan
タグを使用し、CSSで最後のWordのみを異なる色に指定する方法はありますか?
これは純粋なCSSでは不可能です。ただし、lettering.jsを使用して::last-Word
セレクター。 CSS-Tricksには、これに関する優れた記事があります。 CSS-Tricks:nth-everythingの呼び出し 。その後、次のことができます。
h1 {
color: #f00;
}
/* EDIT: Needs lettering.js. Please read the complete post,
* before downvoting. Instead vote up. Thank you :)
*/
h1::last-Word {
color: #00f;
}
「最後の単語」はすべてのブラウザで機能するわけではありません。たとえば、Safariでは機能しません。私は受け入れられた答えを使いません。単一のタイトルの最後のWordを変更するためだけにライブラリまたはプラグイン全体をインポートするのは良い考えではないと思います。「大砲でバグを殺す」ようなものです...代わりに、単一のJavascript関数を使用し、グローバルクラス。このようなもの:
<h1>This is my awesome <span class="last-Word">title</span></h1>
CSS:
<style>
.last-Word {font-weight:bold; /* Or whatever you want to do with this element */ }
</style>
最初は、次のようなものがあります。
<h1 class="title">This is my awesome title</h1>
次に、Javascriptメソッドを初期化して、$(document).ready()の最後のWordを変更できます=>
<script>
$(document).ready(function() {
$('.title').each(function(index, element) {
var heading = $(element);
var Word_array, last_Word, first_part;
Word_array = heading.html().split(/\s+/); // split on spaces
last_Word = Word_array.pop(); // pop the last Word
first_part = Word_array.join(' '); // rejoin the first words together
heading.html([first_part, ' <span class="last-Word">', last_Word, '</span>'].join(''));
});
});
</script>
幸運を。
いいえ、ありません。 CSSには::first-letter
と::first-line
のみが存在します。それ以外の要素は、要素を使用して手動で行う必要があります(例:span
)。
注:::first-Word
も::last-Word
も、( セレクターレベル4仕様 。
Iblueの答えを取りますが、もう少し賢明にします。
次の設定で lettering.js を使用します。
$(document).ready(function() {
$('h1').lettering('words');
});
これにより、<h1>
タグが次のように分割されます。
<h1>
<span class="Word1">Highlight</span>
<span class="Word2">the</span>
<span class="Word3">last</span>
<span class="Word4">Word</span>
<span class="Word5">a</span>
<span class="Word6">different</span>
<span class="Word7">color</span>
</h1>
もちろん、.Word7
をターゲットにすることはできません。これは最後ではない可能性があるため、:last-child
CSS擬似クラスを使用できます。
h1 {
color: #333;
}
h1 > span:last-child {
color: #c09;
}
これで、最後のWordは別の色になりました。 実際の例をご覧ください 。
注意が必要なのは :last-child
のサポート だけです
CSSは実際にはそのような方法でテキストと対話しません。 DOMツリーの要素とやり取りします。そのWordの周りにスパンを追加することは、テキストの一部を区別するための標準的な方法です(少なくとも私が見てきた方法です)。 spanタグを使用するだけで、コードの管理者から感謝されます。
いいえ。特定の単語にセレクタはありません。 セレクタレベル3:2.セレクタ を参照してください。
span
タグを使用するか、JavaScriptを実行して、すべてのWordをそのWordを含むスパンに変換する必要があります。
CSSは要素に対して機能しますが、通常は要素内のテキストやデータに対しては機能しません。ただし、Javascriptを使用して、要素内の実際のテキストを操作することもできます。
いいえ、CSSには、要素の最後の(または最初の)単語を参照するセレクターはありません。最初の文字と最初の行には擬似要素がありますが、個別にスタイルを設定するには、単語をコンテナにラップする必要があります。
CSSには単語に関する知識がありません。存在する唯一のものは:first-letterと:first-lineです。 Wordのような構造とlastの擬似要素は存在しません。
1つの要素内で回避策を実際に使用する場合は、javascriptを使用して最後のWordを解析する必要があります。ページにいくつかのケースしかない場合は、あなたのやり方が最良の方法だと思います。
H1に使用する場合は、ページ上で1回だけ使用する必要があります。