CSSでimgタグのsrc属性に相当するものを設定することは可能ですか?


532

srcCSSで属性値を設定することは可能ですか?現在、私がしていることは:

<img src="pathTo/myImage.jpg"/>

こんな感じにしたい

<img class="myClass" />
.myClass {
    some-src-property: url("pathTo/myImage.jpg");

CSSのまたはプロパティ使用せずにこれを実行したいです。backgroundbackground-image:


1
これはCSS3で可能になるようです:w3.org/TR/css3-values/#attribute
graphicdivine

7
今では可能です。Chrome / Safari / Operaでテスト済み:stackoverflow.com/a/11484688/632951
Pacerier

2
しかし、FireFox 30.0、Internet Explorer 11.0はサポートしていません
Laxmikant Dange 2014年

このCSSのみのソリューションは私(すべてのブラウザ)で機能しました:stackoverflow.com/a/19114098/448816、ただし例外として 'background-size:100%;'を追加しました。
mikhail-t 2014

(2020)あなたはJSでそれを行うことができますgetPropertyValue("--src")jsfiddle.net/CustomElementsExamples/vjfpu3a2
Danny '365CSI' Engelman

回答:


881

を使用しcontent:url("image.jpg")ます。

完全に機能するソリューション(Live Demo):

<!doctype html>

<style>
.MyClass123{
	content:url("http://imgur.com/SZ8Cm.jpg");
}
</style>

<img class="MyClass123"/>

テスト済み、動作中:

  • Chrome 14.0.835.163
  • Safari 4.0.5
  • Opera 10.6

テスト済みで機能しない

  • FireFox 40.0.2(Developer Network Toolsを確認すると、URLは読み込まれるが、画像が表示されないことがわかります)
  • Internet Explorer 11.0.9600.17905(URLが読み込まれない)

7
@gotqn、これまでのところChrome Safari Operaのみ。
Pacerier 2013年

36
@EricG、異なるアプリケーションには異なる要件があります。要件に合わない場合は、使用しないでください。ある場合は、それを使用してください。
ペーチェリエ2013

4
IE10が機能していないのは大丈夫です。私たちはIE7を捨てます(IE6について話そうではありません)。IE8も必要に応じて。しかしIE9-IE10 ...いいえ。
ロルフ2013年

11
への割り当てcontentをサポートするブラウザでも、動作がimg変更されることを付け加えておきます。画像はサイズ属性を無視し始め、Chrome / Safariでは「画像を保存」などのコンテキストメニューオプションが失われます。これは、空の置換された要素からのようなものにcontent効果的に変換imgを割り当てるためです。<span><img></span>
Ilya Streltsyn 2013

3
ブラウザが適切にサポートされていないと、これは有効な回答とは言えません。
emachine 2013

183

私が今日見つけた解決策があります(IE6 +、FF、Opera、Chromeで動作します):

<img src='willbehidden.png' 
 style="width:0px; height:0px; padding: 8px; background: url(newimage.png);">

使い方:

  • 画像は、幅と高さで見えなくなるまで縮小されます。
  • 次に、パディングを使用して画像サイズを「リセット」する必要があります。これは16x16の画像を提供します。もちろん、padding-left / padding-topを使用して長方形の画像を作成できます。
  • 最後に、新しい画像が背景を使用してそこに配置されます。
  • 新しい背景画像が大きすぎるか小さすぎる場合はbackground-size、たとえば次のように使用することをお勧めしbackground-size:cover;ます。

submit-input-imagesでも機能し、クリック可能なままです。

ライブデモをご覧くださいhttp : //www.audenaerde.org/csstricks.html#imagereplacecss

楽しい!


6
@RobAnu:これはかなりうまくいきます-jsfiddle
TimPietrusky

9
これは魅力的で賢いことですが、空のDIVの方が簡単です。
Volomike、2012

11
この場合はそうです。ただし、HTMLを制御できず、それでもIMGを操作したい場合があります。そこでは、このソリューションも機能します
RobAu 2012

2
画像にsrc属性がある場合、これが必要なテクニックです。+1-たくさん助けてくれました
James Long

3
一部のアプリケーションでは解決策になる可能性があるこの回答でランク付けしませんが、この方法には制限があります。画像ファイルのレンダリングの寸法を制御することはできません。通常の使用では、ファイルがソースで指定されている場合は、画像の高さと幅を制御できます。ただし、これは基本的に背景画像を使用したdivと同じです。divが画像よりも大きい場合、運が悪かったことになります。
TARKUS 2013年

114

CSSから画像を設定するための可能なメソッドのコレクション


CSS2:after擬似要素または新しい構文::afterからCSS3と共にcontent:プロパティ:

最初のW3C勧告:カスケードスタイルシート、レベル2 CSS2仕様 1998年5月12日
最新のW3C勧告:セレクターレベル3 W3C勧告 2011年9月29日

このメソッド、要素のドキュメントツリーコンテンツの直後コンテンツを追加します。

注:一部のブラウザーは、以下を定義する最新のW3C勧告でさえも無視して、一部の要素セレクター上にプロパティを直接実験的にレンダリングします。content

適用対象::beforeおよび:after疑似要素

CSS2構文(前方互換):

.myClass:after {
  content: url("somepicture.jpg");
}

CSS3セレクター:

.myClass::after {
  content: url("somepicture.jpg");
}

デフォルトのレンダリング:元のサイズ(明示的なサイズ宣言に依存しません)

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

しかし、これを書いている時点でさえ、<IMG>タグによる振る舞いはまだ定義されておらず、ハッキングされ、非標準に準拠した方法使用<img>できますが、での使用はお勧めしません

素晴らしい候補メソッド、結論を参照してください...



CSS1background-image:プロパティ:

最初のW3C勧告:カスケードスタイルシート、レベル1 1996年12月17日

このプロパティは、要素の背景画像を設定します。背景画像を設定するときは、画像が利用できないときに使用される背景色も設定する必要があります。画像が利用可能な場合、背景色の上にオーバーレイされます。

このプロパティはCSSの最初から存在していますが、それでも輝かしい言及に値します。

デフォルトのレンダリング:元のサイズ(スケーリングできず、配置のみ)

ただし

CSS3background-size:プロパティは、複数のスケーリングオプションを許可することで改善されました。

最新のW3Cステータス:候補の推奨 CSS背景と境界線モジュールレベル3 2014年9月9日

[length> | <percentage> | auto ]{1,2} | cover | contain

ただし、このプロパティを使用しても、コンテナのサイズによって異なります。

まだ良い候補の方法です、結論を見てください...



CSS2list-style:プロパティと一緒にdisplay: list-item

最初のW3C勧告:カスケードスタイルシート、レベル2 CSS2仕様 1998年5月12日

list-style-image: プロパティは、リストアイテムマーカー(箇条書き)として使用される画像を設定します

リストのプロパティは、リストの基本的な視覚的フォーマットを記述します。これにより、スタイルシートでマーカーのタイプ(画像、グリフ、または番号)を指定できます

display: list-item—この値により、要素(<li>HTMLなど)が主要なブロックボックスとマーカーボックスを生成します。

.myClass {
    display: list-item;
    list-style-position: inside;
    list-style-image: url("someimage.jpg");
}

短縮CSS:(<list-style-type> <list-style-position> <list-style-image>

.myClass {
    display: list-item;
    list-style: square inside url("someimage.jpg");
}

デフォルトのレンダリング:元のサイズ(明示的なサイズ宣言に依存しません)

制限:

  • 継承により、「リストスタイル」の値がOL要素とUL要素からLI要素に転送されます。これは、リストスタイル情報を指定するための推奨方法です。

  • 作成者がリストマーカーの個別のスタイル(色、フォント、配置など)を指定したり、位置を調整したりすることはできません。

<img>要素タイプ間で変換を行うことができないため、この方法もタグには適していません。これは、Chromeで機能しない、準拠していない制限されたハックです。

良い候補方法、結論を参照してください...



CSS3border-image:プロパティの推奨

最新のW3Cステータス:候補の推奨 CSS背景と境界線モジュールレベル3 2014年9月9日

かなり特殊な方法でのサイズの指定(この使用例では定義されていません)これまでのフォールバック境界プロパティ(例:)に依存する背景タイプのメソッド: border: solid

スクロールメカニズムが発生しない場合でも、最初の画像は祖先またはビューポートによってクリップされる可能性があることに注意してください。

この例は、右下隅の装飾としてのみ構成されている画像を示しています。

.myClass {
    border: solid;
    border-width: 0 480px 320px 0;
    border-image: url("http://i.imgur.com/uKnMvyp.jpg") 0 100% 100% 0;
}

適用対象:内部テーブル要素を除くすべての要素 border-collapse: collapse

それでものタグを変更することはできません(ただし、ここではハックです)。代わりに、次のように装飾できます。<img>src

標準が普及した後に検討すべき良い候補の方法。



CSS3element()表記ワーキングドラフトも言及する価値があります。

注:element()関数は、参照された要素の外観のみを再現し、実際のコンテンツとその構造は再現しません。

<div id="img1"></div>

<img id="pic1" src="http://i.imgur.com/uKnMvyp.jpg" class="hide" alt="wolf">
<img id="pic2" src="http://i.imgur.com/TOUfCfL.jpg" class="hide" alt="cat">

2つの非表示画像のいずれかのレンダリングされたコンテンツを使用して、CSS経由のIDセレクターに基づいて画像の背景を変更します。#img1

#img1 {
    width: 480px; 
    height: 320px; 
    background: -moz-element(#pic1) no-repeat;
    background-size: 100% 100%;
}

.hide {display: none}

注:これは実験的なものであり-moz、Firefox のプレフィックスでのみ機能し、over backgroundまたはbackground-imageプロパティでのみ機能します。サイズの指定も必要です。


結論

  1. セマンティックコンテンツまたは構造情報はすべてHTMLで送られます。
  2. スタイリングとプレゼンテーションの情報はCSSで送られます。
  3. SEOの目的で、CSSで意味のある画像を非表示にしないでください。
  4. 印刷時には、通常、背景のグラフィックは無効になっています。
  5. カスタムタグを使用してCSSからスタイルを設定できますが、Internet ExplorerのプリミティブバージョンはJavascriptまたはCSS ガイダンスなしでは理解できません(IEがHTML5タグをスタイルしない(shivを使用))。
  6. SPA(単一ページアプリケーション)は、通常、背景に画像を組み込んでいます。

それでは、画像の表示に適したHTMLタグを見てみましょう。

<li>要素[HTML4.01 +]

list-style-imagewith display: list-itemメソッドの完璧なユースケース。

<li>要素は、空にすることができ、可能にコンテンツを流し、さえ省略することが許されます</li>終了タグを。

制限:スタイルが難しい(width:またはfloat:役立つ可能性がある)

<figure>要素[HTML5 +]

figure要素はフローコンテンツを表し、オプションでキャプションが付いており、完全な文のように自己完結型であり、通常、ドキュメントのメインフローから単一のユニットとして参照されます。

要素はコンテンツなしで有効ですが、を含めることをお勧めします<figcaption>

この要素を使用して、イラスト、図、写真、コードリストなどに注釈を付けることができます。

デフォルトのレンダリング:要素は右揃えで、左と右の両方にパディングされます!

<object>要素[HTML4 +]

画像を含めるには、作成者はOBJECT要素またはIMG要素を使用できます。

このdata属性は必須であり、有効なMIMEタイプを値として持つことができます!

<object data="data:x-image/x,"></object>

注:<object>CSS のタグを使用するコツは、カスタムの有効なMimeType を設定し、 x-image/xその後にデータがないことです(必要なカンマの後に値にデータがありません,)。

デフォルトのレンダリング:300 x 150ピクセル。ただし、サイズはHTMLまたはCSSで指定できます。

<SVG>タグ

SVGニーズ対応ブラウザがしてあり <image>、ラスタ画像の要素を

<canvas>要素[HTML5 +]。

width属性のデフォルト値300、およびheightへの属性のデフォルトは150

<input>を持つ要素type="image"

制限:

...要素はボタンのように表示され、要素がボタンであることを示します。

どのChromeが続き、テキストがない場合は4x4pxの空の四角形をレンダリングします

部分解、セットvalue=" "

<input type="image" id="img1" value=" ">

また、現在作業中のドラフト<picture>であるHTML5.1の次の要素にも注意してください。


(2020)を使用するCSSのプロパティ:stackoverflow.com/questions/2182716/...
ダニー365CSI「エンゲルマン

すばらしい答えですが、基本的なプリミティブを提供するプラットフォームとしてのWebの完全な失敗を示しています。
serraosays

26

私はこのCSSで空のdivソリューションを使用しました:

#throbber {
    background-image: url(/Content/pictures/ajax-loader.gif);
    background-repeat: no-repeat;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
}

HTML:

<div id="throbber"></div>

インラインで表示したい場合はどうなりますか?「display:inline」を追加すると、divディメンションが0x0 ...になります
elsurudo

1
@elsurudoインライン要素に幅と高さを設定する場合は、display:inline-blockを使用してください
Erin Drummond

1
一番上の答えはFirefoxでは機能しないので、私はあなたの答えがもっと好きです!そして、それは明確であり、CSSハックはありません。
セルゲイボグダノフ2014年

複数の画像を表示する必要がある場合は、技術的にはidフィールドが一意であると想定されているため、IDの代わりにCSSクラスセレクターを使用するのが理想的です。
mix3d

このタイプの画像は、印刷設定で背景グラフィックがオフになっていると正しく印刷されません。
posfan12 2018年

14

私は提案された解決策よりも良い方法を見つけましたが、実際には背景画像を使用しています。 準拠メソッド(IE6では確認できません) クレジット:http : //www.kryogenix.org/code/browser/lir/

<img src="pathTo/myImage.jpg"/>

CSS:

img[src*="pathTo/myImage.jpg"] {

    background-image: url("mynewimg.jpg"); /* lets say 20x20 */
    width: 20px;

    display:inline-block;
    padding: 20px 0 0 0;
    height: 0px !important;

    /* for IE 5.5's bad box model */
    height /**/:20px;
}

古い画像は表示されず、期待どおりに新しい画像が表示されます。


次のきちんとしたソリューションは、Webkitでのみ機能します

img[src*="pathTo/myImage.jpg"] {

    /* note :) */
    content:'';
    display:inline-block;

    width: 20px;
    height: 20px;
    background-image: url("mynewimg.jpg"); /* lets say 20x20 */

}

これはきちんとしたトリックですが、本当に標準に準拠していますか?W3Cのページが言うcontentプロパティのみに適用:beforeし、:after疑似クラス。また、IE7以前をサポートする必要がある場合、contentサポートは存在しないと思います。それでも、非常に魅力的です。
jatrim

あなたは正しい、私はより準拠した方法を見つけた。投稿を更新しています!今私に投票してください;)ハハ。
EricG

更新されたアプローチは、コンテンツに依存するアプローチよりも間違いなく優れています。元のリンクを含めてくれてありがとう。それは洞察に満ちていました。@RobAuの答えは、実際には更新されたバージョンにも非常に似ていることに注意してください。
jatrim

1
@jatrim contentプロパティはすべての要素に適用されます。http://www.w3.org/TR/css3-content/#content
XP1

13

その人たちは正しいです。IMGはコンテンツ要素であり、CSSはデザインに関するものです。しかし、デザインの目的でコンテンツ要素またはプロパティを使用する場合はどうでしょうか。スタイル(CSS)を変更した場合に変更する必要があるIMGを自分のWebページ全体に持っています。

これは、CSSスタイルでIMGプレゼンテーション(実際には画像ではない)を定義するためのソリューションです。

  1. 1x1の透明GIFまたはPNGを作成します。
  2. そのイメージにIMGの適切な「src」を割り当てます。
  3. CSSスタイルの "background-image"で最終的なプレゼンテーションを定義します。

それは魅力のように機能します:)


5
-1あなたの答えは悪くありませんが、彼は具体的には彼が使いたくないと述べていますbackground*
フレスコマ

1
これはトリックです...私の意見では、トリックはブラウザーによって変更されます...そして、朝の日にはあなたのウェブサイトに地獄が表示されます:D :)))
Mahdi Jazini

11

ここに非常に良い解決策があります-> http://css-tricks.com/replace-the-image-in-an-img-with-css/

Pro(s)and Con(s):
(+)works with vector相対的な幅/高さ(RobAu回答では処理されないもの)を持つ画像
(+)はクロスブラウザーです(IE8 +でも機能します)
(+)CSSのみを使用します。したがって、img srcを変更する必要はありません(または、アクセス権がない場合や、既存のimg src属性を変更したくない場合)。
(-)申し訳ありませんが、背景のcss属性を使用します:)


今、それは適切な解決策です、すべてのブラウザで私のために動作します、ありがとう!! また、追加しなければならなかったことにも言及する価値があります。background-size:100%; 上記のソリューションのcssクラスに置き換え画像を正しく表示します。
mikhail-t 2014

9

HTMLコードで2つの画像を定義し、display: none;どの画像を表示するかを決定するために使用できます。


私はWebレスポンシブでありながらSEOも維持するソリューションを探していました。CSSでメディアクエリを使用して、使用するデバイスに応じて画像を変更したいのですが、コンテンツをHTMLで保持したいと思っていました。CSSでソースを宣言することは、私がやりたくないルートbackground-imageだったので、選択肢にはなりませんでした。imgSEO目的のタグが欲しかった。あなたの答えはとてもシンプルでエレガントで、私のすべてのハードルを解決します!ブラボー!また、ユーザーは両方の画像をダウンロードする必要はありません。さらに、画像はいくつでも追加できます。
ザビエル

これまでに読んだすべての回答では、スタイルシートでソースを宣言するか、マークアップでインラインCSSを使用する必要があります。どちらも私は満足していませんでした。厄介なコード!
ザビエル

7

CSSを介して画像のsrc属性を設定することはできません。あなたが得ることができる最も近いものは、あなたが言うように、backgroundまたはbackground-imageです。それはやや非論理的であるため、とにかくそれを行うことはお勧めしません。

ただし、対象のブラウザーがCSS3ソリューションを使用できる場合は、CSS3ソリューションを利用できます。content:url Pacerierの回答に記載されているとおりに使用します。他のブラウザ間ソリューションは、以下の他の回答で見つけることができます。


1
なぜ反対票?この回答は、受け入れられた回答よりも正確です。
harsimranb 2014

1
これまでの最良の答え:いいえ、CSSでそれを行うことはできません。
Milche Patern 2014

4

複数の画像を「制御」コンテナに入れ、代わりにコンテナのクラスを変更します。CSSで、コンテナのクラスに応じて画像の可視性を管理するルールを追加します。これは変更と同じ効果を生み出しますimg src単一の画像のプロパティをます。

HTML:

<span id="light" class="red">
    <img class="red" src="red.png" />
    <img class="yellow" src="yellow.png" />
    <img class="green" src="green.png" />
</span>

CSS:

#light         { ... }
#light         *        { display: none; }     // all images are hidden
#light.red     .red     { display: inline; }   // show red image when #light is red
#light.yellow  .yellow  { display: inline; }   // .. or yellow
#light.green   .green   { display: inline; }   // .. or green

CSS backround-imageの場合と同様に、すべての画像がプリロードされますが、img srcJS経由で変更する場合とは異なります。


3

別の方法

.myClass {
background: url('/img/loading_big.gif');
}
<div class="myClass"></div>

3

HTMLに残すデータもありますが、CSSでsrcを定義することをお勧めします。

<img alt="Test Alt text" title="Title text" class="logo">

.logo {
    content:url('../images/logo.png');
}

2

私の知る限りでは、あなたはできません。CSSはスタイルに関するものであり、画像のsrcはコンテンツです。


3
現在、ページをスタイルアップするためだけに画像が存在することがよくあります。
ロレンツォポリドリ

2
つまり、境界線、背景などとして使用される画像と実際にページコンテンツの一部である画像との間には違いがある可能性があります。図、記事の写真など
Rhys van der Waerden

1
あなたはできます、そしてあなたがしたい一般的で有効なケースがあります。
ryan0 2014年

2

以前の解決策を繰り返し、純粋なCSS実装を強調することがここでの答えです。

純粋なCSSソリューションは、別のサイトからコンテンツを調達しているため、配信されるHTMLを制御できない場合に必要です。私の場合、ライセンスされたソースコンテンツのブランドを削除して、ライセンシーがコンテンツを購入している会社に宣伝する必要がないようにしています。したがって、私は他のすべてを維持しながら、彼らのロゴを削除しています。これは私のクライアントの契約内にあることに注意してください。

{ /* image size is 204x30 */
     width:0;
     height:0;
     padding-left:102px;
     padding-right:102px;
     padding-top:15px;
     padding-bottom:15px;
     background-image:url(http://sthstest/Style%20Library/StThomas/images/rhn_nav_logo2.gif);
}

2

私はこれが本当に古い質問であることを知っていますが、これが決して実行できない理由についての適切な理由を提供する回答はありません。探していることを「実行」することはできますが、有効な方法で実行することはできません。有効なimgタグを取得するには、は、src属性とalt属性がです。

そのため、src属性を使用しないimgタグでこれを行う方法を提供する回答は、無効なコードの使用を促進しています。

要するに、あなたが探しているものは、構文の構造の中で合法的に行うことはできません。

出典:W3 Validator


2

または、私がインターネット間で見つけたこれを行うことができます。

https://robau.wordpress.com/2012/04/20/override-image-src-in-css/

<img src="linkToImage.jpg" class="egg">
.egg {
  width: 100%;
  height: 0;
  padding: 0 0 200px 0;
  background-image: url(linkToImage.jpg);
  background-size: cover;
}

画像を効果的に非表示にし、背景をパディングします。なんとハックなのか、JavaScriptを使用せずに拡大縮小できるaltテキストと背景を含むIMGタグが必要な場合はどうでしょうか。

現在取り組んでいるプロジェクトで、ヒーローブロックの小枝テンプレートを作成しました

<div class="hero">
  <img class="image" src="{{ bgImageSrc }}"
       alt="{{ altText }}" style="background-image: url({{ bgImageSrc }});">
</div>

1

backgroundプロパティを設定したくない場合は、CSSのみを使用して画像のsrc属性を設定することはできません。

あるいは、JavaScriptを使用してそのようなことを行うことができます。



1

あなたはJSでそれを変換することができます:

$('.image-class').each(function(){
    var processing = $(this).attr('src');
    $(this).parent().css({'background-image':'url('+processing+')'});
    $(this).hide();
});

0

プロジェクトのコンテキストに基づいてボタンに画像を動的に追加する場合は、?結果に基づいてソースを参照します。ここでは、mvvmデザインを使用して、Model.Phases [0]の値に、ライトのフェーズの値に基づいて、ボタンの電球の画像をオンにするかオフにするかを決定させます。

これが役立つかどうかはわかりません。JqueryUI、Blueprint、CSSを使用しています。クラス定義により、好きなものに基づいてボタンのスタイルを設定できます。

    <button>                           
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>                             
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>   
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>     


0

これを追加します。背景画像もbackground-position: x y;(x水平y垂直)で配置できます。(..)私の場合、CSS:

(..) 
#header {
  height: 100px; 
  background-image: url(http://.../head6.jpg); 
  background-position: center; 
  background-repeat: no-repeat; 
  background-color: grey; 
  (..)
} 
(...)

0

HTMlコード:

<!DOCTYPE html>
<html>
     <head>
         <link type="text/css" rel="stylesheet" href="css destination" />
     </head>
     <body>
<!-- click-able pic with link -->
           <a href="site you want"> 
<!-- Take the off if you don't want click-able link -->
                <h1 id(or class)="nameOfClassorid">
                     <span>Text that is not important</span>
                </h1>
           </a>
      </body>
 </html>

CSSコード:

span {
     display: none;
}
h1 id or class {
     height: of pic;
     width: of pic;
/* Only flaw (so far) read bottom */
     background-image:url(/* "image destination" */);
}
h1 id or class:hover {
/* Now the awesome part */
     background-image:url(/* 'new background!!!' */);
}

私は放課後htmlを数日間勉強しており、これを行う方法を知りたいと思っていました。背景を見つけて、2と2を組み合わせます。これは私がチェックした100%で機能します。必要なものを入力していない場合は確認してください!!! 高さを指定する必要があります。高さがなければ、何もないからです!!! アドオンできるこの基本的なシェルはそのままにしておきます。

例:

 <!DOCTYPE html>
 <html>
     <head>
         <link type="text/css" rel="stylesheet" href="style.css" />
     </head>
     <body>
           <a href="http:localhost"> 
                <h1>
                     <span>Text that is not important</span>
                </h1>
           </a>
     </body>
 </html>
span {
     display: none;
}
h1 {
     height: 100px;
     width: 100px;
     background-image:url("http://linuxlog.org/wp-content/uploads/2011/01/Ubuntu-Desktop-@-2011-01-11-191526-300x225.png");
}

h1:hover {
     height: 300px;
     width: 300px;
     background-image:url("http://cdn.css-tricks.com/images/ads/wufoo-600x600-red.png");
}

PSはい、私はLinuxユーザーです;)


0

ユーザーが背景の色と画像を印刷する」を無効にしてドキュメントを印刷する場合に基づく、backgroundまたはbackground-image失敗する可能性のある方法。残念ながら、これは典型的なブラウザのデフォルトです。

ここで唯一の印刷に適した、ブラウザ間の互換性のある方法は、ブロンクスによって提案されたものです。


0

最新のCSSプロパティを使用して、CSS定義からIMG srcをロードする

<style>
  body {
    --imgid: 1025; /* optional default img */
  }

  .shoes {
    --imgid: 21;
  }

  .bridge {
    --imgid: 84;
  }

  img {
    --src: "//i.picsum.photos/id/"var(--imgid)"/180/180.jpg"
  }

</style>
<script>
  function loadIMG(img) {
    img.src = getComputedStyle(img)	// compute style for img
      .getPropertyValue("--src")		// get css property
      .replace(/[" ]/g, "");				// strip quotes and space
  }

</script>
<img src onerror=loadIMG(this) class=bridge>
<img src onerror=loadIMG(this) class=shoes>
<img src onerror=loadIMG(this)>

  • src<IMG> の空の定義はonerrorハンドラーをトリガーします:loadIMG関数
  • loadIMG関数はCSS値を計算します
  • すべての不正な文字を取り除きます
  • IMG.srcを設定します
  • CSSが変更されても、画像は更新されません。もう一度loadIMGを呼び出す必要があります

JSFiddle:https ://jsfiddle.net/CustomElementsExamples/vjfpu3a2/


関連するSOの回答:WCPROPS



-3

HTML5を使用するだけです:)

<picture>
    <source srcset="smaller.jpg" media="(max-width: 768px)">
    <source srcset="default.jpg">
    <img srcset="default.jpg" alt="My default image">
</picture>

OPは特に、CSSソリューションでHTMLマークアップをクリーンアップすることを目指しています。この答えは、マークアップをさらに混乱させるだけです。
webaholik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.