PCサイトとスマホサイトの区別は、基本的にサーバサイドフレームワーク(Java StrutsやASP.NET MVC、Cake phpなど)で行います。
ユーザエージェント、デバイスインフォメーション等の項目を判定しますが、これらのサーバサイド環境では、「生の」ユーザエージェント文字列を扱わなくていいよう、ライブラリ化されています。
また、「グローバルフィルタ」といって、いちいち記述しなくても、指定されたディレクトリ以下へのアクセスで自動的に判定をかけることができ、非常に使いやすいものです。
以前は"iPhone"や"Android"のようなUA文字列で一律に「スマホ」判定を行っていましたが、現在はタブレットの登場や、スマートフォンの高解像度化で、PC用ページとスマホ用ページのどちらを見せるか、という判定基準が難しくなっています。
ご提示のサイトの例では、「スマートフォン」デバイスで高解像度タイプの場合に、「あんたどっち見たいんだ?」といったような選択肢を出しているのだと思います。
なので、
・「グローバルフィルタ」(フレームワークによって読み方が違います)でユーザエージェントとデバイスを判定。
・そのデバイスが明らかにターゲットデバイスと異なっている場合は、ルーティングを書き変えて別サイトに誘導(スマホ -> PC、PC -> スマホ)。
・一部のAndroidデバイスのように、解像度判定だけでターゲット判定できない場合は、別デバイス用サイトへの入り口を提示してあげるのがプロっぽい方法です。
あ、CSS3だけで全デバイスに対応するなんて夢みたいな話が涌いてますが、真に受けないように。
そもそもデバイスの情報表示能力や、CSS3ブラウザ間の互換性すら全く取れていない状況で、そんなスキームは話になりません。
お礼
回答ありがとうございました。 色々勉強になりました。