1

私の質問の一部をカバーする質問がここにあることは知っていますが、それらをまとめてレイアウトを機能させることはできません。

したがって、基本的には、固定サイドバーと動的コンテンツを使用して残りのスペースを埋める 2 列のレイアウトが必要です。

HTML:

<body>
    <div id="navbar">
        <ul>
            <li>Nav 1</li>
            <li>Nav 2</li>
            <li>Nav 3</li>
        </ul>
    </div>

    <div id="content">
    </div>
</body>

CSS:

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

#content {
    height:100%;
    float:left;
    /*margin: 0 0 0 200px;*/
}

#navbar{
    height:100%;
    width:200px;
    float:left;
}

この CSS を使用すると、コンテンツが残りのスペースを占有しないという問題があり、フロートを削除すると、上部にマージンがあるため、垂直スクロールバーが表示されます!

スクロールバーなしで 100% の高さ (上部のマージンが削除されないため、オーバーフローが非表示にならない) と動的コンテンツの幅を達成する方法について何か提案はありますか?

前もって感謝します

編集:

皮肉なことに、それはjsfiddleで動作します

4

3 に答える 3

2

コンテンツとナビゲーションバーの両方の高さを 100% にするソリューションを次に示します。

フィドル: http://jsfiddle.net/92c6M/

HTML

<div id="navbar">
    <ul>
        <li>Nav 1</li>
        <li>Nav 2</li>
        <li>Nav 3</li>
    </ul>
</div>

<div id="content">
</div>

CSS

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

#content {
    height:100%;
    width: calc(100% - 200px);
    display: inline-block;
    background-color: #DDF;
}

#navbar{
    height:100%;
    width:200px;
    float: left;
    background-color: #CEC;
}
于 2013-09-05T13:23:06.210 に答える
1

CSS:

  #wrapper {
 width: 100%;
 float: left;
 positon: relative;
 }

 #navbar {
 width: 200px;
 float: left;
 top: 0px;
 left: 0px;
 position: absolute;
    height: 300px;
background-color: red;
z-index: 2;
 }

  #content-wrapper {
 position: absolute;
 top: 0px;
 left: 0px;
 width: 100%;
 height: 300px;
 float: left;
 background-color: blue;
z-index: 1;
 }

  #content {
left: 200px;
margin-left: 200px;
background-color: green;
z-index: 3;
color: white;
}

HTML

<div id="wrapper">
<div id="navbar"></div>
<div id="content-wrapper">
    <div id="content">
        asdfasfdasdfasdg asdga sdgasdg asdgasdgasdgasdg
    </div>
</div>
</div>
于 2013-09-05T12:32:58.537 に答える