質問: お世話になります。 bootstrapでレスポンシブデザインにする際のナビについて質問です。 col-lg-XのようにPC等のディスプレイの大きな画面で表示させる際は、グローバルナビとは別の場所で配置させたいものを、col-xs-Xのようにスマホ画面で表示させる時は#gnaviの中に入れてしまいたいです。 こちらを実現しようとすると、同じコンテンツをPC用とスマホ用に2つ記述し、片方では非表示にするという方法しか思いつかなかったのですが、それだとコンテンツを重複して掲載してしまうので、よりよい方法を教えていただきたいです。 また、現状のソースコードは以下のとおりです。 ``` メニュー Link1 Link2 Link3 ``` 以上、よろしくお願いします。
回答: 動作サンプル jQueryを使って、ユーザーエージェントを調べbodyタグにモバイル端末ならmobileなどクラスをつけます。 もしbodyが.mobileを持っている場合はモバイルの挿入ポイントに、それ以外はPCのポイントへ入れます。 挿入する何かが何かわからなかったので、適当にアイコン画像を入れました。 クローンしてポイントへ入れてるので元のは残ります。 UAから判別しているという点からjsFiddleでは表示ができなかったので、codepenに移植してfull表示で試すか、実機で動作を確認して下さい。 上手く動作しない古い端末とかがあるかも知れませんが概ね動作するかと思います。 bodyタグにmobileとクラスが入ればcssも少しは書きやすくなるかと思います。UAの判断が最良の方法かは謎ですが、これと画面幅を調べたりして、タブレットもイケるかと思います。 メディアクエリを組み合わせればより細かく制御できるでしょう。