PCかスマホか判別し、CSSを振分ける方法はあるか

このQ&Aのポイント
  • 現在のPCサイトをスマホにも対応させるための方法として、ブラウザの種類に応じてCSSを振り分けることが考えられます。
  • PCサイトの画像数や表現力を維持したまま、スマホサイトでは画像量を抑えるために、CSSのbackground-imageプロパティを使用する方法もあります。
  • PCサイトとスマホサイトをHTMLレベルで作り分ける方法では、アクセス数の分散や更新作業の煩雑さが問題とされています。
回答を見る
  • ベストアンサー

PCかスマホか判別し、CSSを振分ける方法はあるか

いくつかサイトを持っていますが、現在のPCサイトをスマホにも対応させたいと考えております。 <私の認識><やりたいこと><質問>に分けましたので、よろしくお願いいたします。 <私の認識> 1.現状、まだHTML5に対応していないブラウザがある。 2.PC用サイトとスマホサイトをHTMLレベルで作り分けると、アクセス数が分散してしまう。 3..PC用サイトとスマホサイトをHTMLレベルで作り分けると、更新作業が煩雑になる。 <やりたいこと> 「ブラウザがPCなのかスマホなのかを見分けて、CSSを振り分けたい。」 1..PCサイトの画像数や表現力は維持し、スマホサイトは画像量を抑える為に、画像をCSSのbackground-image:url(xxx.png)で表示させれば、PCには大きい画像、スマホは小さい画像を使った表現ができるのではないか。 2.PCサイトは幅固定、スマホサイトはリキッドデザインにして各画面幅に対応させられるのではないか。 <質問> 1.上記<認識>で間違っている部分はありますか? 2.上記<やりたいこと>の、「ブラウザがPCなのかスマホなのかを見分けて、CSSを振り分ける」方法はありますか? 調べたところ、画面の幅に応じてCSSを振り分けることはできようですが、各幅毎にCSSを作るというのも難しいので、スマホはリキッドデザインで各幅に対応したいと思っています。 よろしくお願いいたします。

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

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2800/7250)
回答No.1

考えられていることは正しいと思います。 ただし、考慮からもれているデバイスがあります。 フィーチャーフォン(ガラケー)です。 これもかんがえておきましょう。 何で開発されているかが記載されていませんから、PHPであるものと仮定してお答えします。 従来携帯は、RemoteHostを調べてください。 ここに.docomo.ne.jpだとか.ezweb.ne.jpだとか.softbank.ne.jpがあったらフィーチャーフォンで相手もわかります。 それ以外ならPCかスマホです。 そこでuseragentをしらべてください。 iPhoneとかiPodがあったらiPhoneです。 Androidとあったらアンドロイド端末です。このふたつを判断してください。 useragentでガラケーを判断しようとすると面倒なのでやめたほうがいいです。 J-PHONEだとかMOTという文字列でチェックする必要があったりしますので。 さてそれ以外はPCですけど、HTML5非対応をあまり気にすると良くありません。 IE7とかIE8はいまも堂々と使われています。それには簡単な対策があります。 http://ma-san.org/archives/2012/0125_120500.html を参照してください。

参考URL:
http://ma-san.org/archives/2012/0125_120500.html
sorako2012
質問者

お礼

ご回答ありがとうございます。 いただいたご回答に補足をつけさせていただきましたが、質問のカテゴリー[技術者向] だったので、色々理解していると思われたかもしれません。申し訳ありません。 もともとはデザイン担当なのですが、徐々に幅を広げてゆきたいと思っているレベルです。

sorako2012
質問者

補足

早速のご回答ありがとうございます。 開発はPHPではありません。(勉強中)せっかくご丁寧に教えていただいたのに、申し訳ありません。 また、HTML5も勉強中ですので、その間の暫定的な対応として検討しています。 xhtml+CSS をベースに、ピンポイントでJava Scriptを書くだけとか、Media Type でプリンタ用とパソコン画面用のCSSを振分ける時のような対処法があればと思っています。

関連するQ&A

  • css スマホ対応

    css スマホ対応 cssスマホ対応 現在デザイン初心者のものです。 簡単なwebページを作り pc用 スマホ用のデザインをしているのですが 問題はスマホの機種によって (アンドロイド iphone4 iphone5) 微妙にスタイルが崩れます。 スマホのデザイン全ての機種を一律に合わす方法などないものでしょうか ご教授お願いします。

    • ベストアンサー
    • CSS
  • PCとスマホでデザインを変えたいのですが

    http://iro-color.com/design/web/optimized-smartphonesite.html を見ると >CSSは複数の外部CSSを用意して画面サイズごとに振り分ける方法と、 1つのCSSファイルの中ですべて指定する方法があります。 PCサイトとスマホサイトでがっつりデザインを変えたい場合は外部CSSを、 部分的に替えるなら1つのCSSで管理した方が使い勝手がいいと思います。 とあるのですが 色はPCとスマホで同じで 文字のサイズやテーブルの幅だけを変えたい場合は 「PCサイトとスマホサイトでがっつりデザインを変えたい場合」 と 「部分的に替える」 のどちらに該当するのでしょうか?

    • ベストアンサー
    • CSS
  • CSSでPC用、他のスマホ用、PC用を扱うには?

    こんにちは。 html5を準拠するようにサイトを構築している者です。CSSでPC用、スマートフォン用、iPhone用に分けようと考えています。 http://mnemoniqs.com/web/one-css-smartphone/ 上記のサイトにて、 1 <!--メインCSS--> 2 <link rel="stylesheet" href="css/style.css" type="text/css" media="all"> 3 <!--スマホ用CSS--> 4 <link media="only screen and (max-device-width:480px)" href="css/smartphone.css" type="text/css" rel="stylesheet"/> この様に書いてありますが、私はauのAndoroidスマホを使用していまして、widthが481px以上になる環境です。それで自サイトをみると、PCでは3ペイン、スマホでも縮小された左右のペインがあります。iPhone、他のスマホでは左右のペインをなくして、メインだけを表示したいのです。 例として http://blog.livedoor.jp/dqnplus/archives/lite/1750885.html では、スマホで見ると左右のカラムが消えて、文字が大きくなり見やすく見やすいです。ですが私のサイトではそれが出来ていないのでそうはいきません。 ちなみにPCブラウザで http://blog.livedoor.jp/dqnplus/archives/lite/1750885.html を表示するとリダイレクトでPC用サイトに行ってしまいますので調べることが出来ませんでした。 どなたか1ページをCSSを使ってPC用、iPhone用、普通のスマホ用にする事が出来ないでしょうか? お導きの事よろしくお願い申し上げます。

    • ベストアンサー
    • CSS
  • CSSってなぜ必要?なぜ便利?

    HTMLだけならなんとか理解できるようになりつつある、この道1年のWebサイト デザイナーです。大きな会社にいるため、決まり事が厳しくて、CSSを自分で 作る機会はありません。今度自分のサイトを作ってみたいので、CSSの勉強を はじめたのですが、どういう点で便利になるのかがよくわかりません。 会社では、「CSSがあっても、対応していないブラウザーのことなどを考え、 フォントサイズの指定などをするよう」に言われています。 ・・・だったら覚えるのも難しそうだし、大した意味はないのでは?などと 思ってしまうのですが。。。 ところで、対応していないブラウザーを使用していて、作者の意図通りの ページが表示されないユーザーって、今の時代ではどのぐらい存在するもの なのでしょうか? 沢山いるのですか? それだったら、CSSは使いたく ないなとも考えてしまうのです。せっかく考えてデザインしたものが 崩れて見えてしまうのは悲しいので。 乗り越えなければいけないレベルだと思っていますので、どなたかアドバイス お願いします。

  • PHPで切り替えてもモバイルフレンドリーになる?

     Googleがスマホに対応してないサイトは順位を下げることを決めたそうですね。  モバイルフレンドリーになるには、画面の幅によってCSSを切り替えたりして、サイトの幅やレイアウトなどに変化をつけるのが基本のようですが、これ、PHPなどでブラウザの情報を元に表示するファイルやHTMLなどを変える方法だと、どう判断されるのでしょうか?  HTMLのヘッダ部分に、CSSの切り替えタグがあって、その先のCSSの内容によってクローラーが判断しているなら、PHPなどでHTMLの出力内容そのものを変えたり、PCやスマホによって.htaccessで専用ページに飛ばす方法じゃ、ただのPCサイトと判断されそうですよね。  それともクローラー自体がPC向け用とスマホ向け用に別れていて、PHPなどの切り替えにも対応できているのか・・・。  この辺、どうなってるんでしょうか?

    • ベストアンサー
    • SEO
  • CSSで組む意味

    私の上司はCSSを使って書いてもサイトを見に来る人にはメリットが無いからそんなもので書かなくても良いと言い、開き直った様にテーブルのみでレイアウトを組み、フィント等のデザインもCSSではなく、HTMLで組んでしまっています。 そんなわけがないのは皆さんもご存知の様な現状ですが。 では苦労して綺麗にCSSでサイトを作る意義とは何でしょうか? ・SEO的に ・今後全ブラウザはCSSに対応していく様にバージョンアップされるから ・テーブルで組みすぎるとマックユーザーは重すぎる よくある理由はこれですが。 その他説得の材料は考えられますか?

  • PC用サイトをスマホに最適化するためには?

    こんにちは。 私は400ページくらいのサイトを運営しております。内容は映画関係。 どうやらHTML4.01にさえ準拠していないので、HTML5にするには相当時間がかかると存じます。それからCSSなどでスマホ用にも作れたらと思っています。 そのためにまずは既存の準拠していないページをスマートフォンで見られればいいかな!って思った次第です。でも見に来た人がスマホなのかパソコンなのか判断するのにCSSやJavaScriptが必要なんではないのかな!?と考えています。 で、CSSやJSでスマホと判断したらスマホ用のページに飛ばすという。ただ、これは1つのページにつきPC用とスマホ用の2つのページを用意しなければならないのではと困惑しています。 どなたか、道を照らして頂けませんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • PCサイトをそのままスマホに対応する方法

    今、ホームページを作成しています。 以前作った時はスマホにも対応できていたのですが、久しぶりに作っていたらスマホではきれいに 表示されません。。 前は、どうやって対応させたかを忘れてしまいました。 スマホ用にCSSを作るのではなくPCサイトをそのまま表示させたいです。 簡単な方法はありますか? また、背景を1枚画像でフルスクリーン表示で固定しているのですが、これはスマホに対応するためには悪影響でしょうか。 よろしくお願いいたします。

  • 静的なPCサイトをスマホ対応にする手法

    まだスマホもCMSも流行っていない時期に作成した、 単純なhtmlとcss構築のPCサイトをスマホ対応(デザインやレイアウトの最適化)しようと思います。 以下のような条件の場合、どういった手法が最善でしょうか? ・PCサイトの全体のページ数は100P以上。ほぼ静的なhtmlで、一部aspによる更新システムあり。 ・すべてのページを最適化しようとは考えていない。トップページと主要なコンテンツ数ページのみ最適化したい。 ・頻繁に修正の入るコンテンツ内容については、PC版を修正したらスマホも同様に変わるようにしたい。(修正の二度手間を無くすため) ・メインナビゲーションなど、ほぼ固定の箇所についてはPCとスマホそれぞれ別ソースでもかまわない 更新の二度手間がかなり気になる箇所なので、できればワンソースでcssによる切り替え対応したいところですが、もともとスマホのことなんて全く考慮していないhtml設計なので、正直cssだけでどこまで最適化できるのか微妙なところです。 希望の形としては、 PCサイト用の大枠のhtmlと、スマホ用の大枠のhtmlがそれぞれ存在していて、 その中のパーツパーツをワンソースで管理できたらベストだなーと思っています。 (PHPファイルとかで部分的なソースをインクルードして使う、みたいな感じでしょうか。) 上記のような方法は可能なのでしょうか? 可能であるとしたら、どのように実現すれば良いでしょうか。 参考URLなどでも結構ですので教えていただきたいです。 また、上記手法が一般的ではない場合、どういう手法がベストなのでしょうか。 ご教授いただけますと幸いです。

  • HTML、CSSについて

    アメーバブログをやっています。 CSSの使用の仕方を覚えたくて、 いろいろやり方を調べてるんですけど、 教えてgooで検索すると、 「まずHTMLタグから覚えるとよいでしょう。」 と、回答者さんがよく答えています。 CSS=ブログのデザインなどを細かいところまで自己流に改造する。 だと思うんですけど、 HTML=????? HTML、HTMLタグとはなんなんですか?? そして、読みかたは?? 「エイチティーエムエル」ですか? HTMLとは何をするもので、 どういうものですか?? HTMLの例か、 HTMLの仕方(?) が詳しく載っているサイトを教えてください。 あと、CSSは 変えたいところ 英語でヘッダーと書いてあるところのあとに、 画像のURLを入力するだけでいいんですか?? 詳しく教えて下さい。 お願いします