カスタムプロパティをJavascriptで宣言しよう!

山口”蔵”オフィス
仕事と暮らし

どんどん気温が下がっていますね。
我が家ではついに衣替えを決行いたしました。
衣替え、いざやるとなるとなかなか体力のいることですよね。。
衣装ケースにしまい込んだ服を取り出すのも一苦労です。

さて、本日はまたしても(?)JavaScriptの話題をお届けいたします。
本日はCSSと関連した、特にiPhoneに対応させるときに便利な技をご紹介いたします!
キーワードは「カスタムプロパティ」です!
※ IEでは使用できませんので注意ください。

カスタムプロパティ

カスタムプロパティとは、簡単に言えば、「CSS内で使える変数」のことです。
「:root 」という指定の方法を見たことはないでしょうか?
これがカスタムプロパティです。
実際に見ていただいたほうがわかりやすいかと思いますので、例をご覧ください!

See the Pen
Bazqwvy
by kazuki nakamura (@k_nakamura)
on CodePen.

この例では、「–custom-color」に、赤色「#f00」の指定を保存しています。
それを、「var(–custom-color)」で適用しています。

カスタムプロパティを用いる場合の最低限のルールは次の2つです。

1. カスタムプロパティを宣言するときは「–」をプレフィックスとすること。
(逆に、これがつけられたプロパティをカスタムプロパティと呼びます)
2. 使用する際は「var()」という関数を用いること。

JavaScriptでカスタムプロパティを宣言

それでは、今回の主題に移ります。
まずは作成した例をご覧ください。

See the Pen
Exydwdo
by kazuki nakamura (@k_nakamura)
on CodePen.

このコードでは、次のことを行っています。

1. JavaScriptでデバイスの表示高さを取得。
2. 取得した値を「–vh」という名前のカスタムプロパティで宣言。

このようにすれば、JavaScriptから動的に、カスタムプロパティを宣言することが可能です。
これのどこが嬉しかというと、例えば、iPhoneで表示させるWebページなどで、ビューポートの高さ「vh」を用いる場合を考えてみてください。
iPhoneではその仕様上、画面の上部分にアドレスバーが現れるようになっています。
これが実に厄介で、「100vh」はアドレスバーを含まない画面の高さとなります。
これにより様々な問題が発生してしまうのです…。
つまり、本当に取得したい部分の高さが取得できれば良いわけで、そんなときにこの手法が役に立ちます。
IEでは使用できませんが、スマートフォンで使用することを想定すれば問題ないので、重宝しそうですね。
上のような場面に出会ったときは、一度検討されてみてはいかがでしょうか。

山口”蔵”オフィス

「山口を、記録する。」山口オフィスのメンバーより毎週ブログを書いております。内容としては山口県オススメスポットの紹介や技術のアウトプットなどです。ぜひご覧ください。

Share

Other Blogs

REC.

  1. HOME
  2. BLOG
  3. 仕事と暮らし
  4. カスタムプロパティをJavascriptで宣言しよう!

CONTACT US