RUIN OF THE WEB DESIGNER

Webデザイナーの成れの果て

ブラウザの高さ取得は、jQueryを使わなくてもCSSのvhでカンタンにできる!

最近のWebサイトに多く見られる、画面いっぱいにキービジュアルが使われているような表現。今までjsを使用して高さを取得していましたが、CSSのみでカンタンにできることを今更知ったので、その方法をご紹介して行きます。
高さ

Web Design Clipなんか見ても、こういった見せ方をしているサイトが最近多いですね。

まぁ、早い話が、これを使えば、

例1

こういった、ヘッダだけ画面いっぱいにした見せ方や、

例2

コンテンツごとに高さを取得する見せ方が、容易にできます。

文章で説明するのは難しいので、後で紹介するDEMOページを見たほうが早いです。

jQueryでブラウザの高さを取得

まずは、おそらく主流であろうやり方。意外とカンタンにできます。
ヘッダなんかの、高さ取得したい要素に、ここではわかりやすく、h100というクラスをつけます。で、

$(function(){
var $window = $(window);
$(".h100").css("height",$window.innerHeight());
$window.resize(function(){
$(".h100").css("height",$window.innerHeight());
});
});

こちらのスクリプトを記載するだけです。
リサイズも指定してあるので、レスポンシブにも対応しています。

CSSのみでブラウザの高さを取得

今回ご紹介するのは、こちら。
先ほどのjsより、簡潔なコードで実装できます。同じく、h100というクラスをつけて、

.h100 {
height: 100vh;
}

これだけでOK!

ただし、Android4.4より古い、デフォルトのブラウザアプリは対応していないので注意が必要です(ChromeとかならOK)。IEは9から対応しています。
「若干簡単になって、若干軽くなるくらいで、そんなメリットなくね?」って思うかもしれませんが、例えば、

header {
height: 100vh;
}
header .hero {
height: 90vh;
}
header nav {
height: 10vh;
}

こういうことだって、実現可能なのです。
はじめての人は、「vhってなんじゃ!」って思うわけですよ。
詳しいvhという単位についての解説はこちらを参照に。

おわりに

vh,vwを使いこなせるようになれば、今までjsでやっていたことが、CSSのみで実現可能になり、色々ラクできます。今回DEMOなんで、雑に作ってますが、ちゃんと作り込めば、スーパービューティフルレスポンシブなサイトができますよ!
では。

ご一緒に、Related Potato はいかがですか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This blog is kept spam free by WP-SpamFree.