SharePoint 2010 のグローバルナビゲーションは折り返す。

基本的なところで今更ですが、SharePoint 2010では、グローバルナビゲーションが画面に収まらない場合、自動的に改行されて「二段目」が表示されます。SharePoint 2007 では、リンクがすべて収まるまで画面が右方向に拡大されていました。

この仕様は、正直なところどちらも一長一短なのですが、「グローバルナビゲーション」の本来の意味(全ページで共通な固定リンク)を考えると、それが動いては駄目なんじゃないか、と思う訳ですが。

ともあれ。やはり SharePoint 2007 に慣れた方には不評なので、CSSレベルのカスタマイズでなんとかできないものか、と少し調べてみました。

グローバルナビゲーションのソースを見ると、 SharePoint 2007 ではテーブルタグの繰り返しで組まれていたのですが、SharePoint 2010 ではリストタグ(UL/LI)をCSSで横並べにしているんですね。確かに、このほうがマークアップ的にスマートではあります。

しかし、これだと、あの問題があるんじゃないか?と、Chrome で同じページを開いてみたところ案の定。Chrome では改行されませんでした。検索ボックスとの位置関係もおかしいです。

う~ん。個人的には、こういうのは「無理に正しいマークアップにしようとして逆にユーザビリティを悪化させた悪い例」だと思うのですが。別にテーブルでも良かったんじゃないかなぁ(苦笑)

ともあれ。これをCSSの上書きで、なんとか自動改行しないようにできないか、としばらく試行錯誤してみたのですが、ちょっと断念。ページ幅が可変レイアウトなのが曲者なんですよね。マスターページを触ればなんとかなりそうではありますが。

どなたか、フロートデザインに明るい方がいましたら教えて下さい(笑)


これまでのコメント

  1. T.Araya より:

    残念なお知らせなのですが、構造上あそこをCSSだけで1行に表示させるのは、というかマスターページ変更する前提で考えても結構大変な部分です。

    ・多分、この変更はアクセシビリティ対応なども考えた上での改良(改悪?)なのだと、個人的には考えています
    ・ナビゲーションは階層構造を持っており、デフォルトでは一番左上のメニュー項目とそれ以降のメニュー項目が同一階層にいますが、回り込みを実現するためにinlineを使ったりと、トリッキーなことをしています
    ・さらに、JavaScriptが幅を指定していたりするので、こいつの対策もしなければなりません

    ということで「ちょっとじゃない位頑張らないといけないこと」だけはすぐに確認できましたので、共有のみ

  2. 中村 和彦 より:

    さ、さっそくありがとう御座いますm(_ _)m
    やっぱり難しいですか~。確かに、階層処理のところの考慮を失念していました。まあ、とりあえず「すごく大変」ということが明らかであればユーザーさんにもそう説明できますので、ヨシとしますか(苦笑)
    案外、一番合理的な対処方法は、マスターページを編集て、グローバルナビゲーションを削除してしまうことかもしれませんね(自前のナビを配置する)

login

Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9