menu
menu

キーワード検索

 

前月(4月)の人気記事トップ10

  1. ( 1 - ) 【CSS】CSSだけでドロップダウンメニュー
  2. ( 2 - ) 【CSS】CSSだけでサイズ可変・スマホ対応のアコーディオン
  3. ( 3 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  4. (10 ↑) 【Mac】MacにInkscapeをインストール
  5. ( 5 - ) 【HTML5】スマホサイトの作成・基本編
  6. ( 8 ↑) 【jQuery】表示しているブラウザの高さを取得してCSSのheightに指定
  7. ( 6 ↓) 【CSS】CSSだけでブロック要素の表示非表示(トグルボタン)
  8. ( 4 ↓) 【iPhone・iPad】投稿の準備中にエラーが起きました。後でやり直して...
  9. ( - ↑) 【jQuery】jQueryでドロップダウンメニュー
  10. ( - ↑) 【CSS】スマホサイト向け横にスクロールするナビゲーション
このエントリーをはてなブックマークに追加

【JavaScript】表示しているブラウザの高さを取得してCSSのheightに指定

【JavaScript】表示しているブラウザの高さを取得してCSSのheightに指定

こんにちは(・∀・)

当サイトの月間アクセスTop10で、ちょくちょくTop10に入って来るページがあります。

【jQuery】表示しているブラウザの高さを取得して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
スマホでのご確認はこちらをどうぞ
QRコード

こちらもjQuery版と同じですが一応掲載しておきます。

CSSの単位でvwvhvminvmaxなどがあり、それらを使ってCSSの高さを指定することもできます。「1vh = 1%」で、height: 100vh → height: 100%となります。こちらは%と違い親要素の高さと紐づけられることはありません。

vwviewport widthviewportの幅の割合
vhviewport heightviewportの高さの割合
vminviewport minimumviewportの幅と高さの値が小さい方の割合
vmaxviewport maxviewportの幅と高さの値が大きい方の割合

 

にほんブログ村 IT技術ブログ JavaScriptへ

関連リンク

【jQuery】表示しているブラウザの高さを取得してCSSのheightに指定
【CSS】CSSで要素の高さ100%を指定する方法

  • CSS height JavaScript
このエントリーをはてなブックマークに追加