• 締切済み

レスポンシブwebデザイン PC背景とスマホ背景変

レスポンシブwebデザイン PCの背景とスマホの背景を別々に変更したいのですが、 どうやっても上手くいかない状況です。 どなたか解決できる方法をお教えくださませんでしょうか。

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

みんなの回答

noname#187595
noname#187595
回答No.3

>Media QueriesにてCSSを振り分けています。 ↑であれば、モニタの解像度でなら背景を変えることは可能です。 1つのcss内にメディアクエリで書き分けているのなら /* PC用(大きなウインドウ用)*/ body{ background-image: url(../img/bg_pc.jpg); } @media screen and (max-width: 599px) { /* スマホ用(幅が600px未満のウインドウ用)*/ body{ background-image: url(../img/bg_sp.jpg); } } ↑で表示されます。(将来的に解像度の大きなスマホが出てくる可能性も考慮して600pxをブレークポイントにしています。) ただし、この方法はあくまでも【ウインドウの解像度】によって背景を変える方法ですので、PCでもウインドウを小さくしてみている場合はスマホ用の背景画像になります。 もしも、ウインドウのサイズにかかわらず、デバイスの種類で変更したいのであれば、 No1さんのおっしゃるようにユーザーエージェントを取得して、cssを書き換える方法がいいでしょう。 やはり先におっしゃられているとおり、ユーザーエージェントは膨大且つ複雑なので、将来にわたってすべての機種を思い通りに表示変更させるのは困難だということはご了承ください。 それでも現時点では、iPhoneか、iPadか、iPodか、andoroidか、それ以外(PC含む)か、位の判別は可能です。 【記入例その1】 ヘッダ末尾に以下を記入↓ <script type="text/javascript"> if (navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPad') > 0 || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { document.write('<link rel="stylesheet" type="text/css" href="mobile.css" />'); } </script> PC用の背景は今まで使っていた指定。 スマホ用のcssとして読み込ませる"mobile.css"にスマホ用の背景を指定。 【記入例その2】 ヘッダ末尾に以下を記入。↓ <script type="text/javascript" src="jquery.jsへのリンク"></script> <script type="text/javascript"> $(document).ready(function(){ if (navigator.userAgent.indexOf('iPhone') > 0) { $('body').addClass('iPhone'); } else if (navigator.userAgent.indexOf('Android') > 0) { $('body').addClass('Android'); } }); </script> ↑上記によって、bodyにクラスがつきます。 cssに以下で指定。 /* PC用(クラスなし)*/ body{ background-image: url(../img/bg_pc.jpg); } /* iPhone用(ユーザーエージェントにiPhoneが含まれる場合)*/ body.iPhone { background-image: url(../img/bg_iphne.jpg); } /*Android用(ユーザーエージェントにAndroidが含まれる場合)*/ body.Android { background-image: url(../img/bg_android.jpg); } という感じでしょうか。

参考URL:
http://blog.lqd.jp/webdesign/000173.html
identity0208
質問者

お礼

ご丁寧な意見誠にありがとうございます。 本当に助かりました。 又の機会があればご指南のほど、宜しくお願いします。

noname#187595
noname#187595
回答No.2

どうやったかわからないので的確な助言が難しいですが…。 Media Queriesでcssを振り分けてるんですか? その場合、1つのcss内に @media screen and (max-width: 600px) {...} のように各ブレークポイントごとのcssを一緒に書いているのか、それとも <link rel="stylesheet" media="screen and (max-width: 600px)" href="smartphone.css" /> のように、各ブレークポイントごとのcssを別のファイルに書いて、読み込みむものをhtmlで指定しているのか。 もしくはユーザーエージェントで振り分けるなど、Media Queries以外の方法を使っているのか。 そのあたりの情報がまったくないと、お答えのしようがないですね。。。

identity0208
質問者

お礼

Media QueriesにてCSSを振り分けています。 この様な場合、PCとスマホの背景画像は切り替える事は出来るのでしょうか。 又、他のやり方はございますでしょうか。 宜しくお願いします。

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

レスポンシブ・デザインの場合は、基本的には背景画像は切り替えません。 PC用とスマホ用と言う端末の種類で切り替えるためには、ユーザーエージェントによって画像を切り替える手法が別途必要になります。とても厄介です。ユーザーエージェントは膨大な種類がある上に、日々増え続けています。  私は画像自体をCGIにしてユーザーエージェントで判別して出力する方法を使っています。技術的に誰でも出来る方法ではないので、普通は、メディアクエリを使ってウィンドウサイズだけで判断させるほうが良いでしょう。  背景画像の使い方がわからないのですが、モダンブラウザ限定でbackground-sizeで背景画像を伸縮させ、特別狭いディスプレイ(スマホやPCでウィンドウ幅を小さくした場合)にはmediaqueryで、背景画像やフォントサイズを変更すると良いでしょう。もちろん、background-sizeやmediaqueryに対応していないブラウザに対する配慮も必要です。 基本1) ページはリキッドで作成する 基本2) floatは使わず絶対配置 基本3) 背景画像(内容と関係ない画像)はサイズが変わっても支障のないもの 基本4) コンテンツとして意味のある画像や、一部が切れてはまずい画像(背景も含む)は、imgでマークアップし、display:blockとして、親コンテナブロックのサイズを参照して伸縮させる。 基本5) スマホなどモダンブラウザにはmediaqueryでスタイルシートを切り替える。 ですかね。

identity0208
質問者

お礼

とてもわかり易く、ご指南していただきまして、 誠にありがとうございます。 また機会があれば宜しくお願いします。 本当にありがとうございました。

関連するQ&A

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

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

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

    • ベストアンサー
    • CSS
  • レスポンシブWEBデザイン jsの指定について

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

    • ベストアンサー
    • CSS
  • レスポンシブWebデザインでファビコンの切り替え

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

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

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

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

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

  • レスポンシブ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デザインを習得したいと考えています。 現在、実務で使っている手法は2005年ごろ「ウェブ標準」という言葉が流行していた頃の XHTML+CSSをなんとなく使っている程度(極めていない)なのですが、 ステップとしては、 1. HTML5+CSS3の基礎 2. スマートフォン向けサイト構築の基礎(モバイルファーストという観点から) 3. レスポンシブWebデザインの具体的な手法 という風に身につけていく必要があると考えています。 手順として正しいでしょうか?

    • ベストアンサー
    • CSS
  • レスポンシブWebデザインでリンク先を変更したい

    いつも助けて頂き重宝しております。 今回はレスポンシブWebデザインでご存知の方いらっしゃいましたら、 よろしくお願い致します。 トップページはレスポンシブデザインで作成しているのですが、 そこから先の着地ページがどうしてもPC用とスマホ用に分かれているため、 画面サイズに応じてリンク先を変更したいのですが、そのようなことは可能でしょうか? 「トップページ」レスポンシブデザイン 「次のページ」バナーをクリックすると          ┃ ディスプレイサイズでリンク先を変更    ┏━━━┻━━━┓ スマホの場合     PCの場合    ┃           ┃  リンク先A      リンク先B このようなイメージです。。。 できる限りスタイルシートで実現できればと思っておりますが、 難しいようであればどんな手段でも構いませんので、 ご教授の程よろしくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう