5

どういうわけか、私は何が欠けているのか理解できません...

2 つのバー (ヘッダーとフッター)absoluteの間に多数の divを配置しようとしています。fixedヘッダーにはいくつかのタブが含まれ、フッターには著作権が含まれています。オーバーフローしたdivではなく、ウィンドウのスクロールバーを使用したいのですが、それが可能であることはわかっています!

div の下部がフッターの背後に隠れないように、すべての絶対位置の div には余分なマージンを設定する必要があります。

ここに画像の説明を入力

次のようになります。 ここに画像の説明を入力

私の問題のスニペットは、jsfiddleで入手できます。

私のHTML:

<ul class="cf tabs">
    <li>Tab 1</li>
    <li>Tab 2</li>
</ul>
<div style="margin-top: 40px; padding-bottom: 30px; position:relative">
    <div style="position:absolute;top:300px; height:100px; width: 250px; left:200px; border: 1px solid purple;">aaa</div>

    <div style="position:absolute;top:0px; height:100px; width: 100px; left:100px; border: 1px solid purple;">bbb</div>

    <div style="position:absolute;top:450px; height:100px; width: 250px; left:400px; border: 1px solid purple;">ccc</div>
</div>
<div class="cf footer">Copyright &copy;</div>​

私が使用しているスタイルシート:

    ul.tabs {
        list-style-type: none;
        list-style-position: outside;
        padding:5px;
        margin: 0;
        position:fixed;
        top:0;
        z-index: 999;
        background-color: white;
        left:0;
        right:0;
        border-bottom: 1px solid green;
        opacity: 0.7;
    }
    ul.tabs li {
        float: left;
        margin:1px;
        padding: 4px 10px 2px 10px;
        border: 1px solid black;
    }


    div.footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right:0;
        background-color:#DEDEE9;
        border-top: 3px outset #BBBBBB;
        padding: 5px;
        opacity: 0.6;
    }

    .cf:before,
    .cf:after {
        content: " "; 
        display: table; 
    }
    .cf:after {
        clear: both;
    }​

皆さん、ヒントはありますか?

追加情報 添付の画像でわかるように、右下の四角い div の紫色の境界線が固定フッターと重なっています。これいらない。フッターの上部と一致するように、すべての div に余分なマージンが含まれるように、どこかに下マージンを与える必要があります。

4

3 に答える 3

3

これが私が思いついた解決策です。絶対的divに内側に配置された一番下を別のでラップし、そのdiv上にフッターの高さと境界線に等しい下マージンを置きます。私はそれにクラスを与えました.inner

私のフィドルを参照してください。

于 2012-07-11T21:31:12.430 に答える
0

bodyフッターの高さに相当する下パディングをドキュメントに追加します。

body {
     padding-bottom: 31px;
}

(JSFiddle ではbody要素のスタイルを変更できないようです。そのため、フィドルを投稿することはできません。ただし、動作するはずです。)

于 2012-07-11T21:06:34.977 に答える
-3

絶対配置を使用する代わりに、次のようにします。

余白 - 左: 800px

余白 - 上: 500px

于 2012-07-11T21:45:12.953 に答える