2016-11-09 26 views
1

私は私のサイドバーは、この絵のように見えるようにしようとしている: http://s21.postimg.org/aerg28ih3/image.jpgサイドバーの高さを正しく設定する方法は?

ページの高さが小さすぎると、それは次のようになります。それはあまりにも長い間だとき https://s21.postimg.org/7ly8i7i4n/big.jpg

、それは次のようになります。 https://s21.postimg.org/qsbfldymf/small.jpg

私は各ページに固定値を入れなければなりませんでしたが、私は固定値を入れたくありません。

body { 
 
    background-color: #edf1f2; 
 
    color: #777; 
 
    font: normal 15px"Helvetica Neue", Arial, Helvetica, Geneva, sans-serif; 
 
    height: 100%; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.wrapper { 
 
    margin: 0 auto; 
 
    padding: 0 10px; 
 
    width: 1040px; 
 
} 
 
header { 
 
    height: 120px; 
 
    background: #171a21; 
 
    background-image: url(images/header.png); 
 
} 
 
header h1 { 
 
    float: left; 
 
    margin-top: 32px; 
 
} 
 
header nav { 
 
    float: right; 
 
    padding-top: 7px; 
 
} 
 
header nav ul li { 
 
    float: left; 
 
    display: inline-block; 
 
    margin-top: 50px; 
 
} 
 
header nav ul li a { 
 
    color: #fff; 
 
    text-transform: uppercase; 
 
    font-weight: bold; 
 
    display: block; 
 
    margin-right: 20px 
 
} 
 
#side { 
 
    float: left; 
 
    padding: 2%; 
 
    background: #1e262c; 
 
    margin-bottom: -5000px; 
 
    padding-bottom: 60.5%; 
 
} 
 
#side ul li { 
 
    margin: 10px 0; 
 
}
<header> 
 
    <div class="wrapper"> 
 
    <h1>WEB</h1> 
 
    <nav> 
 
     <ul> 
 
     <li><a href="#.html">1</a> 
 
     </li> 
 
     <li><a href="#.html">2</a> 
 
     </li> 
 
     <li><a href="#.html">3</a> 
 
     </li> 
 
     <li><a href="#.html">4</a> 
 
     </li> 
 
     <li><a href="#.html">5</a> 
 
     </li> 
 
     </ul> 
 
    </nav> 
 
    </div> 
 
</header> 
 

 
<div id="side"> 
 
    <ul> 
 
    <li> 
 
     <h6>Links</h6> 
 
    </li> 
 
    <li><a href="#">1</a> 
 
    </li> 
 
    <li><a href="#">2</a> 
 
    </li> 
 
    <li><a href="#">3</a> 
 
    </li> 
 
    <li><a href="#">4</a> 
 
    </li> 
 
    <li><a href="#">5</a> 
 
    </li> 
 
    <li><a href="#">6</a> 
 
    </li> 
 
    </ul> 
 
</div>

おかげ

+1

あなたがHTMLとしてよくやっ – LGSon

+0

で質問を更新する必要があります。 ありがとうございます。 – EgyMMM

答えて

3

あなたはこのような何かを行うことによってCSSのvhcalcを利用することができます。これは言う何

body, html {margin: 0; padding: 0;} 

#header { 
    height: 100px; 
} 
#footer { 
    height: 100px; 
} 
#sidebar { 
    height: calc(100vh - 200px); /*WINDOW HEIGHT - HEADER & FOOTER */ 
} 

は、「ウィンドウの100%ヘッダーとフッターの高さから200ピクセルを差し引いたものです。サイドバーは、高さを調整して常に2つの間の領域を埋めるでしょう。

効果的に使用すると、this quick demonstration I whipped upのようなことができます。コンテンツの量にかかわらず、サイドバーは常に2つの間でフィットすることに注意してください。

+0

しかし、ヘッダーだけでコードにフッターはありませんか? – Johannes

+0

@Johannes彼の画像例の3つには、サイドバーがそれに達していないか、または重なっていると述べるフッタが含まれていました。私の例はフッターなしで簡単に 'calc(100vh - 100px)'に変更することで、高さ全体から100pxヘッダーを引いた値を取ることができます。 – Santi

+0

お返事ありがとうございました。私は試験を受けました:) とにかくページ全体が混乱するようにページを編集したので、コードをベースとして新しいページを開始しました。ここからコードを使用しました[w3schools ](http://www.w3schools.com/css/css_navbar.asp) ヘッダーとサイドバーについては、私は下にスクロールすると、サイドバーが移動する問題があり、適切なコンテンツが完全にはないという別の問題があります表示され、この場合には、ビデオである、私は成功せず、時間のためにそれらを修正しようとした、ここで [jsfiddle](https://jsfiddle.net/o9rda0j0/) – EgyMMM

0

html { height: 100%; margin: 0; }を追加し、サイドバーのために、このCSSを使用します。

#side { 
    box-sizing: border-box; 
    float: left; 
    padding: 2%; 
    background: #1e262c; 
    height: calc(100% - 120px); 
} 

それはそれを完全な高さマイナスヘッダーの高さを示します(120ピクセル)。

html { 
 
    height: 100%; 
 
    margin: 0 
 
    } 
 
body { 
 
    background-color: #edf1f2; 
 
    color: #777; 
 
    font: normal 15px"Helvetica Neue", Arial, Helvetica, Geneva, sans-serif; 
 
    height: 100%; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.wrapper { 
 
    margin: 0 auto; 
 
    padding: 0 10px; 
 
    width: 1040px; 
 
} 
 
header { 
 
    height: 120px; 
 
    background: #171a21; 
 
    background-image: url(images/header.png); 
 
} 
 
header h1 { 
 
    float: left; 
 
    margin-top: 32px; 
 
} 
 
header nav { 
 
    float: right; 
 
    padding-top: 7px; 
 
} 
 
header nav ul li { 
 
    float: left; 
 
    display: inline-block; 
 
    margin-top: 50px; 
 
} 
 
header nav ul li a { 
 
    color: #fff; 
 
    text-transform: uppercase; 
 
    font-weight: bold; 
 
    display: block; 
 
    margin-right: 20px 
 
} 
 
#side { 
 
    box-sizing: border-box; 
 
    float: left; 
 
    padding: 2%; 
 
    background: #1e262c; 
 
    height: calc(100% - 120px); 
 
} 
 
#side ul li { 
 
    margin: 10px 0; 
 
}
<header> 
 
    <div class="wrapper"> 
 
    <h1>WEB</h1> 
 
    <nav> 
 
     <ul> 
 
     <li><a href="#.html">1</a> 
 
     </li> 
 
     <li><a href="#.html">2</a> 
 
     </li> 
 
     <li><a href="#.html">3</a> 
 
     </li> 
 
     <li><a href="#.html">4</a> 
 
     </li> 
 
     <li><a href="#.html">5</a> 
 
     </li> 
 
     </ul> 
 
    </nav> 
 
    </div> 
 
</header> 
 

 
<div id="side"> 
 
    <ul> 
 
    <li> 
 
     <h6>Links</h6> 
 
    </li> 
 
    <li><a href="#">1</a> 
 
    </li> 
 
    <li><a href="#">2</a> 
 
    </li> 
 
    <li><a href="#">3</a> 
 
    </li> 
 
    <li><a href="#">4</a> 
 
    </li> 
 
    <li><a href="#">5</a> 
 
    </li> 
 
    <li><a href="#">6</a> 
 
    </li> 
 
    </ul> 
 
</div>

関連する問題