A 回答 (3件)
- 最新から表示
- 回答順に表示
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
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以外の方法を使っているのか。
そのあたりの情報がまったくないと、お答えのしようがないですね。。。
この回答へのお礼
お礼日時:2013/04/16 14:14
Media QueriesにてCSSを振り分けています。
この様な場合、PCとスマホの背景画像は切り替える事は出来るのでしょうか。
又、他のやり方はございますでしょうか。
宜しくお願いします。
No.1
- 回答日時:
レスポンシブ・デザインの場合は、基本的には背景画像は切り替えません。
PC用とスマホ用と言う端末の種類で切り替えるためには、ユーザーエージェントによって画像を切り替える手法が別途必要になります。とても厄介です。ユーザーエージェントは膨大な種類がある上に、日々増え続けています。
私は画像自体をCGIにしてユーザーエージェントで判別して出力する方法を使っています。技術的に誰でも出来る方法ではないので、普通は、メディアクエリを使ってウィンドウサイズだけで判断させるほうが良いでしょう。
背景画像の使い方がわからないのですが、モダンブラウザ限定でbackground-sizeで背景画像を伸縮させ、特別狭いディスプレイ(スマホやPCでウィンドウ幅を小さくした場合)にはmediaqueryで、背景画像やフォントサイズを変更すると良いでしょう。もちろん、background-sizeやmediaqueryに対応していないブラウザに対する配慮も必要です。
基本1) ページはリキッドで作成する
基本2) floatは使わず絶対配置
基本3) 背景画像(内容と関係ない画像)はサイズが変わっても支障のないもの
基本4) コンテンツとして意味のある画像や、一部が切れてはまずい画像(背景も含む)は、imgでマークアップし、display:blockとして、親コンテナブロックのサイズを参照して伸縮させる。
基本5) スマホなどモダンブラウザにはmediaqueryでスタイルシートを切り替える。
ですかね。
この回答へのお礼
お礼日時:2013/04/15 00:32
とてもわかり易く、ご指南していただきまして、
誠にありがとうございます。
また機会があれば宜しくお願いします。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 制作したWebサイトを録画する際、画面サイズを小さくしたり大きくしてレスポンシブの動きを確認するので 1 2023/02/18 00:33
- HTML・CSS svgクリップパスの応用コーディング方法 2 2022/04/09 09:07
- Windows 10 壁紙フォルダが表示されない 1 2022/11/16 21:58
- その他(ブラウザ) zoomのバーチャル背景が選べない 4 2022/12/08 12:38
- HTML・CSS HTML <input type=password>の黒丸の色を変える方法 3 2022/11/23 13:56
- Photoshop(フォトショップ) MacでPhotoshopに使い方 教えて! 2 2023/07/08 08:24
- 写真・ビデオ スマホ(シャープSENSE7-53C)の背景色を変更したい 2 2023/08/09 11:50
- ホームページ作成・プログラミング ウィンドウズ11にしたら背景画面が黒くなり直せません 1 2023/04/15 21:55
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<hr>の縦バージョンはありますか?
-
WEB上でディレクトリ内の画像を...
-
particles.jsの背景の上にテキ...
-
CSSでテキストのリストの・...
-
【至急お助け!】チェックボッ...
-
CSSのリスト 背景画像が表示さ...
-
IEで<div>の下の<img>がずれる
-
ホームページ背景の、透過率設...
-
インラインフレームでの背景画...
-
HTML・CSSコーディングが上手く...
-
ページごとに背景画像を変更し...
-
文字列の下に点線を出す
-
テーブルセルの背景画像のサイ...
-
背景画像をくりかえさないhtml
-
テキストの横にアイコンを並べたい
-
テキストのフェードインの方法
-
CSSで背景画像の比率保持、拡大...
-
見出しの複数行の対応について
-
ホームページの背景画像を画面...
-
CSSでの動画のマスク処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画像の上にテキスト配置で、拡...
-
画像とその下にあるテキストの...
-
<hr>の縦バージョンはありますか?
-
【至急お助け!】チェックボッ...
-
【Webサイト】画像が小さく表示...
-
background-repeat CSS で切れ...
-
htmlかcssで背景の白い枠をなく...
-
background-sizeの背景で最小値...
-
lightbox2で画像を天地左右中央...
-
ページごとに背景画像を変更し...
-
LightBoxの矢印の出し方
-
WEB上でディレクトリ内の画像を...
-
IMGタグで画像の繰り返し使用は…
-
iframe内をクリックさせない方...
-
同じ画像 複数回使用
-
画像上に文字を表示するとiPhon...
-
background-sizeでcontainする...
-
ページの上下に白い横線が入る
-
コーディング中、右側に謎の余...
-
画像を複数横に並べ、かつそれ...
おすすめ情報