レスポンシブwebデザインでの画像表示について

このQ&Aのポイント
  • レスポンシブwebデザインでの画像表示について悩んでいる初心者が、パターンAとパターンBの画像表示方法についてアドバイスを求めています。
  • パターンAでは、1つの大きな画像を縮小して全サイズに対応させる方法を用いていますが、Retinaディスプレイに対応した画像の必要性に悩んでいます。
  • パターンBでは、PCディスプレイ用、タブレット・高解像度スマホ用、通常スマホの縦向用の3つのサイズ別に画像を用意し、表示する方法を検討しています。初心者なりに調べてみた結果、jQueryを使わずにCSSで画像を表示する方法に興味を持っています。
回答を見る
  • ベストアンサー

レスポンシブwebデザインでの画像表示について

私はサイト制作初心者なんですが、なんとかレスポンシブwebデザインでのサイトを作っています。 そこで、画像の表示方法について悩んでいたので、アドバイスをお願いします。 今現状やっていた画像表示処理は・・・ <パターンA> 1つの大きな画像を%で縮小させ、あくまで1枚だけで全サイズに対応する というものです。 ところが最近、ネットでたくさんのプロの方々のブログを拝見していると、どうやらRetinaディスプレイに対応した画像は必須なんじゃないか?となり、悩んでおります。 もしRetinaディスプレイに対応した画像の場合は、表示サイズの倍サイズで作ったものを縮小して表示させなければいけないため、重くなるのは必定。 となると、さすがにパターンAでは厳しいと思い下記のパターンBを検討しています。 <パターンB> 1つの画像につき  ・PCディスプレイ用画像  (・タブレット・高解像度スマホ用画像)  ・通常スマホの縦向用画像 の、2つないしは3つのサイズ別で対応する そこで、もしこのパターンBで画像を表示する際は、一体どのような変換方法を使うのが現在では適切なのでしょうか? 初心者なりに調べてみたりして考えていたのが↓ (1)htmlに画像を入れ、それをjQueryで横幅サイズ毎に表示される画像を変える (2)htmlには画像を入れず、横幅サイズ毎に読み込ませるcssファイルで、divなりなんなりのbackground-imageとしてそれぞれの画像を表示する でした。 個人的には余計なjQueryを使いたくないため、初心者なりに考えてみた結果(2)に行き着いたんですが、そもそも(2)での画像表示は、どうなんでしょうか? どなたかお詳しい方、レスポンシブwebデザインでの画像表示方法について、アドバイスをください。 よろしくお願いいたします。

  • CSS
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
回答No.3

>No.2お礼 見出しの部分に<p>を使っては行けない、箇条書きであれば<ul>を使わなければならない、 というような文法については理解されてますでしょうか。 また、太字で表示したいのであれば、<strong>や<b>を使っても太字になりますが、<span style="font-weight:bold">言葉</span>でも太字になります。 同様に、画像を表示する方法は<img>でも表示できますし、<span style="background-image:url();">でも表示できます。 ですが文書は <p><img>この部分は段落で、1つの画像が含まれます。</p> <p style="background-image:url()">この部分は段落で、画像は含まれませんが、画像が表示されています。</p> このような違いが生じいます。 HTMLの文法というのは、太字になれば何でも良い、画像が表示されれば何でも良い、というわけではなく、 何のために太字にするのか、何のために画像を表示するのかということを考えて、「何のために」という目的を指示するためのタグを記述しなければなりません。 「見出しにするために」<h1>タグを使用する。(スタイルシートでフォントサイズを大きくする) 「強調するために」<strong>タグを使用する。(スタイルシートで太字にする) 「強調ではないが、文書に関するキーワードがあることを示すために」<b>タグを使用する。(スタイルシートで太字にする) 「文書に関連する画像がある事を示すために」<img>タグを使用する。 「文書に関連しない画像を表示するために」スタイルシートのbackground-imageやcontentを使用する。 文法チェッカーが判断できるのは、<p>と<span>の順番が逆になっていないか、<ul>の直下は<li>しか含まれていないか、などだけであり、 「この言葉は箇条書きか、段落か、見出しか」などの判断は出来ません。 そのため、箇条書きの場所に<p>を使っていてもエラーとして表示されませんし、<img>を使って表示しなければならない画像を<p>のスタイルシートで表示していてもエラーにはなりません。 改めて質問文に答えると、 <img>で表示すべき画像は<img>で表示し、JavaScriptでファイル名を変更する。 CSS・background-imageで表示すべき画像はCSSで表示し、media queriesなどを使用してファイル名を変更する。 というのが、文法的に正しい方法だと思います。(作りやすいかどうかとか、制作者の技術的にどうとかは考慮していません。) 文法よりも作りやすさを優先するのであれば、自分が作りやすいと思う方法で作れば良いと思います。 どの方法が作りやすいと感じるかは個人差がありますので、どれが良いというのは何とも言えません。

ykgad1
質問者

お礼

taloo 様 文書の論理構造とは文法の事だったんですね。わざわざ大変丁寧にご教授頂き、勉強になりました。 本当にありがとうございます!! 早速ご指摘頂いた部分を、全文で確認してきました! どうやら、画像以外の部分はまっとうに記述されておりました。 ただ、これは結果オーライなだけで文法の正しさなど意味がわからず、ネットでコピペしたりプロが記述してる通りにやっていただけなので、自分の未熟ぶりを痛感しております。 早速、文章の論理構造というのを勉強し直して、改めて記述しなおしてみます! ><img>で表示すべき画像は<img>で表示し、 >JavaScriptでファイル名を変更する。 >CSS・background-imageで表示すべき画像はCSSで表示し、 >media queriesなどを使用してファイル名を変更する。 >というのが、文法的に正しい方法だと思います。 そうですか、やはりscriptを使うのが良い方法なんですね! media queries、早速勉強して組み込んでみます!! 本当に本当にありがとうございました!

その他の回答 (2)

回答No.2

<img>に相当する物を表示するのであれば、 >(1)htmlに画像を入れ、それをjQueryで横幅サイズ毎に表示される画像を変える この方法しかないと思います。(jQueryに限らず、JavaScriptライブラリ全般で) >(2)htmlには画像を入れず、横幅サイズ毎に読み込ませるcssファイルで、divなりなんなりのbackground-imageとしてそれぞれの画像を表示する たしかにこれでも可能と言えば可能ですし、CSSで対応できる(JavaScript未対応/停止環境でも切り替え可能)メリットは有りますが、 <img>ではなくなるため、文書の論理構造が違う物になります。 >個人的には余計なjQueryを使いたくないため、初心者なりに考えてみた結果(2)に行き着いたんですが、そもそも(2)での画像表示は、どうなんでしょうか? <img>で表示すべき物を背景画像やデザイン画(CSS)として表示するのは、HTMLの文法として間違った方法だと思いますし、 逆に、背景画像として表示すべき物を<img>で表示するのも間違った方法だと思います。 それを考えれば、どちらの方法を使うべきかは必然的に決まってくると思います。 JavaScriptを使用する場合は、ページ読み込み完了後(DOMContentLoadedイベント)で<img>のsrc属性を処理すると、それでも最初に書かれていた画像の読み込みは行ってしまいますから、 ダウンロードサイズを優先するのであれば、 document.write()でレスポンシブイメージの処理を、<noscript>でデフォルトの画像を<img>で表示するのがベストではないかと思います。 ------------------------ http://picture.responsiveimages.org/ <picture>という要素が策定中です。 質問者さんがやろうとしている事をするための専用タグで、<img>をそのまま使用できるため文書の論理構造が乱れる事も有りません。 とはいえ、仕様策定中ですのでどのブラウザも対応していません。

ykgad1
質問者

お礼

ご回答ありがとうございます。 非常に参考になるご助言、ありがとうございます! ><picture>という要素が策定中です。 これは私もネットで探していたら出てきたのですが、やっぱり今はまだ使用するものではないんですね。あぶなかった、危うくこれを使う所でした。 ありがとうございます。 やはりscriptで切り替えるしかないんですね。 う~~~ん。。。 不勉強で申し訳なく思うのですが、1つお伺いさせてください。 ><img>ではなくなるため、文書の論理構造が違う物になります。 とのことですが、論理構造が違うというのは、具体的にどのような影響があるのでしょうか? 初歩的な質問で申し訳ありません!! さきほど試しにやってみると、ブラウザ表示上も、コードをW3Cの検証サービスでチェックした際も、一切問題ない状態でした。 もしやSEO的に良くないとか・・・などの致命的なデメリットがあるのでしょうか?

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

それは良く考えると、ディスプレイによってスタイルシートを振り返る方法ですね。 iPhone Android など、スマートフォン向けhtmlコーディング/CSS | htmlマークアップ・CSS | H.I. Art Works [ Web Technology ] ( http://tech.hi-works.com/webcreative/markup/389 )  のように、一般的な方法が公開されています。ポイントはCSS3のMedia Queriesをつかって読み込むスタイルシートを切り替えるところです。スマートフォンは基本的にCSS3に対応していると考えて良いでしょう。  詳しくは media queries - Google 検索 ( https://www.google.co.jp/search?q=Media%20Queries&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a )

ykgad1
質問者

お礼

レスポンシブにする際、CSSで割り振るのか、Media Queriesで切り替えるのか悩んだんですが、実際は、どっちが良いのでしょうか? ネットで調べたりすると、どっちもどっちの賛否両論で、初心者の私には判断できませんでした。 結局CSSでの割り振りを選んだのは、単純に余計なjQueryを使いたくなかったためです。

関連するQ&A

  • レスポンシブwebデザインで横幅を変更せずに文字を

    よくレスポンシブwebデザインで横幅に合わせて基本的には、横幅を320pxにしてサイトを設計するという記事をよく見ますが、横幅が640pxのRetinaディスプレイで見ると画像やyoutubeの動画の画質が悪くなってしまいます。 なので、サイトの横幅を640pxにして、PCで見るときはfont-sizeを12px、line-heightを16pxにして、スマートフォンで見る際には、倍のfont-sizeを24px、line-heightを32pxにというように、横幅を変更するのではなく文字サイズの変更だけをしてサイトを制作するつもりなのですが問題ないですよね?

    • ベストアンサー
    • CSS
  • レスポンシブWebデザインでテキストの振分について

    現在あるPCサイトをスマホにも対応させたいので、スマホ用のファイルを別に作成するか、またはレスポンシブWebデザインにしようと考えております。 そこで疑問に思ったことがあります。 私が把握しているレスポンシブWebデザインのサイトは、例えば住友商事のようなサイトです。http://www.sumitomocorp.co.jp/ パソコンのブラウザで表示している場合、マウスを使ってカーソルを操作してブラウザを縮小すると、レイアウトが可変します。 ※もちろん、スマホで見れば、スマホに最適化された表示になっております。 一方、アマゾンのようなサイトの場合、パソコンでカーソルを操作してブラウザを縮小しても表示は変わりません。 しかし、PCとスマホで異なるデバイスで確認すると、表示しているテキストや画像が異なります。 私の認識では、このようなサイトはPC用とスマホ用で異なるファイルを作成し、PCとスマホで読み込ませるURLを振り分けるていると思っておりましたが、PCで確認してもスマホで確認してもアドレスバーに表記されているURLは同一の物です。 このアマゾンのようなサイトはレスポンシブWebデザインによって作られているのでしょうか? もし、レスポンシブWebデザインならば、デバイスごとに表示させる画像を振り分けることははもちろんのこと、テキスト(文章)の振り分もできるということなのでしょうか? レスポンシブWebデザインで画像もテキストも振り分けられるなら、PC用とスマホ用でファイルを分ける必要はないかと思うので、私が作成したPC用のサイトを、レスポンシブWebデザインにしようかと思っております。 以上となります。 どのようなご回答でも良いので、また質問の内容とはそれてしまってもよいので、なにかしらご回答を頂けると幸いです。 宜しくお願い致します。

    • 締切済み
    • CSS
  • レスポンシブwebデザイン

    レスポンシブwebデザインで スマホの時は <img src="http://1.png"> <img src="http://2.png"> の様に2つの画像を表示し PCの時は <img src="http://1.png"> <img src="http://2.png"> <img src="http://3.png"> の様に3つの画像を表示する事は出来ますか? 実際のタグはどちらも <img src="http://1.png"> <img src="http://2.png"> <img src="http://3.png"> のように同じで スマホの場合は <img src="http://3.png">だけ 高さや横幅を0にして小さくするしかないのでしょうか?

    • ベストアンサー
    • HTML
  • レスポンシブWEBデザインについて

    レスポンシブWEBデザインのフルスクリーンスライダーに関して こちらのサイト内デモのフルスクリーンスライダーなのですが http://www.alessioatzeni.com/blog/brushed-template/ スマホ表示にするとフルスクリーン画像が切り取られ中央の一部しか表示されなくなってしまいます。 スマホ用きちんと画像のすべてを表示するにはどこをいじればいいのでしょうか? UIが気に入っているのでぜひこちらのテンプレートを使用したいのですが これだけが難点です。 御教授ください。

  • レスポンシブWEBデザイン jsの指定について

    レスポンシブWEBデザインで、PC用に指定しているjQueryプラグインを、スマホでは指定しない方法を知りたいと思っています。 例えば、640px以下はjQueryプラグインを動かさない、といった感じです。 ご教授の程、よろしくお願いします。

    • ベストアンサー
    • CSS
  • レスポンシブWEBデザイン 画像拡大

    お世話になります。 レスポンシブWEBデザインに対応していて、無料で使える商用利用可能な 拡大画像表示のlightboxみたいなプラグインを探しています。 ご存知の方、いらしたら教えてください。 よろしくお願いします。

  • レスポンシブWebデザインに詳しい方

    PC、スマホサイトを運営しています。A業者さんに、レスポンシブwebデザインで制作していただきました。今回、リニューアルをする予定なんですが、B業者に、PC版のみ制作してもらった場合、自動でスマホ版も更新されるのでしょうか?もしされない場合、B業者が作ったHPを、別の業者にレスポンシブwebデザインにて変更していただくことは可能なんでしょうか?諸事情で、A業者さんには頼めません。B業者は、レスポンシンブでは作れないとのことです。

    • 締切済み
    • CSS
  • レスポンシブWebデザインでファビコンの切り替え

    レスポンシブWebデザインをしているのですが、 パソコンの場合、スマホの場合などでファビコンの画像を 変えることは可能なのでしょうか。

    • 締切済み
    • CSS
  • レスポンシブに出来るデザインと出来ないデザイン

    レスポンシブに出来るデザインと出来ないデザインがあると聞いたのですが、 具体的にどんなデザインだと出来ないという情報が無いのですがどんなデザインは出来ないのでしょうか? スマホがワンカラムなのでワンカラムに出来ないサイトは出来ないということでしょうか? 380px以上でワンカラムに出来ればどんなデザインも大丈夫なのでしょうか? またスマホやタブレット用のサイズのときはGVを下に持っていくなどそれようのUIに変形するように実務ではすべきなのでしょうか? それともPCと同じ順番でもよいのでしょうか? また賛否両論でこれからWEBクリエイターを目指す者がこちらを習得すべきなのでしょうか? それともそれぞれの端末ごとの作成を習得した方がよほどよいのでしょうか?

    • ベストアンサー
    • CSS
  • レスポンシブWEBデザイン 背景画像の高さを

    レスポンシブWEBデザインで、お知らせなどの項目の背景を画像にし、テキストの量に応じて高さが調整できないかと思っています。 “background: cover”を使えば、ウィンドウサイズに合わせて可変はしますが、高さはテキストの量に応じて調整する方法をご存知の方、いらっしゃいましたらご教授願えませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • CSS

専門家に質問してみよう