2013-03-23 30 views
21

私はこのデザインを達成しようとしています: example design サイドバーは固定されますが、右側(メインコンテンツ)は垂直方向にスクロールされます(ユーザーのブラウザウィンドウが小さい場合は水平方向にスクロールされます)。これを達成する最良の方法は何ですか?固定サイドバーを正しく実装する方法は?

サイドバーを200pxの固定幅で「固定」にしてから、メインコンテンツに200pxの余白が残っているようにしました。ただし、ユーザーのブラウザがメインコンテンツよりも小さい場合、ユーザーが水平方向にスクロールしようとすると、サイドバーはすべてのコンテンツに重複します。

これを実現するスマートな方法はありますか?ありがとう!

+1

は "正しく" 主観的な形容詞です。正しいものは何か、Googleの基準は正しくないかもしれませんが、Facebookのスタイルガイドには正しいかもしれません。あなたはいくつかの言葉でタイトルにあなたが望むものを定義してください。 –

答えて

28

ページのコンテナとしてコンテンツdivを使用します。

.sidebar { 
    position: fixed; 
    width: 200px; 
    height: 400px; 
    background: #000; 
} 
.content { 
    margin-left: 200px; 
    height: 500px; 
    width: auto; 
    position: relative; 
    background: #f00; 
    overflow: auto; 
    z-index: 1; 
} 
.info { 
    width: 1440px; 
    height: 300px; 
    position: relative; 
    background: #f55; 
} 

<div class="sidebar"></div> 
<div class="content"> 
    <div class="info"></div> 
</div> 

あなたのコンテンツは、ページを置くための容器である必要があります。ここでの値は、私がこれで正しいだかどうかを確認するために私のテストです。幅と高さがコンテンツに設定した値を超えると、スクロールバーが表示されます。 http://jsfiddle.net/djwave28/JZ52u/


編集:応答性のサイドバー

単にメディアクエリを追加し、応答性の固定のサイドバーを持っている

はフィドルを持っています。

例:

@media (min-width:600px) { 
    .sidebar { 
    width: 250px; 
    } 
    .content { 
    margin-left: 250px; 
    } 
} 

ここで別のフィドルです:ここでhttp://jsfiddle.net/djwave28/JZ52u/363/

+1

これは私が元々持っていたものです。問題は、横スクロールがあるとサイドバーがコンテンツと重なってしまうことです。垂直にスクロールするときにサイドバーを固定する必要があると思いますが、水平方向にスクロールするときはしません。 – Jakemmarsh

+0

JSFiddleリンクはもう機能しません。 – Zach

+0

@Zach - 私はフィドルを再作成しましたが、上記のコードと同じです。 – Daniel

19

は、代替です:http://jsfiddle.net/BoyWonder/8mVQX/embedded/result/

body{ 
    padding-left:200px; 
    margin:0; 
} 
div#sidebar{ 
    position:fixed; 
    height:100%; 
    width:200px; 
    top:0; 
    left:0; 
    background:grey; 
} 
div#content{ 
    background:black; 
    width:100%; 
    height:1600px; 
} 
+1

サイドバーにオブジェクトが多すぎると、これはまったく役に立たない。あなた自身のコード拡張を見てください:http:// jsfiddle。net/8mVQX/401/ –

+0

@ SoldeplataSaketos完全に役に立たないのは、サイドバーの単純な「オーバーフロー-y:auto」が問題を修正しているようです。 – seBaka28

関連する問題