2013-08-15 5 views
6

bodyのdivには3行のテキストしかありません。背景色は、これらの3行のテキストにのみ満たされていました。高さを100%に設定するとdivに垂直スクロールバーが表示されます

私は色がブラウザの100%垂直を埋めるように、CSS heightの本文を&という本文の100%に設定しました。しかし、垂直スクロールバーが表示されます。どのように私はそれを隠す/削除することができますか?

私はoverflow:hidden;をhtmlとdivプロパティに使ってみましたが、運がありませんでした。 Firefoxの使用。

CSS:

* { 
    margin:0; 
    padding:0; 
} 
html,body { 
    width:100%; 
    height:100%;  
} 
.logodiv { 
    width:100%; 
    background-color:#243640; 
    height:40px; 
    color:#FF1442; 
} 
.content { 
    /* Firefox 3.6+ */ 
    background: -moz-radial-gradient(circle, #1a82f7, #2F2727); 
    width:100%; 
    height:100%; 
    overflow: hidden; 
} 

HTML:

<div class="logodiv"> 
    ITEMS LIST 
</div> 
<div class="content"> 
    line1<br> 
    line2<br> 
    line3<br> 
</div> 
+0

あなたは現在、高さは100%(コンテンツ)に設定されている*プラス* 40ピクセル(logodiv)。そのため、垂直スクロールバーを取得しています。 –

+0

ありがとうございます。もし私がlogodiv(20)、content(80)に対して%を与えるなら、それは良い設計アプローチになります – Ruby

答えて

1

logodivは絶対に位置付けてください:

http://jsfiddle.net/Gcduf/

.logodiv 
{ 
    width:100%; 
    background-color:#243640; 
    height:40px; 
    color:#FF1442; 
    position: absolute; 
    top: 0; 
} 
+0

ありがとうございます。出来た。あなたはどうしているのか説明してください。 – Ruby

+2

@Ruby 'absolute'測位を使用すると、通常のドキュメントフローから' .logodiv'要素が削除され、 '.content'要素は' .logodiv'の下に置かれます。最初の2行を確認すると、表示されません。 –

+0

@Rubyそれは正しいです。 FirebugのようなWebサイトのインスペクタを使用すると、divの配置方法がわかります。 – matthewpavkov

2

使用min-height: 100%代わりに、それをシフトアップする.contentに負のマージンを追加します。

.logodiv { 
    position: relative; 
    z-index: 10; 
} 

.content { 
    background-color: gold; 
    min-height:100%; 
    margin-top: -40px; 
} 

.content:before { 
    content: ' '; 
    display: block; 
    height: 40px; 
} 

JSBin Demo #1

注:.content要素のコンテンツをプッシュダウンするために、私は::before擬似要素セレクタを使用する、別のオプションは、かもしれない:box-sizing: border-boxpadding-top: 40px CSS宣言を使用

.content { 
    background-color: gold; 
    min-height:100%; 
    margin-top: -40px; 

    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 

    padding-top: 40px; 
} 

JSBin Demo #2

PS:現在、すべての主要な現代のブラウザは::before疑似要素および/またはbox-sizingプロパティをサポートしています。しかし、すべてのブラウザでサポートされている伝統的な方法を探している場合は、.content要素の最初の子として.spacer部門を作成し、height: 40px;から.spacerに設定することができます。

JSBin Demo #3

+0

ソリューションをありがとう。 – Ruby

0

あなたはheight: 40px.logodivを持っています。

.contentheight: 100%です。

これら2つを合計すると、合計がコンテナのheight: 100%body)を超えます。これが垂直スクロールバーの理由です。

これを試してください:

.content { height: calc(100% - 40px); } 

DEMO:http://jsfiddle.net/y04jgbaz/

calc()関数は、数学的加算と式(+)、 減算でき( - )、乗算(*)、除算(/を)を使用して、 のコンポーネント値として使用します。

ブラウザのサポートはかなり良いです:http://caniuse.com/#search=calc

関連する問題