2015年3月2日月曜日

calc()を使うとCSSで四則計算ができる。

ブラウザ・OS対応状況

ブラウザ対応状況特記
IEIE9〜
ChromeChrome26~-webkit-(ベンタープレフィックス)付きならChrome19~使用可能
FirefoxFirefox16-moz-付きならFirefox4~使用可能
SafariSafari6.1,7.0~-webkit-付きならSafari6.0~使用可能
OperaOpera15~
iOSiOS7~-webkit-付きならiOS6.0~使用可能
AndroidAndroid4.4~

…あー。
これは、当分実務で使うの無理だわw
ちょっとがっかり。
PCはまだいけるような気がするけど、スマホはiOS6.0(プレフィックス付き)~/Android4.4~だと、ほぼ最新機種しか使えないなあ。

でも、諦めたくない!諦めないで!

と、なればフォールバック(代替機能)付けるしかないよね。記述増えるけど。

css
.sampleBox {    width: 97.9%; /*IE9未満とかプレフィックス使ってもだめなブラウザやOS対応*/    widht: -webkit-calc(100% - 20px);/*Chrome19~25対応*/    width: -moz-calc(100% - 20px);/*Firefox4~15対応*/    width: calc(100% - 20px);    }  

うーん。長いなあ。

こんな部分に使うと便利

電卓持ち出して計算すればいいじゃん!というのも至極ごもっともな話なんですが、多くのブラウザやOSの最新バージョンでは対応してるので、あと1年くらい経てばバリバリ使えるプロパティになることは間違いないと思うし、時期を見て使ってみたいところです。

割り切れない計算

SASSなんかのメタ言語が便利だなーと指をくわえて見ているのは四則計算部分。
特に割り切れない数とかになると「ここで四則計算できればなあ」とか思っちゃう訳だ。
3分割とかすると「33.33%」みたいな数になっちゃうので、いつも見た感じが微妙に思っていた(SASSもコンパイルすると、33.33%みたいな数値になってしまうけど)。

css
/*使えない残念なブラウザとOS用*/  .sampleBox1of3 {    width:33.333%;  }    /*使える素敵なブラウザとOS用*/  .sampleBox1of3 {    widht: -webkit-calc(100% / 3);    width: -moz-calc(100% / 3);    width: calc(100% / 3);    }  

こんな計算もできるよ

html
<html>    <style>      body {font-size: 20px;}        .sample {        font-size: 125%;        font-size: -webkit-calc(1em + 5px);        font-size: -moz-calc(1em + 5px);        font-size: calc(1em + 5px);      }        .sample2 {        font-size: 175%;        font-size: -webkit-calc(1em * (4/4) + 15px);        font-size: -moz-calc(1em * (4/4) + 15px);        font-size: calc(1em * (4/4) + 15px);      }    </style>      <body>      <p>20ピクセルのフォント</p>      <p class="sample">加算して25ピクセルのフォント</p>      <p class="sample2">除算・乗算・加算して35ピクセルのフォント</p>    </body>  </html>  

ソースコードをコピペして確認できるように書いてみました。
.sample2が妙な計算してます。
35pxにするならfont-size: calc(1em + 15px);って書けばいいじゃないか!って話なんですが、こういう計算もできるという例で書いてみました。

スペシャルサンクス

以下のサイトを参考にしました。(人´∀`)アリガトウゴザイマス

0 件のコメント:

コメントを投稿