〈PR〉プロが選ぶ!2023年最新!おすすめプログラミングスクール比較ガイド

【CSS入門】calc()関数を使うとwidthやheightを自動計算してくれてスゴイ便利!

【CSS入門】calc()関数を使うとwidthやheightを自動計算してくれてスゴイ便利!

本記事は、「スマホやタブレットやPCの画面の大きさに合わせてサイズやレイアウトの調整って面倒クサイ…」と思いつつ

UIHACK
編集長
UIHACK 編集長

・デバイスごとに適切なサイズやレイアウトを自動的に調整したい人
・サイズやレイアウトの計算式を考えるのが忙して難しい人
・よくある四則演算の式を使って調整したい人

上記のような、悩みや疑問を持っている、プログラミングを勉強したい人向け現役エンジニアが解説します。

この記事では、「前半」では「幅や高さを自動的に調整するCSSのcalc関数の基本的な説明」「後半」では「全体の幅を3分割するためのテクニック」「変数を使った効率的な計算方法をご紹介」する方法を詳しく解説します。

プログラミング初心者の方でも、読みやすい内容なので、少しずつ試してみて楽しく学んでくださいね。

それでは、ご一読ください!

CSS calc関数の基本的な使い方を解説します。

ウェブデザインで、スマートフォンやパソコンなど、さまざまな画面で同じサイトがきれいに見えるようにするのは大切なことです。でも、画面の大きさが違うから、どうやって要素の大きさを決めたり、配置したりするのか、考えたことはありませんか?

そこで登場するのが、「CSS calc関数」です。これは、要素の大きさや位置を計算して指定するための関数で、数学の計算式を使って簡単にスタイルを作れるんです。

CSS calc関数とは?

CSS calc関数は、プラスやマイナス、掛け算、割り算を使って、要素の大きさやマージン、パディングなどを計算して指定できる方法です。

例えば、画面が狭いときに要素を自動的に縮めたり、広いときに広げたりするのに役立ちます。これを使うと、自分で計算しなくても、自動的にきれいなデザインができるんですよ。

基本的な使い方

CSS calc関数を使うときは、こんな感じのコードを書きます。

要素 {
    プロパティ: calc(計算式);
}
CSS

たとえば、要素の幅を計算して指定する場合は、こんな風に書けます。

.box {
    width: calc(100% - 20px);
}
CSS

基本的な使い方の実行結果

プチ解説

width: calc(100% – 40px);: 要素の幅を画面幅から左右の余白40px分引いた幅に設定。

CSS calc関数の基本的な使い方のまとめ

CSS calc関数は、数学の計算を使って、要素のスタイルを簡単に指定するための道具です。画面の大きさが違うときでも、自動的にきれいなデザインを作るのに役立ちます。使い方を覚えて、スマートなデザインを作ってみましょう!

CSS calcを使用した四則演算での計算方法

CSS calc関数では、四則演算(足し算、引き算、掛け算、割り算)を使って、要素の幅や高さを計算できます。たとえば、幅を動的に変えたい場合を考えてみましょう。

要素 {
    width: calc(50% + 20px);
}
CSS
プチ解説

このコードは、要素の幅を半分にしてからさらに20ピクセル足した大きさにします。画面の大きさに合わせて自動的に調整される効果があります。

マージンとパディングの計算

四則演算は、マージンやパディングの設定にも便利です。たとえば、上下に同じマージンを設定する場合を考えてみましょう。

要素 {
    margin: calc(10px auto);
}
CSS
プチ解説

このコードは、上下に10ピクセルのマージンを持ち、左右は自動で中央に配置される要素を作ります。

【実行結果】CSS calcを使用した四則演算での計算方法

プチ解説

・width: calc(50% + 20px); :幅を半分にしてから20ピクセルを足す。 上下に均等なマージンを設定し、左右は自動で中央配置

・margin: calc(10px auto); : 上下に10ピクセルのマージン

画像サイズを計算する際のCSS calcの活用方法

ウェブデザインにおいて、画像はコンテンツを魅力的にする重要な要素です。しかし、画像のサイズを適切に調整することは、デザインの品質を確保する上で欠かせません。ここで「CSS calc関数」を使用して、画像サイズを効果的に計算する方法を紹介します。

画像サイズを調整する

ウェブページに画像を配置するとき、その画像の大きさを調整して適切な場所に置く必要があります。CSS calc関数を使うことで、計算を駆使して画像のサイズを指定できるんです。

画像のセレクタ {
    width: calc(100% - 40px);
}
CSS
プチ解説

このコードでは、画像の幅を画面幅から左右の余白の40ピクセル分引いた大きさに設定しています。これによって、画像がスクリーンに適切に収まりつつ、周りにスペースを確保することができます。

さまざまな画面に対応するレスポンシブな画像

CSS calc関数を使うことで、画像が表示されるデバイスの大きさに合わせて自動的に調整することも可能です。たとえば、スマートフォンやタブレット、パソコンなど、異なる画面サイズに適応する「レスポンシブな画像」を作るのにも役立ちます。

画像のセレクタ {
    max-width: calc(100% - 20px);
    height: auto;
}
CSS
プチ解説

このコードでは、画像の幅を画面幅から左右の余白の20ピクセル分引いた最大サイズに設定し、高さは自動的に調整されるようにしています。

【実行結果】画像サイズを計算する際のCSS calcの活用方法

プチ解説

width: calc(100% – 40px);: 要素の幅を画面幅から左右の余白の40px分引いたサイズに設定します。

max-width: calc(100% – 20px);: 要素の最大幅を画面幅から左右の余白の20px分引いたサイズに設定します。

CSS calcで全体の幅を3分割するためのテクニック

ウェブデザインでは、コンテンツをキレイに配置するために、ページをいくつかの部分に分けることがあります。ここでも、「CSS calc関数」を使って、ページ全体を均等な3つの部分に分ける方法をご紹介します。

基本的な3分割の方法

CSS calc関数を使うと、ページ全体を均等に3つに分けるのが簡単です。下の例を見てみましょう。

.container {
    display: flex; /* コンテナ内の要素を横並びにする */
}

.column {
    width: calc(33.33% - 20px); /* 幅を3分割して、20pxの余白を引く */
    margin: 0 10px; /* 列間の余白を設定 */
    box-sizing: border-box; /* ボックスサイズを内部ボックスに設定 */
}
CSS
プチ解説

このコードでは、.containerクラスを持つ要素が横一列に並ぶコンテナになります。

その中の.columnクラスを持つ要素は、均等に3分割された幅を持ち、余白が設定されています。こうすることで、コンテンツが整然と配置されます。

幅の調整方法

もしも特定の列を少し広くしたい場合、CSS calc関数を使って簡単に調整できます。例えば、左側の列を少し広くしてみましょう。

.left-column {
    width: calc(33.33% + 10px); /* 幅を3分割して、10pxの余白を足す */
    margin: 0 10px;
    box-sizing: border-box;
}

.center-column,
.right-column {
    width: calc(33.33% - 10px); /* 幅を3分割して、10pxの余白を引く */
    margin: 0 10px;
    box-sizing: border-box;
}
CSS
プチ解説

このコードでは、.left-columnクラスを持つ要素の幅をわずかに広げています。その他の列は、同じ幅を保ちながら調整されています。

【実行結果】基本的な3分割の方法

プチ解説

.left-column:width: calc(33.33% + 10px); 3分割して10pxの余白を足します。

.center-column,.right-column:3分割して10pxの余白を引く

.left-column, .center-column, .right-column: 各列ごとに異なる幅を指定するためのスタイルです。

CSS calcを変数(var)を使用して効率的な計算方法のご紹介

ウェブデザインで要素の大きさや配置を調整するとき、同じ値を何度も書くのは面倒ですよね。そこで登場するのが「変数(var)」という仕組みです。変数を使うことで、同じ値を一箇所で管理し、スタイルの設定を効率的に行うことができます。さらに、「CSS calc関数」と組み合わせることで、計算も簡単にできるんです。

変数(var)の使い方

変数は、値を入れておく入れ物のようなものです。例えば、幅や余白を変数に入れてみましょう。

:root {
  --main-width: 300px;
  --margin: 20px;
}

.container {
  width: var(--main-width);
  margin: 0 var(--margin);
  padding: var(--margin);
}
CSS
プチ解説

ここでは、:root(ルート要素)内で変数を定義しています。その後、–main-width–marginといった変数を使って要素の幅余白を設定しています。

CSS calc関数と変数の組み合わせ

ここで、CSS calc関数と変数を組み合わせて、複雑な計算を行ってみましょう。例えば、画面幅に合わせて要素の幅を自動調整し、余白を追加したい場合です。

:root {
  --screen-width: 1000px;
  --padding: 20px;
}

.element {
  width: calc((100vw - var(--screen-width)) / 2 + var(--padding));
}
CSS
プチ解説

このコードでは、変数を使って画面幅と余白を定義し、calc関数を使って要素の幅を計算しています。画面幅に合わせて幅を調整しつつ、余白を追加することができます。

【実行結果】CSS calcで全体の幅を3分割

CSS calcを変数(var)を使用して効率的な計算方法のまとめ

変数とCSS calc関数を組み合わせることで、スタイルの設定が効率的にできます。同じ値を何度も書く手間を省きながら、要素の大きさや配置を計算することができるんです。ぜひ、変数とcalc関数の組み合わせを試してみてください!

あなたにオススメの本

【4年連続、売上第1位!】
【全国の書店員がオススメする本(2019年度 CPU大賞)第1位!】

読者の圧倒的な支持!シリーズ35万部突破の大ヒット!
¥2,486 (2023/08/01 15:07時点 | Amazon調べ)

CSS calc関数の基本的な使い方の結論とまとめ

UIHACK
編集長
UIHACK 編集長

今回は、幅や高さを自動的に調整するCSSのcalc関数についてご紹介しました。
それでは、最後にもう一度、おさらいしましょう。

本記事で学んだ事
  • CSS calc関数の基本的な使い方
  • CSS calcを使用した四則演算での計算方法
  • 画像サイズを計算する際のCSS calcの活用方法
  • CSS calcで全体の幅を3分割するためのテクニック
  • CSS calcを変数(var)を使用して効率的な計算方法のご紹介

もう一度、最初から「CSS calc関数の基本的な使い方を解説します。」を読む↑

HTML・CSSでログイン画面を実装したい方は、ぜひ以下の記事もご覧ください。

単位の「vw」「vh」「vmin」「vmax」違いを知りたい方は、次の記事もご覧ください。

コメントを残す

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