2011-12-19 14 views
8

親の幅に拡大しないテキストの背景色を設定するにはどうすればよいですかdiv?私はh1{background color:white;}を使用し、私が望むテキストの周りにh1をラップしましたが、白い背景はテキストを超えて広がっています。それはあなたが言葉を強調表示しているようなものです。CSSの背景色はテキストまで拡張されますか?

+0

を使用するためになぜテキストの色を変更したり、背景色をしないで、インラインにこの要素を変更しますか私はあなたがここで何をしようとしているのか正確には分からない。 –

+0

h1要素の代わりにdivに背景色を追加しようとしましたか? – Rondel

答えて

15

h1はブロック要素なので、使用可能なすべての領域が使用されます。透明:?だけその幅

h1 { 
    display: inline; 
    background-color: white; 
} 

http://jsfiddle.net/wxNQR/

+1

これで解決しました。残念ながら私はこれを確認するまで5分を持っています... – Matt

+1

悲しいことに? xD ...... – eveevans

3

h1はブロックレベルの要素であり、デフォルトではブロックレベルの要素が展開されて、親要素の利用可能な幅をすべて埋めます。これを解決する最も簡単な方法は、floatに要素である

h1 { 
    background-color: white; 
    float: left; 
} 

それは見出し要素の周りに流れないように、あなたは、その後、次の段落のスタイルをする必要があります。

p { 
    clear: left; 
} 

IE7以下をサポートしていないのであれば、隣接する兄弟セレクタを使用してこの選択をより細かくすることができます。h1要素の直後のp要素だけがスタイルになります。

h1 + p { 
    clear: left; 
} 
+1

正直なところ、私は浮動小数点が主要なPITAであることを知っていて、浮動小数点数が最も簡単な解決策を提示するという意見はありません。 「」にテキストをラップしてみませんか? –

+0

@MДΓΓLLLLLLOK、「最も良いセマンティックソリューション」スタイリングのためだけに「スパン」を導入するのは面倒です、IMO。 – lonesomeday

+1

@MДΓΓLLLLLLなぜなら、H1は意味的に正しい要素であるかもしれないからです。 IMOの表示:インラインブロックは、これを解決する最も良い方法です - もしIE7だけがサポートしていれば... – ptriek

関連する問題