CSSだけで、対象となるテキストのみの背景色を設定するには?

Question

テキストの後ろに緑の背景を動的に追加するにはどうしたらいいでしょうか。ただし、ページ全体の幅ではなく、テキストの部分だけです。

Problem

現在のコードでは、緑色の背景がページ全体に広がってしまいます。HTMLやJavascriptを変更することはできず、CSSファイルのみの変更となります。

.

HTML

<h1>The Last Will and Testament of Eric Jones</h1> 

CSS

h1 { 
    text-align: center; 
    background-color: green; 
}
ソリューション

テキストは、<span>などのインライン要素の中に入れます。

<h1><span>The Last Will and Testament of Eric Jones</span></h1>

そして、インライン要素に背景色を適用します。

h1 {
    text-align: center; 
}
h1 span { 
    background-color: green; 
}

インライン要素の大きさはそのコンテンツの大きさと同じなので、これで大丈夫でしょう。

解説 (7)

非常に簡単な方法は、<span>タグを追加して、その中に背景色を追加することです。そうすれば、思い通りの表示になります。

<h1>  
    <span>The Last Will and Testament of Eric Jones</span>
</h1> 

そしてCSS

h1 { text-align: center; }
h1 span { background-color: green; }

WHY?

インライン要素タグの中に<span>タグを入れることで、効果を装ったコンテンツの上にのみスパンすることができます。

解説 (0)

text-alignment centerを削除して、テキストが入っている<h1>または<div>を中央に配置してみてください。

h1 {
    background-color:green;
    margin: 0 auto;
    width: 200px;
}
解説 (0)