9月更新・前月(8月)の人気記事トップ10 09/02/2024
- ( 01 – ) 【Labs】position:absoluteとwidth:100%を指定すると横幅の設定がうまくいかない場合の対処方法について
- ( 07 ↑) 【Mac】macOSをHigh SierraからMontereyにアップグレード
- ( 03 – ) 【Mac】横画面で撮影した動画をYouTubeショート用にMacのiMovieで縦画面に編集する方法
- ( 10 ↑) 【iPhone / iPad】iPhoneのツイッターアプリでユーザー名をコピーする方法
- (圏外↑) 【Labs】CSSだけでドロップダウンメニュー
- ( 02 ↓) 【jQuery】入門2. jQueryをHTMLに組み込む
- ( 09 ↑) 【Mac】Safariでソースコードを見る方法
- ( 04 ↓) 【jQuery】入門7. jQueryで新しいWindowを開く
- ( 06 ↓) 【2024年5月】iPad画面解像度まとめ
- (圏外↑) 【GIMP】レイヤーをロック
【Labs】表示しているブラウザの高さを取得してCSSのheightに指定2
こんにちは(・∀・)
当サイトの月間アクセスTop10で、ちょくちょくTop10に入って来るページがあります。
【Labs】表示しているブラウザの高さを取得してCSSのheightに指定
タイトルの通りブラウザの高さを取得してCSSのheightに指定するというjQueryのスクリプトをご紹介しているページ。
そんな人気❓ページのjQueryスクリプトをネイティブ化してみようかなと思い立ち、動き的には同じですが、あえてjQueryプラグインを使わない方法でスクリプトを描いてみたという内容の投稿です。
JavaScriptで取得した高さをCSSのheightに指定
JavaScriptで表示画面サイズを取得してCSSのheightに取得した高さを指定します。
JavaScript
var c1 = document.getElementById('container');
window.addEventListener('load', function(){
var h = window.innerHeight;
var style = c1.style;
style.minHeight = h + 'px';
}, false);
window.addEventListener('resize', function(){
var h = window.innerHeight;
var style = c1.style;
style.minHeight = h + 'px';
}, false);
以下注意点ですがjQuery版と同じです。
このとき、CSSへの指定はheightにではなくmin-heightに指定するのがポイントです。そうすることでコンテンツ量が画面サイズより大きい場合、コンテンツの長さに応じた高さを表示してくれます。
その他、高さを指定したい要素のCSSをheight:100%にする方法もあります。この場合その要素の親要素の高さも100%にする必要があります。以前フルフラッシュサイトなどでSWFファイルを表示するときに使った手法なのでお馴染みだと思います。
サンプルデモ
Result
スマホでのご確認はこちらをどうぞ
こちらもjQuery版と同じですが一応掲載しておきます。
CSSの単位でvw、vh、vmin、vmaxなどがあり、それらを使ってCSSの高さを指定することもできます。「1vh = 1%」で、height: 100vh → height: 100%となります。こちらは%と違い親要素の高さと紐づけられることはありません。
vw | viewport width | viewportの幅の割合 |
vh | viewport height | viewportの高さの割合 |
vmin | viewport minimum | viewportの幅と高さの値が小さい方の割合 |
vmax | viewport max | viewportの幅と高さの値が大きい方の割合 |
関連リンク
【Labs】表示しているブラウザの高さを取得してCSSのheightに指定
【Labs】CSSで要素の高さ100%を指定する方法