134

要素とともに:before疑似要素を使用しようとしていimgます。

このHTMLとCSSを検討してください...

HTML

<img src="http://0.gravatar.com/avatar/this-is-not-a-hash" alt="" />

CSS

img:before {
  content: "hello";
}

jsFiddle

これでは、目的の効果が得られません(Chrome13およびFirefox6でテスト済み)。ただし、divまたはspan要素で機能します。

なぜだめですか?

疑似要素を要素で機能させる方法はありimgますか?

4

3 に答える 3

145

スペックによると...

ノート。この仕様は、置き換えられた要素(HTMLのIMGなど):beforeとの相互作用を完全には定義していません。:afterこれは、将来の仕様でより詳細に定義される予定です。

imgこれは、要素を処理できないことを意味していると思います(今のところ)。

この回答も参照してください。

于 2011-09-13T03:25:28.823 に答える
8

imgブラウザベンダーは、仕様の解釈のためにタグに疑似要素を実装していない可能性があります。img要素は、厳密に言えば、ブロックレベル要素またはインライン要素ではなく、空の要素です。

于 2012-06-14T16:18:41.403 に答える
6

テストして、それがきれいではないことを知るためだけに、次のようにして、疑似要素を「img」要素で機能させることができます。

display: block; content: ""; height: (height of image)px CSSのimg要素に:を追加します。

それはあなたのimgタグを空にしcontent: ""ますがあなたの原因はそれからできます

style="background-image: url(image.jpg)" htmlのimg要素に:を追加します。

これをFx、Chrome、Safariでテストしました

于 2012-09-01T08:19:19.623 に答える