いつも助けて頂き重宝しております。
今回はレスポンシブWebデザインでご存知の方いらっしゃいましたら、
よろしくお願い致します。
トップページはレスポンシブデザインで作成しているのですが、
そこから先の着地ページがどうしてもPC用とスマホ用に分かれているため、
画面サイズに応じてリンク先を変更したいのですが、そのようなことは可能でしょうか?
「トップページ」レスポンシブデザイン
「次のページ」バナーをクリックすると
┃
ディスプレイサイズでリンク先を変更
┏━━━┻━━━┓
スマホの場合 PCの場合
┃ ┃
リンク先A リンク先B
このようなイメージです。。。
できる限りスタイルシートで実現できればと思っておりますが、
難しいようであればどんな手段でも構いませんので、
ご教授の程よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
不可能ではないです。
【スタイルシートで実現する場合】
「次のページ」バナーを二つ配置します。
それぞれ別々のリンク先が設定されています。
ディスプレイサイズに応じて適切なほうのバナーのみを表示するようにスタイルシートを記述します。
たとえば画面幅がスマホサイズのとき、PC 用のバナーに
display: none;
が設定されるようにするのです。
【JavaScript で実現する場合】
window.innerWidth プロパティなどからブラウザの表示幅を取得します。
この値に応じて、「次のページ」バナーの href 属性を適切なものに書き換えます。
たとえば
if (window.innerWidth < threshold) {
document.getElementById('nextPage').href = hrefToMobilePage;
}
のようにします(変数や id 属性の値は適宜書き換えてください)。
私個人の感想ですが、どちらも本質的な解決ではないように思います。
スタイルシートで実現する場合、HTML 文書に余計なアンカー要素を追加することになります。
JavaScript で実現する場合、本来 HTML の機能だけで実現できるハイパーリンクに余計な操作を加えることになります。
小手先の解決と感じられるのは、あなたのサイトにおけるレスポンシブデザインの使い方が本来の意義に反しているからです。
レスポンシブデザインの考え方は、単一のコンテンツを異なるデバイスで快適に見るためのものです。
内容と見え方を分離するという思想に基づくのです。
一方でリンク先を分ける対応は、異なるデバイスそれぞれに異なるコンテンツを用意することです。
見え方も内容の重要な一部であるという思想に基づくのです。
(個人的な見解です)
諸事情のため仕方のない対応なのかもしれません。
しかしできれば、本来の目的や、レスポンシブデザインを用いることで実現したかった結果を振り返ってみてください。
ご説明ありがとうございます。そうなんです。。。
2つの異なるリンク先がそれぞれ別会社のシステムでそれぞれがレスポンシブとそうでないものになっておりまして。。。その中でも自社サイトだけはレスポンシブで構成したいと思っており、このような事情となっております。
正直小手先の解決しかないかなぁと思っていたところですので、頂いた回答で大変助かりました。また機会がございましたら、よろしくお願い致します。
No.3
- 回答日時:
例ですが・・
マークアップは、
<div class="nav">
<ol>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ol>
</div>
HTML5でしたら<nav></nav>になる。
レスポンスで、呼び出される外部スタイルシート(B)の一方に
div.nav ol li+li{display:none;}
と書いておけば良いだけです。検索エンジン、通常のパソコンには全部表示されますが、スマホにはスタイルシート(B)が適用されて二つ目のナビゲーションは見えない。
逆や、一方しか見せないことも同様に簡単です。
具体的なソースまでご説明ありがとうございました。複数のリンクから不要なものを非表示にする方法でチャレンジしたいと思います。また機会がございましたらよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レスポンシブWebデザインでリン...
-
<ul><li></li></ul>にするメリ...
-
divタグ内のコンテンツが重なっ...
-
html/cssの、navを2段にする...
-
リストの数字のフォントサイズ...
-
ページを開いているときのリン...
-
WordPress 新しいカテゴリに過...
-
liタグの中に<p>タグやら<dl>を...
-
html <ul></ul>の並びで一行空...
-
リンク文字同士の間隔を開ける...
-
CSS li float 2列組み
-
<div>と<div>の隙間を無くす方法
-
dlタグの中にdivは使える?
-
<ol><li> 左側にスペースがで...
-
<table>の高さ固定。情報増加時...
-
透明のボックスにリンクを貼りたい
-
隙間をなくすには?
-
ホームページビルダーで同じ行...
-
アコーディオンメニューがかく...
-
vertical-align:middleをFirefo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
HTML ul li で横並びにナビゲー...
-
ulタグやliタグの中でbrタグ...
-
liタグの中に<p>タグやら<dl>を...
-
<table>の高さ固定。情報増加時...
-
HTMLで組織図を作成する方法
-
<ul>~</ul>が二つ続くと間に改...
-
<ul><li></li></ul>にするメリ...
-
リストの数字のフォントサイズ...
-
divタグ内のコンテンツが重なっ...
-
HTML5のfooterに見出しを付けて...
-
番号付きリスト(<Ol><Li>・・...
-
html/cssの、navを2段にする...
-
ボタンを横に並べて表示させる方法
-
html <ul></ul>の並びで一行空...
-
画像にリンクを張ると画像がず...
-
アコーディオンメニューがかく...
-
ulとliで囲った文字の一部を変...
-
レスポンシブWebデザインでリン...
-
htmlの<ol>タグで、数字などを...
おすすめ情報