• ベストアンサー

背景ではなく、img srcをCSSで実装するには

背景ではなく、img srcタグをCSSで実装したいです。 どうやればいいでしょうか?

  • re999
  • お礼率61% (476/777)
  • HTML
  • 回答数6
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • DrFell
  • ベストアンサー率55% (305/551)
回答No.5

ロールオーバー目的でしたら、なおさら背景が簡単だと思います。メニューですと、文章構造的には箇条書きリストになると思います。 html <ul class="nav"> <li><a href="test.html">test</a></li><li><a href="test2.html">test2</a></li><li><a href="test3.html" class="only">test3</a></li><li><a href="test4.html">test4</a></li> </ul> css .nav li{width:100px;line-height:30px;list-style:none;} .nav li a{display:block;text-align:center;text-decoration: none;color:#ffffff;} .nav li a:link{background:url(http://okg.ifdef.jp/b/b/B7.gif);text-decoration: none;} .nav li a:hover{background:url(http://okg.ifdef.jp/b/b/B77.gif);} .nav a.only:link{background:url(http://okg.ifdef.jp/b/d/D7.gif);} .nav a.only:hover{background:url(http://okg.ifdef.jp/b/c/C7.gif);} お嫌いでしょうが、背景を使います。また、文字も含めた画像の場合は、文字を非表示にしたり、テキストインデントのマイナス値を使って見えない場所に飛ばします。が基本は背景をチェンジすることですので、これの考え方を身につけてください。マウスが乗ったときは疑似要素のhoverを使います。 test3で個別性を高めています。classを使って局所化しております。 今後のアドバイスですが、ロールオーバーがしたいなら、ロールオーバーの手法を調べる。(ロールオーバーで検索すれば、まず検索にひっかかるのはcssでの背景を使用したロールオーバーだと思います。)わからなければロールオーバーの手法を聞くことです。「背景を使わずにimg srcタグをCSSで実装」などという回りくどい聞き方は答えが返ってきにくくなります。 わからなければ、「css ロールオーバー 説明」などで検索してみてください。

re999
質問者

お礼

回答ありがとうございました。 >お嫌いでしょうが、背景を使います 別に嫌いじゃないです(笑) 参考になりましたー

その他の回答 (5)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.6

>・共通画像メニューを利用(PHP等でinclude) >・現在閲覧しているページに応じて、メニュー部分に、それ用の画像を表示させたい >・マウスオーバーで、メニュー毎のロールオーバー画像を表示させたい  具体的なHTMLが解らないのですが、共通画像メニューがメニュー(ナビゲーション)を画像に置き換えたもの「テキストを画像に置き換えて表現する。」でしたら、そもそもHTML的におかしいです。[14.1 スタイルシートの概説 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )より]  単純にPHPで、ナビゲーションリンクを書き出しましょう。 (例) <div class="nav">  <li><a href=""></a></li>  <li><a href=""></a></li>  <li><a href=""></a></li>  <li><a href=""></a></li> </div>  もし現在位置を他と区別したいなら <div class="nav">  <li><a href="">A</a></li>  <li>B</li>  <li><a href="">C</a></li>  <li><a href="">D</a></li> </div> でも良いでしょう。同じものしかincludeできなければ、上のものでよいが、HTMLごとに書き直す必要がある。 その上で、ロールオーバーのスタイルシートを書く。スタイルシートや画像を読み込まない(検索エンジンや点字端末・読み上げソフトなどの)ユーザーエージェントにもOK(ウェブ標準)ですし、CSSも極めて簡単です。

re999
質問者

お礼

回答ありがとうございました。 >ロールオーバーのスタイルシートを書く スタイルシートで、ロールオーバーって出来たんですね。 参考になりましたー

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

h2:before{content:url();}などで、h2見出しの前に画像を置くとかはできますが・・・ 具体的な内容が書かれていないので、これは回答ではないような気がします。 HTMLでIMGは、その文書を構成する要素(Element)です。もしIMGを使いたくないということでしたら、その画像は、そのHTML文書の構成要素ではないわけですから、背景以外はとりえないことになります。  ですので質問自体が矛盾しています。 「何のために」そうしたいか、あるいはHTMLにとって画像がどういう位置付けなのかを詳しく書いてください。  そうしないと回答が出来ません。できても正解でないでしょう。

re999
質問者

補足

回答ありがとうございました。 >「何のために」そうしたいか、あるいはHTMLにとって画像がどういう位置付けなのかを詳しく書いてください。 失礼しました。 要件的にはこんな感じです。 ・共通画像メニューを利用(PHP等でinclude) ・現在閲覧しているページに応じて、メニュー部分に、それ用の画像を表示させたい ・マウスオーバーで、メニュー毎のロールオーバー画像を表示させたい CSSでsrc属性を直接変更できないことが分かったため、 下記を参考にjsで試してみました。 (CSSで背景画像を利用しない理由は、SRCを利用せずに画像をロールオーバーさせる方法が分からないためです) http://okwave.jp/qa/q290847.html 試したことは、普通にメニューをincludeさせて、 ページ毎に、 document.getElementById("ID名").src= "画像のパス"; で、現在閲覧しているページ用の画像を上書きする、というもの。 ただ、これだとページ毎に、記述が必要になるのですが、 初めに挙げた要件について、 普通は、どうやるのでしょうか?

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.3

なぜ背景が嫌なのでしょうか?ということにもよるのですが あえて背景で、cssのヒント 背景画像をリピートせずに左に表示させる。 左の背景の部分だけpadding-leftで空ける。 背景を使わずに挿入する方法もありますが、最近のブラウザしか対応しておらず、あまり現実的とはいえません。 それでも、知りたいのであれば、ヒント contentというプロパティで要素の前や後ろに文字やイメージ画像を追加することができます。

re999
質問者

お礼

回答ありがとうございました。 >contentというプロパティで要素の前や後ろに文字やイメージ画像を追加することができます。 早速調べてみました。これは、HTML5でしょうか? >最近のブラウザしか対応しておらず、あまり現実的とはいえません。 そうですね、IE7とかには対応したいです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

冷静に考えれば自明ですが、背景以外のimgは「構造」になるわけですから cssでは定義できないですよね?

re999
質問者

お礼

回答ありがとうございました。 >自明ですが、背景以外のimgは「構造」になるわけですから >cssでは定義できないですよね? もしかして、何か裏技みたいなのがあるかな、と思って質問してみました。

回答No.1

おそらくcssのみではimg srcを実装するのは不可能かと思われます。 やりたい事をもっと具体的に記載していただければ、 他の方法で実現できるかもしれません。

re999
質問者

お礼

回答ありがとうございました。 >おそらくcssのみではimg srcを実装するのは不可能かと思われます。 やはり、不可能ですか…

関連するQ&A

  • cssで、imgタグに、背景画像を敷きたい

    cssで、imgタグに、背景画像(影)を敷く方法を教えてください。 ※divタグに敷く方法は分かるのですが、imgタグに敷く方法が分かりません。 ■現状 <HTML> <div id="hoge"> <img src~ <CSS> #hoge img { background-image:url(/images/background_shodow.jpg); background-repeat: none; background:position: ? width:? height:? margin:? padding:?; <影の大きさ> ・width400px ・height200px <写真のサイズ指定> ・width390px ・height190px ※これまでは、 写真のサイズが違うので、 css部分の#hoge img で、 画像の大きさを強制指定してました。 出来れば、 画像の大きさは、html側で指定せずに、 css側で調整したいです。 ムリなら、html側で大きさ指定します。 div枠にcss設定できれば早いかと思いますが、 それが出来ないため(img タグにしかcss指定不可)の相談です。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • <img src=http://にしたい

    PHPでWebページのソースを取得して そのソースの中の<img>タグの src属性がもしhttp://で始まらなかった場合 取得したURLをsrc属性に加える方法はないでしょうか? 例 URL=http://www.○○.com ソース <img src="/image/01.jpg"> ↓ <img src="http://www.○○.com/image/01.jpg"> に変更したいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • <img src=

    いくつかの画像を表示させたいのですが・・ <img src="1番目の画像URL"border="0"><img src="2番目の画像URL"border="0"> とタグを貼ると、画像同士がピッタリくっついてしまいます、 この間隔を開ける方法? いろいろ調べていますがみつかりません・・ 普通にスペースを入れたら[_]表示になってしまいました、 間隔を開ける方法を教えて下さい。お願いします・・

    • ベストアンサー
    • HTML
  • <img src=

    アクセスカウンタなどで<img src="cgi-bin/●●●.cgi......">で来客者数を表示できるCGIがありますが、あのように、例えば<img src="cgi-bin/●●●.cgi" width="xx" height="yy">で表示できるCGIとタグを入れるとそのCGIに買い込んで書き込んであるURLのページを500×400の範囲内に表示できるCGIはないでしょうか? <img src="cgi-bin/●●●.cgi?url=http://www.nantoka.or.jp/tobisaki.html">といった使い方のものでもかまいません。 感覚としては、1つのHTMLページにiframeでインラインフレームを入れるのと同じ考え方なのですが、iframeタグが使えないところに、ある別ページを挿入したいのです。 100ページ以上ある商品ページに同じ内容のテーブルを入れ、テーブルの内容を更新するたびに100ページ全部書き換えるのが大変なので、何とかしたいのです。 インラインで表示できれば、1つのHTML書類を書き換えれば100ページ全部が更新されることになりますから。 その商品ページはショッピングモール内のフォームで書き込むものなので、勝手にフレームで切ったりスタイルシートを使ったりできないので、IMGタグで対応するしかありません。 お心当たりのある方はいらっしゃらないでしょうか?

    • ベストアンサー
    • CGI
  • <img src=** border=0>の一括指定

    ファイルの中に、<img src=** border=0>のタグが複数あり、 少しでも、ページを軽くしたいので、 cssなどを使用して、border=0というのを一括指定することは可能でしょうか? わかる方が居りましたら、ぜひ、教えて下さい。 それでは、宜しくお願いします。

    • ベストアンサー
    • HTML
  • <IMG src="">のタグかCSSで、DLLする画像の順番の指定方法

    HTMLもしくは、CSSで ページに埋め込んだ<IMG SRC="xxx.jpg" class="">のようなものが2つある場合に、最初に優先してDLLするようにできるプログラミングはございませんでしょうか? ちなみに、<HEAD>タグを使う様な初歩的なものでは対処できませんでした。 どうぞ、宜しくお願いします。

  • IMGタグごとにCSSを設定する方法

    自分でGoogleやYahoo検索をしても見つけられなかったので、どなたかお教えください。 現在、HTML内に以下のようにIMGタグで画像添付しています。 -------- <img src="***" width="160" height="140" /><br /> <img src="***" width="32" height="30" /> <img src="***" width="32" height="30" /> <img src="***" width="32" height="30" /> -------- 最初に大きな画像を表示し、その下に並列するかたちで小さいサムネイルを並べています。 普段はCSSでレイアウトをして、画像それぞれにstyle属性やclass、ID属性などを付けています。それが、今回は上述のHTMLを外部サイトのPHPから出力しているもので、一切触れない(編集できない)状態にあります。 このような状態の場合でも、画像それぞれにCSSを設定することは可能なのでしょうか?最低限の希望は、大きい画像(160px*140px)をひとかたまり、サムネイル画像(32px*30px)をひとかたまりとして、それぞれのかたまりにCSSを設定できれば良いと思っています。 可能であればHTML+JavaScript+CSSで実現できる方法を希望します。 どなたかお教えください。よろしくお願いいたします。

  • <img src="00.gif" border="0">←これをCSSでやりたい

    製作しているサイトに小さい画像が沢山あります。 今までは<img src="00.gif" border="0">と普通に書いていたんですが、 なにせ画像の数が多いのでいちいち記述すると見直す際に見にくくて邪魔なんです。 この部分のborder="0"をCSSで記述し 、一括で各イメージのボーダーを0pxにする方法って何かありますか? もちろんborder="5"と記述したらボーダーが5pxになります。 以上宜しく教えて下さい。

    • ベストアンサー
    • HTML
  • CSSの背景色について

    HTMLにCSSを挿入して、背景色で、グラデーションを作っていますが、その背景色を、画面の真ん中から上のみに設定したいんですが、 そのようなタグはなく、どうしても、そのような設定を考えているんですが、何かいい方法はありませんか? 私が作ったタグです、 <style type="text/css"> <!-- body{ filter:progid:DXImageTransform.Microsoft.Gradient (startcolorstr='#7A99EE',endcolorstr='#FEFFD7',gradienttype='0' ) } --> </style> 何かいいアイディアがあったらお願いします

  • リンク画像をCSSを使って背景画像にするメリット

    リンク画像をCSSで設定するメリットは何ですか? 左上の「OKwave」のロゴマークもそうですが、なぜHTML言語のimgタグとaタグの組み合わせで、リンクを作っていないのでしょうか? CSSで画像を背景画像として設定するメリットは何なのでしょうか? すいません、ご教示願います。

    • ベストアンサー
    • CSS