2016-03-24 19 views
-1

ウェブページの固定ヘッダーを維持しようとしています。メインコンテンツの場合、スクロールするとメインヘッダー上を移動しません。外部CSSが実装されていません

インラインCSSが期待どおりに機能するのは理解できませんが、同じCSSプロパティを外部スタイルシートに切り替えると機能しません。最初の<div>のプロパティが正しく設定されているため、外部スタイルシートが検出されています。私は2番目のdivでidとclassの両方を使用しようとしましたが、どちらもうまくいかないようです。これは、クラスではなくIDを使用するコードです。

のindex.html:

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="css/style.css"> 
    </head> 
    <body style="height:100%; width:100%"> 
     <div id="fixed-header"> 
      <h1>Page Heading</h1> 
     </div> 
     <div id="main-content"> 
      <!-- a number of articles and sections --> 
     </div> 
    </body> 
</html> 

CSS/style.cssに:

#fixed-header { 
    position:fixed; 
    height:100px; 
    top:0px; 
    overflow:hidden; 
} 

#main-content { 
    position:absolute; 
    top:100px; 
    left:0px; 
    right:0px; 
    overflow:auto; 
} 

他のCSSコードはありません。

<div id="main-content"><div style="position:absolute; top:100px; bottom:100px; left:0px; right:0px; overflow:auto;">に変更すると機能します。

私は間違っていますか?

+0

インラインCSSに100pxというボトムがあり、外部スタイルシートにはないことがわかりました。 – Pxterra

+0

外部のスタイルシートに100pxの下端を追加すると機能します。理由を理解する必要があるが、少なくともそれは機能する。 – Pxterra

答えて

0

これは、CSSの基本的な理解に帰着します。

絶対配置された要素の上端のみを指定すると、その要素の残りの部分は通常サイズになります(高さは要素内のコンテンツの高さになります)。絶対配置された要素の高さが画面の下端から外れるようになると、body/htmlにスクロールバーが作成されます。

コンテンツにbottomプロパティを設定するとコンテンツの高さが制限され、コンテンツコンテナ要素自体が個別にスクロールできるようになります。

https://css-tricks.com/almanac/properties/p/position/

+0

インラインCSSと外部スタイルシートには違いはありません。それは赤いニシンです。私は、この行動の証拠を示す質問には例を見ません。ところで、彼の「インライン」の例では、「bottom」プロパティが定義されています。これは、おそらく、外部スタイルシートにプロパティがありませんでした。 – user2867288

+1

質問の下のコメントを読んでください。質問者は、インラインCSSと外部CSSが同じではないことを間違えてしまったことに気付きました。そして今、彼らは 'bottom' CSSプロパティがどのように動作するかを尋ねています。 – user2867288

+0

私はあなたの答えをありがとう。外部CSSの下限:0pxを指定しても機能しましたが、それを省略するとメインのコンテンツが固定見出しの上をスクロールしただけであるということはちょっと奇妙に思えました。 – Pxterra

-1

あなたもhtmlタグに高さを置く必要があります!

ルックこのjsfiddle

html, body {height:100%} 
0

私はあなたがここに大きなポイントを逃していると思います。だから、あなたが外部のものを適用する際にインラインCSSを削除する必要があります> EXTERNAL

INLINE> ON-PAGE:これは、ブラウザがウェブページに添付されたスタイルを優先します方法です。

結果として100pxを得たい場合は、外部CSSファイルの高さと幅を高さと幅を100%として100%としてください。

0

なぜ?? これはボットンの100pxでdivを修正してdivに幅0pxの左と0pxを与えたい場合はボックスを閉じるので、幅100%と言うことができますあなたが言う高さのトップから100pxにとどまると言う高さのための幅のnovそして、あなたは、ボックスを "閉じ"て、今あなたのオーバーフローが正しく動作することができるように、私は少し理由を説明したwhat

関連する問題