2017-05-28 24 views
0

CSSとHTMLだけで小さなノートパッドアプリケーションをオンラインで作成しようとしています。何らかの理由で、私のアプリケーションでは、テキスト領域で十分にスクロールして、ヘッダーが見つからないことを確認するためにスクロールバックする変わったグリッチが作成されます。

https://jsfiddle.net/2v7ptadh/
この問題を解決するにはどうすればよいですか?

これはエラーを生成しているCSSコードです。フルコードを表示するには、上記のJS Fiddleリンクをクリックしてください。問題のTextareaでスクロールするとヘッダーが消える

html, 
body { 
    display: block; 
    box-sizing: border-box; 
    padding: 0; 
    margin: 0; 
    background-color: #888; 
    height: 100%; 
    width: 100%; 
    overflow-y: hidden; 
} 

div#header { 
    display: block; 
    width: 100%; 
    height: 40px; 
    border-left: 2px solid rgb(100, 125, 130); 
    border-top: 2px solid rgb(150, 175, 140); 
    border-bottom: 2px solid rgb(60, 48, 75); 
    border-right: 2px solid rgb(80, 84, 90); 
    background: #bbb; 
    box-sizing: border-box; 
    line-height: 40px; 
    text-align: center; 
    margin: 0; 
    padding: 0; 
    font-family: 'Open Sans', sans-serif; 
    font-weight: 900; 
    z-index: 4 
} 

div#app { 
    z-index: 2; 
    display: block; 
    width: 100%; 
    height: 100%; 
    box-sizing: border-box; 
    padding: 0; 
    margin: 0; 
} 
textarea#app-input { 
    display: block; 
    box-sizing: border-box; 
    padding: 4px; 
    margin: 0; 
    border: none; 
    outline: none; 
    width: 100%; 
    height: 100%; 
    line-height: 23px; 
    font-size: 20px; 
    resize: none; 
} 

textarea::selection { 
    background: #000; 
    color: #fff; 
} 

ビデオ:http://recordit.co/2AxYmb9XxV

答えて

2

から隠さheight: 100% - height: calc(100% - 40px)に変更してください。ここで、40pxはヘッダーの高さです。それはビューポート内のすべてを保持します。

@import url('https://fonts.googleapis.com/css?family=Open+Sans'); 
 
html, 
 
body { 
 
    display: block; 
 
    box-sizing: border-box; 
 
    padding: 0; 
 
    margin: 0; 
 
    background-color: #888; 
 
    height: 100%; 
 
    width: 100%; 
 
    overflow-y: hidden; 
 
} 
 

 
div#header { 
 
    display: block; 
 
    width: 100%; 
 
    height: 40px; 
 
    border-left: 2px solid rgb(100, 125, 130); 
 
    border-top: 2px solid rgb(150, 175, 140); 
 
    border-bottom: 2px solid rgb(60, 48, 75); 
 
    border-right: 2px solid rgb(80, 84, 90); 
 
    background: #bbb; 
 
    box-sizing: border-box; 
 
    line-height: 40px; 
 
    text-align: center; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: 'Open Sans', sans-serif; 
 
    font-weight: 900; 
 
    z-index: 4 
 
} 
 

 
div#app { 
 
    z-index: 2; 
 
    display: block; 
 
    width: 100%; 
 
    height: calc(100% - 40px); 
 
    box-sizing: border-box; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
textarea#app-input { 
 
    display: block; 
 
    box-sizing: border-box; 
 
    padding: 4px; 
 
    margin: 0; 
 
    border: none; 
 
    outline: none; 
 
    width: 100%; 
 
    height: 100%; 
 
    line-height: 23px; 
 
    font-size: 20px; 
 
    resize: none; 
 
} 
 

 
textarea::selection { 
 
    background: #000; 
 
    color: #fff; 
 
}
<div id="header">ONLINE NOTEPAD</div> 
 
<div id="app"> 
 
    <textarea id="app-input"></textarea> 
 
</div>

0

オーバーフロー-Yを削除してみてください:あなたはhtml/bodyからheight: 100%; overflow-y: hidden;その後、#appはすべきではない設定しようとしている場合は、HTMLや身体

html, 
body { 
    display: block; 
    box-sizing: border-box; 
    padding: 0; 
    margin: 0; 
    background-color: #888; 
    height: 100%; 
    width: 100%; 
} 
+0

が動作していないようでした。 JSFiddleでoverflow-yを使わずにテストしました。 –

関連する問題