- HOME
- > BLOG CATEGORY
- 【CSS】calc関数の使い方 プロパティ値の計算を行う
- お知らせ
- NEW 2024.05.16 【CSS】グラデーション色々なパターンを解説!
- お知らせ
- NEW 2024.05.15 【WordPress】親カテゴリーの子カテゴリー一覧を表示する方法
- お知らせ
- 2024.05.09 【レスポンシブデザイン】アニメーションが動かない原因
こんな方に読んでほしい
calc関数
について学びたい方へcalc()関数を使うことで、計算を実行をしたり、条件を指定したりすることができます。
計算とは、主に加算・減算・乗算・除算が行えます。
[記事の内容]
CSS関数とは、次のように関数名と引数で構成されます。
関数名
どのような関数を実行するかを決めるキーワードになります。
引数
CSS関数に渡す値のことです。使用できる値は関数によって違います。
calc()関数を使うことで、計算を実行をしたり、条件を指定したりすることができます。
計算とは、主に加算・減算・乗算・除算が行えます。
※演算子(+, -, *, /)は前後にスペースを開けて指定を行います。
書き方は以下のようになります
/*--加算(+)--*/
プロパティ {
width:calc(100px + 50px);
}
/*--減算(-)--*/
プロパティ {
width:calc(100% - 50px);
}
/*--乗算(∗)--*/
プロパティ {
width:calc(100px * 5);
}
/*--除算(/)--*/
プロパティ {
width:calc(100px / 2);
}
/*--前後にスペースを開けます OK例--*/
プロパティ {
width:calc(100% - 50px);
}
/*--前後にスペースを開けていない NG例--*/
プロパティ {
width:calc(100%-50px);
}
calcの計算には「優先順位」があります。
「加算(+)、減算(-)」よりも「乗算(*)、除算(/)」が優先されます。
下記の場合、「100% – 10px」より先に「10px / 3」が計算されます。
/*--優先順位について--*/
プロパティ {
width: calc(100% - 10px / 3 );
}
「括弧()」を追加すれば、優先順位を変更することができます。
下記の場合、「100% – 10px」が先に計算されます。
※ゼロ(0)で割らないようにしましょう。
/*--優先順位について--*/
プロパティ {
width: calc((100% - 10px) / 3 );
}
/*--NG ゼロで割らないように--*/
プロパティ {
width: calc(100% / 0);
}
calcは入れ子にして指定も可能です。
/*--優先順位について--*/
プロパティ {
width: calc((100% / 3) * 2);
}
calc()関数は、ほとんどのブラウザで対応はしておりますが、一部のブラウザでは対応されておりません。
calc()関数が適用されない場合はベンダープレフィックスを使用しましょう。
/*--ベンダープレフィックスについて--*/
プロパティ {
width: 33.33333%; /* 非サポートブラウザ用のフォールバック */
width: -webkit-calc(100% / 3);
width: calc(100% / 3);
}
「Can I use」(https://caniuse.com/)では、対象のブラウザでベンダープレフィックスが必要かどうかを確認してくれます。
黄色枠に対象となるCSSを入力してください。
今回は一つの例として、3カラムレイアウトでcalc()関数を使い指定を行います。
親要素のコンテンツ幅100%に対して、3カラムレイアウトの場合は、
「width:33.3333%」に指定をしていました。
calc()関数で指定すると以下のようになります。
calc(100% / 3)
と記述します、除算で指定し3カラムにしています。
3カラムレイアウトでの指定
<div>
<div class="item">①</div>
<div class="item">②</div>
<div class="item">③</div>
</div>
/*--親要素--*/
.flex-container {
display: flex;
}
/*--3カラムレイアウト--*/
.item {width: calc(100% / 3);}
/*--2カラムレイアウトの場合--*/
.item {width: calc(100% / 2);}
*--4カラムレイアウトの場合 など--*/
.item {width: calc(100% / 4);}
先ほど例であげた、3カラムレイアウトをcalc()関数で指定を行い、
「30px * 2 = 60px」を行い、「100% – 60px」を引いて3で割った値になります。
最後は「margin」で余白を開けています。
余白の指定
<div>
<div class="item">①</div>
<div class="item">②</div>
<div class="item">③</div>
</div>
/*--親要素--*/
.flex-container {
display: flex;
}
/*--3カラムレイアウト--*/
.item {
width: calc((100% - 30px * 2) / 3);
margin: 0 10px;
}
今回はこれで以上です。
簡単にcalc()関数についてまとめてみました。
2024.05.15
2024.05.09
2024.05.09
2024.03.07
2024.05.15
2024.05.14
2024.05.09
2024.05.09
2024.05.09
2024.05.09
2023.06.15
2022.06.30
2020.03.22
2020.03.06
© 2023 shu-naka-blog