2009-04-09 21 views
64

CSSを使ってテキストに画像を追加するにはどうすればよいですか?CSSのテキストの左側に画像を追加

私はこれを持っている:

<span class="create">Create something</span> 

と私は、CSSを使用して、その左側に16×16の画像を追加したいです。これは可能ですか私はちょうど手動そうのようなこの画像を追加する必要があります

<span class="create"><img src="somewhere"/>Create something</span> 

私はむしろ手動で私はCSSでそれをやってみたかった理由であるところのすべてを変更する必要はありませ思います。

ありがとうございました!

答えて

109
.create 
{ 
background-image: url('somewhere.jpg'); 
background-repeat: no-repeat; 
padding-left: 30px; /* width of the image plus a little extra padding */ 
display: block; /* may not need this, but I've found I do */ 
} 

希望の結果が得られるまで、余白と余白を入れて遊んでください。また、バックグラウンドイメージの位置(「トムライト」へのノード)を「背景位置」で再生したり、「背景」(link to w3)の完全な定義をして再生することもできます。すべての近代的なブラウザとIE8 +で

.create:before { 
content: url(image.png); 
} 

作品:

.create 
{ 
    margin: 0px; 
    padding-left: 20px; 
    background-image: url('yourpic.gif'); 
    background-repeat: no-repeat; 

} 
+0

は、画像の位置を指定したい場合があります素晴らしい作品。しかし、そうでなければ、良い呼び出し。 –

+1

ラインの高さがイメージを垂直に収めるのに十分な大きさであることを確認すると、表示プロパティをブロックに設定することを避けることができます。そうしないと、ブロックされてブロック要素にしたいことがあります。 –

+0

2つの最初の行の代わりに最適化されたオプションを使用できます。 background:url( 'somewhere.jpg')no-repeat; –

8

のようなものを試してみてください。

編集

しかし大規模なサイトでこれを使用しないでください。 :before擬似要素は、パフォーマンスの面で恐ろしいです。

+0

まだ非常に役に立ちます:-) –

+0

* no-repeat * – Traingamer

4

これは

.create:before{ 
    content: ""; 
    display: block; 
    background: url('somewhere.jpg') no-repeat; 
    width: 25px; 
    height: 25px; 
    float: left; 
} 
+1

を忘れないでください。あなたはこれを詳しく説明することができます。なぜ彼のコードは等しくなかったのですか? – Yaje

+1

'url()'に何かがあるでしょうか? –

+0

@ダーレンクック - あなたが皮肉っているかどうかわからない、とにかくあなたのイメージにURLを置かなければならない。 – Giovanni

関連する問題