1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
---
title: content
slug: Web/CSS/content
tags:
- CSS
- CSS プロパティ
- CSS 生成コンテンツ
- Reference
translation_of: Web/CSS/content
---
<div>{{CSSRef}}</div>
<p class="summary"><a href="/ja/docs/Web/CSS">CSS</a> の <strong><code>content</code></strong> プロパティは、要素を生成された値で置き換えます。 <code>content</code> プロパティを使用して挿入されたオブジェクトは、<em>無名の<a href="/ja/docs/Web/CSS/Replaced_element">置換要素</a></em>になります。</p>
<pre class="brush:css no-line-numbers">/* 他の値と組み合わせることができないキーワード */
content: normal;
content: none;
/* <a href="/ja/docs/Web/CSS/image"><image></a> 値 */
content: url("http://www.example.com/test.png");
content: linear-gradient(#e66465, #9198e5);
/* 生成コンテンツの代替テキスト、第3水準の仕様書で追加 */
content: url("http://www.example.com/test.png") / "This is the alt text";
/* 以下の値は ::before および ::after を使用して生成されたコンテンツにのみ適用 */
/* <string> 値 */
content: "prefix";
/* <counter> 値 */
content: counter(chapter_counter);
content: counters(section_counter, ".");
/* HTML 属性値にリンクした attr() 値 */
content: attr(value string);
/* 言語や位置に依存したキーワード */
content: open-quote;
content: close-quote;
content: no-open-quote;
content: no-close-quote;
/* normal と none を除き、複数の値が同時に使用可 */
content: open-quote chapter_counter;
/* グローバル値 */
content: inherit;
content: initial;
content: unset;
</pre>
<p>{{cssinfo}}</p>
<h2 id="Syntax" name="Syntax">構文</h2>
<h3 id="Values" name="Values">値</h3>
<dl>
<dt><code>none</code></dt>
<dd>擬似要素は生成されません。</dd>
<dt><code>normal</code></dt>
<dd><code>:before</code> および <code>:after</code> 擬似要素では <code>none</code> として計算されます。</dd>
<dt>{{cssxref("<string>")}}</dt>
<dd>要素の「代替テキスト」を指定します。この値は任意の数のテキスト文字です。ラテン文字以外は Unicode エスケープシーケンスを使用してエンコードする必要があります。例えば、 <code>\000A9</code> は著作権記号を表します。</dd>
<dt>{{cssxref("<image>")}}</dt>
<dd>{{cssxref("<url>")}} または {{cssxref("<gradient>")}} データ型で示された {{cssxref("<image>")}}、または表示するコンテンツを記述する {{cssxref("element", "element()")}} 関数で定義されたウェブページの一部です。</dd>
<dt>{{cssxref("<counter>")}}</dt>
<dd><a href="/ja/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters">CSS カウンター</a>の値で、通常は数値です。 {{cssxref("counter")}} または {{cssxref("counters")}} 関数を使用して表示することができます。</dd>
<dd>
<p>{{cssxref("counter")}} 関数には、 'counter(<var>名前</var>)' または 'counter(<var>名前</var>, <var>スタイル</var>)' の二つの形式があります。生成されるテキストは、その擬似要素のスコープにおけるその名前の最も内側のカウンターです。指定されたスタイルで整形されます (<code>decimal</code> が既定値です)。</p>
<p>{{cssxref("counters")}} 関数も、 'counters(<var>名前</var>, <var>文字列</var>)' または 'counters(<var>名前</var>, <var>文字列</var>, <var>スタイル</var>)' の二つの形式があります。生成されるテキストは、その擬似要素のスコープにおけるその名前のすべてのカウンターの値であり、外側から内側に向けて、指定された文字列で区切られます。カウンターは指定されたスタイルで表示されます(<code>decimal</code> が既定値です)。</p>
</dd>
<dt><code>attr(x)</code></dt>
<dd>要素の属性の値 <em>x</em> を文字列として返します。属性 <em>x</em> が存在しない場合は、空文字列が返されます。属性名の大文字と小文字が区別されるかどうかは、文書の言語に依存します。</dd>
<dt><code>open-quote</code> | <code>close-quote</code></dt>
<dd>これらの値は {{cssxref("quotes")}} プロパティの対応する文字列に置き換えられます。</dd>
<dt><code>no-open-quote</code> | <code>no-close-quote</code></dt>
<dd>内容はありませんが、引用符の入れ子の階層を増加 (または減少) させます。</dd>
</dl>
<h3 id="Formal_syntax" name="Formal_syntax">形式文法</h3>
{{csssyntax}}
<h2 id="Examples" name="Examples">例</h2>
<h3 id="Headings_and_quotes" name="Headings_and_quotes">見出しと引用符</h3>
<p>この例では引用部分の周りに引用符を挿入し、見出しの前に "Chapter" の語を追加します。</p>
<h4 id="HTML">HTML</h4>
<pre class="brush: html"><h1>5</h1>
<p>According to Sir Tim Berners-Lee,
<q cite="http://www.w3.org/People/Berners-Lee/FAQ.html#Internet">I was
lucky enough to invent the Web at the time when the Internet
already existed - and had for a decade and a half.</q>
We must understand that there is nothing fundamentally wrong
with building on the contributions of others.
</p>
<h1>6</h1>
<p>According to the Mozilla Manifesto,
<q cite="http://www.mozilla.org/en-US/about/manifesto/">Individuals
must have the ability to shape the Internet and
their own experiences on the Internet.</q>
Therefore, we can infer that contributing to the open web
can protect our own individual experiences on it.
</p></pre>
<h4 id="CSS">CSS</h4>
<pre class="brush: css">q {
color: blue;
}
q::before {
content: open-quote;
}
q::after {
content: close-quote;
}
h1::before {
content: "Chapter "; /* 最後の空白は、追加コンテンツと
残りのコンテンツの間を隔てる
ものです */
}</pre>
<h4 id="Result" name="Result">結果</h4>
<p>{{EmbedLiveSample('Headings_and_quotes', '100%', 200)}}</p>
<h3 id="Image_combined_with_text" name="Image_combined_with_text">テキストと組み合わせる画像</h3>
<p>この例はリンクの前に画像を挿入します。画像が見つからなければ、代わりにテキストを挿入します。</p>
<h4 id="HTML_2">HTML</h4>
<pre class="brush: html"><a href="http://www.mozilla.org/en-US/">Mozilla Home Page</a></pre>
<h4 id="CSS_2">CSS</h4>
<pre class="brush: css">a::before {
content: url("https://mozorg.cdn.mozilla.net/media/img/favicon.ico") " MOZILLA: ";
font: x-small Arial, sans-serif;
color: gray;
}</pre>
<h4 id="Result_2" name="Result_2">結果</h4>
<p>{{EmbedLiveSample('Image_combined_with_text', '100%', 60)}}</p>
<h3 id="Targeting_classes" name="Targeting_classes">クラスのターゲッティング</h3>
<p>この例はリストの特定の項目の後に追加のテキストを挿入します。</p>
<h4 id="HTML_3">HTML</h4>
<pre class="brush: html"><h2>Paperback Best Sellers</h2>
<ol>
<li>Political Thriller</li>
<li class="new-entry">Halloween Stories</li>
<li>My Biography</li>
<li class="new-entry">Vampire Romance</li>
</ol></pre>
<h4 id="CSS_3">CSS</h4>
<pre class="brush: css">.new-entry::after {
content: " New!"; /* 先頭の空白は、追加コンテンツと
残りのコンテンツの間を隔てる
ものです */
color: red;
}</pre>
<h4 id="Result_3" name="Result_3">結果</h4>
<p>{{EmbedLiveSample('Targeting_classes', '100%', 160)}}</p>
<h3 id="Images_and_element_attributes" name="Images_and_element_attributes">画像および要素の属性</h3>
<p>この例はそれぞれのリンクの前に画像を挿入し、後に <code>id</code> 属性を追加します。</p>
<h4 id="HTML_4">HTML</h4>
<pre class="brush: html"><ul>
<li><a id="moz" href="http://www.mozilla.org/">
Mozilla Home Page</a></li>
<li><a id="mdn" href="https://developer.mozilla.org/">
Mozilla Developer Network</a></li>
</ul></pre>
<h4 id="CSS_4">CSS</h4>
<pre class="brush: css">a {
text-decoration: none;
border-bottom: 3px dotted navy;
}
a::after {
content: " (" attr(id) ")";
}
#moz::before {
content: url("https://mozorg.cdn.mozilla.net/media/img/favicon.ico") ;
}
#mdn::before {
content: url("https://mdn.mozillademos.org/files/7691/mdn-favicon16.png") ;
}
li {
margin: 1em;
}
</pre>
<h4 id="Result_4" name="Result_4">結果</h4>
<p>{{EmbedLiveSample('Images_and_element_attributes', '100%', 160)}}</p>
<h3 id="Element_replacement" name="Element_replacement">要素の置き換え</h3>
<p>この例は要素の内容を画像で置き換えます。要素の内容を {{cssxref("<url>")}} または {{cssxref("<image>")}} の値のどちらかで置き換えることができます。 <code>::before</code> または <code>::after</code> で追加された内容は、要素の中身が置き換えられるときは生成されません。</p>
<h4 id="HTML_5">HTML</h4>
<pre class="brush: html"><div id="replaced">Mozilla</div>
</pre>
<h4 id="CSS_5">CSS</h4>
<pre class="brush: css">#replaced {
content: url("https://mdn.mozillademos.org/files/12668/MDN.svg");
}
#replaced::after { /* 要素の置換に対応している場合は表示されない */
content: " (" attr(id) ")";
}</pre>
<h4 id="Result_5" name="Result_5">結果</h4>
<p>{{EmbedLiveSample('Element_replacement', '100%', 200)}}</p>
<h2 id="Accessibility_concerns" name="Accessibility_concerns">アクセシビリティの考慮事項</h2>
<p>CSS の生成コンテンツは <a href="/ja/docs/Web/API/Document_Object_Model/Introduction">DOM</a> に含まれません。そのため、<a href="/ja/docs/Learn/Accessibility/What_is_accessibility#Accessibility_APIs">アクセシビリティツリー</a>に現れず、支援技術とブラウザーの組み合わせによってはアナウンスされません。コンテンツがページの目的を理解する上で重要な情報を持つのであれば、文書本体に含めた方が適切です。</p>
<ul>
<li><a href="https://tink.uk/accessibility-support-for-css-generated-content/">Accessibility support for CSS generated content – Tink</a></li>
<li><a href="/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.3_%E2%80%94_Create_content_that_can_be_presented_in_different_ways">WCAG ガイドライン 1.3 の解説 – MDN</a></li>
<li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/content-structure-separation-programmatic.html">Understanding Success Criterion 1.3.1 | W3C Understanding WCAG 2.0</a></li>
</ul>
<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 Content", "#content-property", "content")}}</td>
<td>{{Spec2("CSS3 Content")}}</td>
<td>代替テキストの対応を追加</td>
</tr>
<tr>
<td>{{SpecName("CSS2.1", "generate.html#content", "content")}}</td>
<td>{{Spec2("CSS2.1")}}</td>
<td>初回定義</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
<p>{{Compat("css.properties.content")}}</p>
<h2 id="See_also" name="See_also">関連情報</h2>
<ul>
<li>{{Cssxref("::after")}}</li>
<li>{{Cssxref("::before")}}</li>
<li>{{Cssxref("::marker")}}</li>
<li>{{Cssxref("quotes")}}</li>
<li>{{cssxref("url()", "url()")}} 関数</li>
</ul>
|