9

headerナビゲーション バー、body (ナビゲーションバーの右側)、およびfooterを使用して、標準の Web サイト レイアウトを作成しようとしています。

今、私はこれまでこれを行ってきました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">

            .header {
                float: top;
                width: 100%;
                height: 75px;
            }

            .navbar {
                float: left;
                width: 20%;
                height: 100%;
                height: 100%;
                min-height:100%;
                overflow: scroll;
            }

            .body {
                float: right;
                width: 80%;
                height: 100%;
                min-height:100%;
                overflow: scroll;
            }
            .footer {
                float: bottom;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div class="header"> Header </div>
        <div class="navbar"> Nav Bar </div>
        <div class="body"> Body </div>
        <div class="footer"> Footer</div>
    </body>
</html>

これはこれを生成します:

ここに画像の説明を入力

CSS を確認すると、次のようになります。

.navbar {

    float: left;
    width: 20%;
    height: 100%;
    min-height: 100%;
    overflow: scroll;
}

.body {
    float: right;
    width: 80%;
    height: 100%;
    min-height: 100%;
    overflow: scroll;
}

ご覧のとおり、ボディとナビゲーション バーの両方の高さと最小の高を設定して、残りの垂直スペースを埋めようとしました。

ここに画像の説明を入力

それでも影響はありません。ただし、これを行うheight: 500pxと、期待どおりにサイズが変更されます (もちろん、画面サイズが異なるとページの異なる部分またはビューが表示されるため、これは非常に良い方法ではありません)。

ここに画像の説明を入力

divsしたがって、基本的には、ハードコードされた値を使用せずに、残りの垂直方向のスペースを埋める方法を尋ねています。つまり100px、パーセンテージで実行したいので、ページはすべてのブラウザで同じように見えます

4

2 に答える 2

5

このコードを body.html に追加します。

body,html{
  height:100%;
}

<div id="navbar">高さを追加する代わりにナビゲーションバーを作成します<div class="navbar"> :100%; あなたのナビゲーションバーに

#navbar{
  height:100%
// rest of your code
}

body はすでに使用されているため、コンテンツと同じようにコンテンツと呼びます。

#content{
  height:100%
// rest of your code
}

これで、すべての div の高さが 100% になり、ブラウザーの高さが完全になります。

編集:完全なコードは次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">

            html, body{
                padding: 0;
                margin: 0 auto;
                height: 100%;
            }

            #header {
                width: 100%;
                height: 75px;
            }

            #navbar {
                float: left;
                width: 20%;
                height: 100%;
                min-height:100%;
                overflow: scroll;
            }

            #content {
                float: right;
                width: 80%;
                height: 100%;
                min-height:100%;
                overflow: scroll;
            }
            #footer {
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="header"> Header </div>
        <div id="navbar"> Nav Bar </div>
        <div id="content"> Body </div>
        <div id="footer"> Footer</div>
    </body>
</html>
于 2013-04-10T10:21:43.370 に答える
1

各コンテンツ ブロック (ヘッダー、フッター、サイドバー、本文) には絶対配置を使用し、本文とナビゲーション バーの div には、高さプロパティを指定するのではなく、上部と下部の両方の位置プロパティを設定します。これにより、残りのビューポートの高さを埋めるように強制されます。

詳細はこちら

...そして IE5 と IE6 をサポートするために、CSS のみ (javascript なし) を使用した改良版を次に示します。

于 2013-04-14T18:19:51.960 に答える