From ac6320529399c8bb95d01822800d20d42a9c0d64 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO CSS の 式のオペランドは任意の {{cssxref("<length>")}} 構文の値にすることができます。式の中のそれぞれの値に異なる単位を使用することもできます。必要に応じて、計算の順番を設定するために括弧を使用することもできます。 {{EmbedLiveSample('Positioning_an_object_on_screen_with_a_margin', 'auto', '60')}} いくつかの CSS を見てみましょう。 ここで、フォームはウィンドウの取り得る幅の1/6を使うように指定しています。それから、入力項目が必ず妥当なサイズを持つように再度 {{EmbedLiveSample('Automatically_sizing_form_fields_to_fit_their_container', '700', '80')}} すべての変数が展開された後、 これによって、ページが拡大縮小されたときにテキストの寸法が拡大縮小されます。 {{Compat("css.types.calc")}}calc() 関数は、 CSS のプロパティ値を指定する際に計算を行うことができるものです。 {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}}, {{cssxref("<integer>")}} が利用できる場所ならば使用できます。構文
-
-/* プロパティ: calc(式) */
-width: calc(100% - 80px);
-
-calc() 関数は1つの式を引数として取り、式の結果が値として使用されます。式は以下の演算子を組み合わせたもので、標準的な演算子の優先順位の規則を使用します。
-
-
-+-*/メモ
-
-
-
-
-+ 演算子と - 演算子は前後に空白文字をつける必要があります。たとえば、 calc(50% -8px) と記述した場合、パーセント表記と負の長さが連続しているものとみなされ、無効な式となるからです。 calc(50% - 8px) はパーセント表記、減算記号、長さの順に並んでいるものと解釈されます。また、 calc(8px + -50%) は長さ、加算記号、負のパーセント表記の順に並んでいるものと解釈されます。* 演算子と / 演算子には前後の空白文字は必要ありませんが、こちらにも空白文字を用い記述ルールに一貫性を持たせておくことは認められており、推奨されています。auto が指定されたものとして扱います。calc() 関数を入れ子にすることは許可されており、内側のものは単なる括弧として扱われます。形式文法
-
-{{csssyntax}}
-
-例
-
-余白をつけてオブジェクトを画面に配置する
-
-calc() はマージン設定を持つボックス配置を容易にします。この例では CSS でウィンドウを横切るように広がるバナーを作ります。バナーの両側とウィンドウの縁は40ピクセル空けます。.banner {
- position: absolute;
- left: 40px;
- width: calc(100% - 80px);
- border: solid black 1px;
- box-shadow: 1px 2px;
- background-color: yellow;
- padding: 6px;
- text-align: center;
- box-sizing: border-box;
-}
-
-
-<div class="banner">これはバナーです!</div>
-
-フォーム項目のコンテナーへの自動フィット
-
-calc() はフォーム要素のサイズ変更にも利用できます。適切なマージンを維持しながら、コンテナの縁を突き破らないように、利用できるスペースいっぱいに広げます。input {
- padding: 2px;
- display: block;
- width: calc(100% - 1em);
-}
-
-#formbox {
- width: calc(100% / 6);
- border: 1px solid black;
- padding: 4px;
-}
-
-
-calc() を使い、コンテナーの幅 - 1em の幅になるように指定します。次の HTML でこの CSS を使います。<form>
- <div id="formbox">
- <label>Type something:</label>
- <input type="text">
- </div>
-</form>
-
-
-入れ子の
-
-calc() と CSS 変数calc() で CSS 変数を使用することもできます。以下のコードを見てみてください。.foo {
- --widthA: 100px;
- --widthB: calc(var(--widthA) / 2);
- --widthC: calc(var(--widthB) / 2);
- width: var(--widthC);
-}
-
-widthC の値は calc( calc( 100px / 2) / 2) になります。この値が .foo の width プロパティに割り当てられるとき、内部にあるすべての calc() は (入れ子の深さにかかわらず) 単なる括弧になり、width プロパティの値は最終的に calc( ( 100px / 2) / 2)、すなわち 25px になります。要するに、calc() の内部にある calc() は単なる括弧と同等です。アクセシビリティの考慮事項
-
-calc() をテキストの大きさを制御するために使用するとき、値の一つに相対的な長さの単位を含むことを確認してください。h1 {
- font-size: calc(1.5rem + 3vw);
-}
-
-
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
- 状態
- 備考
-
-
-
-{{SpecName('CSS3 Values', '#calc-notation', 'calc()')}}
- {{Spec2('CSS3 Values')}}
- 初回定義
- ブラウザーの互換性
-
-関連情報
-
-
diff --git a/files/ja/web/css/calc()/index.md b/files/ja/web/css/calc()/index.md
new file mode 100644
index 0000000000..cfe96fb86c
--- /dev/null
+++ b/files/ja/web/css/calc()/index.md
@@ -0,0 +1,168 @@
+---
+title: calc()
+slug: Web/CSS/calc()
+tags:
+ - CSS
+ - CSS 関数
+ - 計算
+ - 演算
+ - 関数
+ - レイアウト
+ - リファレンス
+ - ウェブ
+ - calc
+browser-compat: css.types.calc
+translation_of: Web/CSS/calc()
+---
+{{CSSRef}}
+
+CSS の `calc()` 関数は、 CSS のプロパティ値を指定する際に計算を行うことができるものです。 {{cssxref("<length>")}}、{{cssxref("<frequency>")}}、{{cssxref("<angle>")}}、{{cssxref("<time>")}}、{{cssxref("<percentage>")}}、{{cssxref("<number>")}}、{{cssxref("<integer>")}} が利用できる場所ならば使用できます。