• WebCamp_インタビュー
    時間や場所にとらわれず自由に働くために必要なスキルとは?【WebCamp卒業生インタビュー】
    2018.01.26
  • WebCampPro_インタビュー
    自分で稼ぐ力をつけるため、新卒5年目の営業マンがエンジニアに転職!【WebCampPro転職者インタビュー】
    2018.02.02
  • WebCamp_インタビュー
    “未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
    2017.10.04
  • WebCampPro_インタビュー
    未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】
    2018.03.10
  • WebCamp_インタビュー
    【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!
    2018.01.15
  • WebCamp_インタビュー
    【卒業生インタビュー】台湾で月間100万UUの訪日旅行メディアを手掛けるCEOが、プログラミングを学んで得たものとは?
    2018.01.15
  • WebCamp_インタビュー
    【WebCamp受講生インタビュー】起業準備中にCEOが気がついたプログラミングスキルの重要性とは?
    2017.12.25
  • WebCampPro_インタビュー
    未経験31歳からエンジニア転職を実現【実際に聞いてみた】
    2017.04.01
  • WebCampPro_インタビュー
    未経験でも寿司職人からWebデザイナーになった!ホスピタリティでスクールを支える宮脇トレーナー
    2017.05.26
  • WebCamp_インタビュー
    「自信の持てるスキルを得たい!」内定辞退した女子大生がプログラミングを学習したワケ。
    2018.04.28
  • WebCamp_インタビュー
    「1カ月頑張ればこの先が見えてくる」地元メディアを立ち上げたママさん
    2017.07.20

◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!
12月生募集中!当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
11月生は満員となっております。12月生募集に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

みなさんはCSSの学習をしていませんか?

CSSを学習する時にcalc関数が使えることで幅が広がります。

今回の記事ではcalc関数の使い方を解説します!

calc関数とは

CSSでコーディングをしている時、「px」や「%」を使ってコンテンツ幅や高さのサイズ指定することが多いですが、CSS3の「calc()」関数が実装され、プロパティの値を計算式で求めることが可能となりました。

いままで、パターン毎に数値を用意したり、パーセントで調整したりしていましたが、よる柔軟に設定することができてとても便利です。
今回はcalc関数についてご紹介します。

仕様

使用できる演算子は四則計算、加算(+)、減算(-)、乗算(*)、除算(/)になります。

<length>(長さ)、<frequency>(周波数)、<angle>(角度)、<time>(時間)、<number>(数値)、<integer>(整数) 型の値について演算を使用できます。

逆に言えばそれ以外の場所では使えませんので注意が必要です。(たとえば、Colorプロパティの値など)

記述方法

基本的な記述方法は下記のようになります。


section {
width: calc(100%/3 - 2*1em - 2*1px);
}

この時、加算と減算 (+, -) に関しては演算子の前後に半角スペースを必ず入れなければなりません。

乗算と除算 (*, /) に関しては前後の半角スペースについて任意ですが、ソースの統一性やミスを防ぐためにも記述上は前後に半角スペースを入れておくほうが懸命かと思います。

計算の優先順位

calc() 関数による四則計算の優先順位は学校で習うとおりです。

計算順序を指定するために 「括弧()」 を使用することができます。

calc(500 - 10 * 20 - 10 / 2)

上記の記述の場合、500 - 200 - 5 ということになります。例えば加算、減算を優先的に計算したければ calc((500 - 10) * (20 - 10) / 2) のように記述する必要があります。

ただし、乗算を使用する場合は少なくとも1つは「数量」でなくてはならない、除算を使用する場合は演算子の右の値が「数量」でなくてはならないという決まりもあります。

異なる単位の計算

calc関数の計算では、異なる単位の数値の計算を行うことができます。具体的には、相対単位(%やvw, vhなど)と絶対単位(pxなど)を組み合わせることができます。


.foo {
width: calc(100% - 50px);
}

この例では幅いっぱい(100%)から、50pxの固定幅を引いた数値を指定しています。サイドバーのレイアウトなどによく使う記述です。

「calc()」は計算された値は計算式自体であり、結果の値ではない

CSSプリプロセッサで計算式を扱う場合、ブラウザに与えられる値は式の結果の値です。
たとえば、


.foo {
width: 100px + 50px;
}

の場合には、


.foo {
width: 150px;
}

がブラウザに渡されます。

しかし、「calc()」ではブラウザによって解析された値が実際の「calc()」の計算式です。


.foo {
width: calc(100% - 50px);
}

これはブラウザにおける値がより動的になり、ビューポートの変更に合わせて適応できることを意味します。
例えば、ビューポートの高さから絶対値を引いた要素をビューポートの変更に合わせて適応させることができます。

「calc()」の入れ子

「calc()」の計算式は、入れ子で利用できます。
ただし、内部関数は単純なかっこ式として扱われます。


.foo {
width: calc( 100% / calc(100px * 2) );
}

上記の「calc()」の入れ子の計算式の計算値は下記のようになります。


.foo {
width: calc( 100% / (100px * 2) );
}

まとめ

CSS側で柔軟に対応できるcalc関数はCSS3の中でもとても有効な機能の一つです。

レイアウトデザイン上でも重要な役割を今後担う機能ですので、ぜひ活用してください。

1ヶ月でHTML・CSSができる!「WebCamp」とは?

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。

参加する方の90%は未経験者です!

短期集中型のスクールなので、期間を決めて圧倒的に効率よくサイト制作スキルを身に着けたい方におすすめです!

わからないことを講師にすぐ質問できたり、通い放題で自分のスケジュールに合わせて来校することができるので、独学で学習するよりも早く確実にスキルが身につきます。

学習の疑問点やWebスキルのマスターの仕方がわかる無料説明会も開催しています。ぜひお気軽にお申込みください!

12月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
11月受入枠は満員となっております。12月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

関連キーワード
学習の関連記事
  • 【誰でもわかる!】エンジニアの仕事内容を徹底解説
  • 初心者でも一瞬でわかるプログラミングの考え方・思考法
  • エンジニア必見!エンジニアが成長できるブログ紹介
  • エンジニアとは?仕事内容、年収、将来性を徹底解説
  • 【Rails入門説明書】find、find_byについて解説
  • プログラミング未経験者でも出来る開発環境構築
おすすめの記事