--- title: font slug: Web/CSS/font tags: - CSS - CSS Fonts - CSS Property - Reference - 'recipe:css-shorthand-property' translation_of: Web/CSS/font --- <div>{{CSSRef}}</div> <p><strong><code>font</code></strong> は CSS の<a href="/ja/docs/Web/CSS/Shorthand_properties">一括指定プロパティ</a>で、要素のフォントの様々なプロパティをすべて設定します。また、要素のフォントにシステムフォントを設定することもできます。</p> <div>{{EmbedInteractiveExample("pages/css/font.html")}}</div> <div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> <p>他の一括指定プロパティ同様、個別の値が指定されなかった場合は、それぞれの初期値が設定されます (おそらく一括指定ではないプロパティを使用して設定された以前の値を上書きします)。 <code>font</code> によって直接設定できない個別指定の {{cssxref("font-size-adjust")}}, {{cssxref("font-kerning")}} も初期値に設定されます。</p> <h2 id="Constituent_properties" name="Constituent_properties">構成要素のプロパティ</h2> <p>このプロパティは以下の CSS プロパティの一括指定です。</p> <ul> <li>{{cssxref("font-family")}}</li> <li>{{cssxref("font-size")}}</li> <li>{{cssxref("font-stretch")}}</li> <li>{{cssxref("font-style")}}</li> <li>{{cssxref("font-variant")}}</li> <li>{{cssxref("font-weight")}}</li> <li>{{cssxref("line-height")}}</li> </ul> <h2 id="Syntax" name="Syntax">構文</h2> <p><code>font</code> プロパティはシステムフォントを選択するための単一のキーワード、又は様々なフォント関連プロパティの一括指定のどちらかで指定することができます。</p> <p><code>font</code> をシステムキーワードとして指定する場合は、 <code><a href="#caption">caption</a></code>, <code><a href="#icon">icon</a></code>, <code><a href="#menu">menu</a></code>, <code><a href="#message-box">message-box</a></code>, <code><a href="#small-caption">small-caption</a></code>, <code><a href="#status-bar">status-bar</a></code> のうちの一つでなければなりません。</p> <p><code>font</code> を様々なフォント関連プロパティの一括指定とする場合は、次のようになります。</p> <ul> <li>次の値を含めなければなりません。 <ul> <li>{{cssxref("<font-size>")}}</li> <li>{{cssxref("<font-family>")}}</li> </ul> </li> <li>次の値は任意で含めることができます。 <ul> <li>{{cssxref("<font-style>")}}</li> <li>{{cssxref("<font-variant>")}}</li> <li>{{cssxref("<font-weight>")}}</li> <li>{{cssxref("<font-stretch>")}}</li> <li>{{cssxref("<line-height>")}}</li> </ul> </li> <li><code>font-style</code>, <code>font-variant</code>, <code>font-weight</code> は <code>font-size</code> よりも前になければなりません</li> <li><code>font-variant</code> は CSS 2.1 で定義された値、つまり <code>normal</code> 及び <code>small-caps</code> のみ指定できます</li> <li><code>font-stretch</code> は単一のキーワード値のみを指定することができます</li> <li><code>line-height</code> は <code>font-size</code> の直後に、 "/" で区切って、 "<code>16px/3</code>" のように指定します</li> <li><code>font-family</code> は指定される最後の値である必要があります。</li> </ul> <h3 id="Values" name="Values">値</h3> <dl> <dt id="<'font-style'>"><code><'font-style'></code></dt> <dd>{{Cssxref("font-style")}} プロパティを参照。</dd> <dt id="<'font-variant'>"><code><'font-variant'></code></dt> <dd>{{Cssxref("font-variant")}} プロパティを参照。</dd> <dt id="<'font-weight'>"><code><'font-weight'></code></dt> <dd>{{Cssxref("font-weight")}} プロパティを参照。</dd> <dt id="<'font-stretch'>"><code><'font-stretch'></code></dt> <dd>{{Cssxref("font-stretch")}} プロパティを参照。</dd> <dt id="<'font-size'>"><code><'font-size'></code></dt> <dd>{{Cssxref("font-size")}} プロパティを参照。</dd> <dt id="<'line-height'>"><code><'line-height'></code></dt> <dd>{{cssxref("line-height")}} プロパティを参照。</dd> <dt id="<'font-family'>"><code><'font-family'></code></dt> <dd>{{Cssxref("font-family")}} プロパティを参照。</dd> </dl> <h4 id="システムフォント値">システムフォント値</h4> <dl> <dt id="caption"><code>caption</code></dt> <dd>キャプション付きコントロールに使われるシステムフォント (ボタン、ドロップダウンなど)。</dd> <dt id="icon"><code>icon</code></dt> <dd>ラベルアイコンに使用されるシステムフォント。</dd> <dt id="menu"><code>menu</code></dt> <dd>メニューに使われるシステムフォント (ドロップダウンメニュー、メニューリストなど)。</dd> <dt id="message-box"><code>message-box</code></dt> <dd>ダイアログボックスに使われるシステムフォント。</dd> <dt id="small-caption"><code>small-caption</code></dt> <dd>小さいコントロールのラベルに使われるシステムフォント。</dd> <dt id="status-bar"><code>status-bar</code></dt> <dd>ウィンドウのステータスバーに使われるシステムフォント。</dd> <dt>接頭辞付きのシステムフォントキーワード</dt> <dd>ブラウザーは他にも、接頭辞付きのキーワードをいくつか実装していることがあります。 Gecko は、 <code>-moz-window</code>, <code>-moz-document</code>, <code>-moz-desktop</code>, <code>-moz-info</code>, <code>-moz-dialog</code>, <code>-moz-button</code>, <code>-moz-pull-down-menu</code>, <code>-moz-list</code>, <code>-moz-field</code> を実装しています。</dd> </dl> <h2 id="Formal_definition" name="Formal_definition">公式定義</h2> <p>{{CSSInfo}}</p> <h2 id="Formal_syntax" name="Formal_syntax">形式文法</h2> {{CSSSyntax}} <h2 id="Examples" name="Examples">例</h2> <h3 id="Setting_font_properties" name="Setting_font_properties">フォントのプロパティの設定</h3> <pre class="brush: css notranslate">/* フォントの大きさを 12px に設定し、行の高さを 14px にする。 フォントファミリは sans-serif に設定する */ p { font: 12px/14px sans-serif } /* フォントの大きさを親要素の 80% または既定値 (親要素がない場合) に設定する。 フォントファミリは sans-serif に設定する */ p { font: 80% sans-serif } /* フォントの太さを太字に、 フォントスタイルを斜体に、 フォントの大きさを large に、 フォントファミリーは serif に設定する */ p { font: bold italic large serif } /* ウィンドウのステータスバーと同じフォントに設定する */ p { font: status-bar } </pre> <h3 id="live_sample" name="live_sample">ライブサンプル</h3> <div class="hidden"> <h4 id="HTML">HTML</h4> <pre class="brush: html notranslate"><p> Change the radio buttons below to see the generated shorthand and it's effect. </p> <form action="createShortHand()"> <div class="cf"> <div class="setPropCont"> font-style<br/> <input type="radio" id="font-style-none" name="font_style" checked="" value="" onchange="setCss()"> <label for="font-style-none">none</label><br/> <input type="radio" id="font-style-normal" name="font_style" value="normal" onchange="setCss()"> <label for="font-style-normal">normal</label><br/> <input type="radio" id="font-style-italic" name="font_style" value="italic" onchange="setCss()"> <label for="font-style-italic">italic</label><br/> <input type="radio" id="font-style-oblique" name="font_style" value="oblique" onchange="setCss()"> <label for="font-style-oblique">oblique</label> </div> <div class="setPropCont"> font-variant<br> <input type="radio" id="font-variant-none" name="font_variant" checked="" value=" " onchange="setCss()"> <label for="font-variant-none">none</label><br/> <input type="radio" id="font-variant-normal" name="font_variant" value="normal" onchange="setCss()"> <label for="font-variant-normal">normal</label><br/> <input type="radio" id="font-variant-small-caps" name="font_variant" value="small-caps" onchange="setCss()"> <label for="font-variant-small-caps">small-caps</label> </div> <div class="setPropCont"> font-weight<br/> <input type="radio" id="font-weight-none" name="font_weight" value="" onchange="setCss()"> <label for="font-weight-none">none</label><br/> <input type="radio" id="font-weight-normal" checked="" name="font_weight" value="400" onchange="setCss()"> <label for="font-weight-normal">normal</label><br/> <input type="radio" id="font-weight-bold" name="font_weight" value="700" onchange="setCss()"> <label for="font-weight-bold">bold</label> </div> <div class="setPropCont"> font-size<br/> <input type="radio" id="font-size-12px" name="font_size" value="12px" onchange="setCss()"> <label for="font-size-12px">12px</label><br/> <input type="radio" id="font-size-16px" name="font_size" value="16px" checked="" onchange="setCss()"> <label for="font-size-16px">16px</label><br/> <input type="radio" id="font-size-24px" name="font_size" value="24px" onchange="setCss()"> <label for="font-size-24px">24px</label> </div> <div class="setPropCont"> line-height<br/> <input type="radio" id="line-height-none" name="line_height" checked="" value="" onchange="setCss()"> <label for="line-height-none">none</label><br/> <input type="radio" id="line-height-1.2" name="line_height" value="/1.2" onchange="setCss()"> <label for="line-height-1.2">1.2</label><br/> <input type="radio" id="line-height-3" name="line_height" value="/3" onchange="setCss()"> <label for="line-height-3">3</label> </div><br/> <div class="setPropCont fontfamily"> font-family<br/> <input type="radio" id="font-family-courier" name="font_family" checked="" value="courier" onchange="setCss(5,'courier')"> <label for="font-family-courier">courier</label><br/> <input type="radio" id="font-family-serif" name="font_family" value="serif" onchange="setCss()"> <label for="font-family-serif">serif</label><br /> <input type="radio" id="font-family-sans-serif" name="font_family" value="sans-serif" onchange="setCss()"> <label for="font-family-sans-serif">sans-serif</label><br /> <input type="radio" id="font-family-arial" name="font_family" value="arial" onchange="setCss()"> <label for="font-family-arial">Arial</label><br /> <input type="radio" id="font-family-monospace" name="font_family" value="monospace" onchange="setCss()"> <label for="font-family-monospace">monospace</label><br /> <input type="radio" id="font-family-cursive" name="font_family" value="cursive" onchange="setCss()"> <label for="font-family-cursive">cursive</label><br /> <input type="radio" id="font-family-fantasy" name="font_family" value="fantasy" onchange="setCss()"> <label for="font-family-fantasy">fantasy</label><br /> <input type="radio" id="font-family-system-ui" name="font_family" value="system-ui" onchange="setCss()"> <label for="font-family-system-ui">system-ui</label><br /> </div> </div> <div class="cf propInputs"> <div class="propInputCont tar"> font : </div> <div class="propInputCont"> <input type="text" class="curCss" id="input_font_style"><br/> font-style <br/> optional </div> <div class="propInputCont"> <input type="text" class="curCss" id="input_font_variant"> <br/> font-variant <br/> optional </div> <div class="propInputCont"> <input type="text" class="curCss" id="input_font_weight"> <br/> font-weight <br/> optional </div> <div class="propInputCont"> <input type="text" class="curCss mandatory" id="input_font_size"> <br/> font-size <br/> mandatory </div> <div class="propInputCont"> <input type="text" class="curCss" id="input_line_height"> <br/> line-height <br/> optional </div> <div class="propInputCont"> <input type="text" class="curCss mandatory" id="input_font_family"> <br/> font-family <br/> mandatory </div> </div> </form> <div class="fontShortHand"> This is some sample text. </div> <br/><br/><br/><br/><br/><br/> </pre> <h4 id="CSS">CSS</h4> <pre class="brush: css notranslate">body, input { font: 14px arial; overflow: hidden; } .propInputCont { float: left; text-align: center; margin-right: 5px; width: 80px; } .setPropCont { float: left; margin-right: 5px; width: 120px; } .propInputs, .setPropCont { margin-bottom: 1em; } .curCss { border: none; border-bottom: 1px solid black; text-align: center; width: 80px; } .mandatory { border-bottom-color: red; } .cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } .tar { width: 40px; text-align: right; } .fontfamily { display: inline-block; }</pre> <h4 id="JavaScript">JavaScript</h4> <pre class="brush: js notranslate">var textAreas = document.getElementsByClassName("curCss"), shortText = "", getCheckedValue, setCss, getProperties, injectCss; getProperties = function () { shortText = getCheckedValue("font_style") + " " + getCheckedValue("font_variant") + " " + getCheckedValue("font_weight") + " " + getCheckedValue("font_size") + getCheckedValue("line_height") + " " + getCheckedValue("font_family"); return shortText; } getCheckedValue = function(radio_name) { oRadio = document.forms[0].elements[radio_name]; for (var i = 0; i < oRadio.length; i++) { if(oRadio[i].checked) { var propInput = "input_" + radio_name, curElemName = "input_" + radio_name, curElem = document.getElementById(curElemName); curElem.value = oRadio[i].value; return oRadio[i].value; } } } setCss = function () { getProperties(); injectCss(shortText); } injectCss = function(cssFragment) { old = document.body.getElementsByTagName("style"); if (old.length > 1) { old[1].parentElement.removeChild(old[1]); } css = document.createElement("style"); css.innerHTML = ".fontShortHand{font: " + cssFragment + "}"; document.body.appendChild(css); } setCss();</pre> </div> <p>{{ EmbedLiveSample('live_sample','100%', '440px')}}</p> <h2 id="Specifications" name="Specifications">仕様書</h2> <table class="standard-table"> <thead> <tr> <th scope="col">仕様書</th> <th scope="col">状態</th> <th scope="col">備考</th> </tr> </thead> <tbody> <tr> <td>{{SpecName('CSS3 Fonts', '#font-prop', 'font')}}</td> <td>{{Spec2('CSS3 Fonts')}}</td> <td><code>font-stretch</code> の値の対応を追加</td> </tr> <tr> <td>{{SpecName('CSS2.1', 'fonts.html#font-shorthand', 'font-weight')}}</td> <td>{{Spec2('CSS2.1')}}</td> <td>キーワードへのサポートが追加されました</td> </tr> <tr> <td>{{SpecName('CSS1', '#font', 'font')}}</td> <td>{{Spec2('CSS1')}}</td> <td>初回定義。</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> <p>{{Compat("css.properties.font")}}</p>