web-dev-qa-db-ja.com

タブナビゲーションとダブルコンテンツ

タブを使用してページ間を移動するWebサイトがあります。たとえば、ページaにはアクティブなタブとしてAが表示され、BおよびCの背景タブが表示されます。訪問者がページBを介してWebサイトにアクセスした場合、ページdにも表示したいが、aとcは表示したくない。

質問:たとえばbのindex2を作成するだけでよいので、訪問者がaからbに到達すると、たとえば訪問者がdからbに到達するとa、b、cおよびindex1を表示します。それは悪い習慣ですか?ダブルコンテンツは良くないことは知っていますが、この問題に対処できる他の方法はありますか?

私が設計したタブナビゲーションは、<li>とidタグを使用して、<body>タグで定義されたアクティブなタブを表示します。

1
riseagainst

どのタブが表示されるかを判断するには、おそらくurlフラグメントを使用する必要があります。これは、作業するページが1つしかないことを意味します。

Urlフラグメントは、#記号の後のビットです。例えば;

http://mysite.com/index.html#a http://mysite.com/index.html#b http://mysite.com/index.html#c

必要に応じて、よりわかりやすいフラグメント名を使用することもできます。

これらのフラグメントをURLに含めると、javascript(またはjQuery)を使用してタブの表示/非表示を切り替えることができます。

これを作成する方法は、さまざまなタブを「スタック」して、すべてが見えるようにすることです(一方が他方の下に表示されます)。次に、ページがロードされたら、javascriptを使用してそれらをタブに形成し、urlフラグメントに基づいて関連するタブを表示/非表示にします。

利点は、訪問者がJavaScriptを使用しない場合でも、サイトをナビゲートでき、フラグメントのためにページが正しいセクションに自動的に「ジャンプ」することです。

1
foamcow

各URLはコンテンツを明確に識別する必要があります。そのため、ユーザビリティ、アクセシビリティ、および関連する慣行をどの程度重視するかに応じて、1つまたは他のオプションを選択します。

分離されたページは多くの理由で最良のオプションですが、当然のことながら、ページを使用してコンテンツを非表示にするだけです。使用することを選択した場合、リンクについて簡単に制御できます。さらに、キャッシュ可能な画像を使用すると、トラフィックは大きくなりません。

1ページにすることを選択した場合、最善の方法は、サーバー言語でリクエストを処理し、表示したくないコンテンツを削除するか、表示したいものだけを追加することです。

1
PatomaS