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
295
296
297
|
---
title: content
slug: Web/CSS/content
tags:
- CSS
- CSS Counter
- CSS Property
- Reference
translation_of: Web/CSS/content
---
<div>{{CSSRef}}</div>
<p class="summary"><a href="/ko/docs/Web/CSS">CSS</a> <strong><code>content</code></strong> 속성은 생성한 값으로 요소를 대체합니다. <code>content</code> 속성으로 추가한 요소는 "익명 <a href="/ko/docs/Web/CSS/Replaced_element">대체 요소</a>"입니다.</p>
<pre class="brush:css no-line-numbers">/* 다른 값과 조합할 수 없는 키워드 */
content: normal;
content: none;
/* <a href="/ko/docs/Web/CSS/image"><image></a> 값 */
content: url("http://www.example.com/test.png");
content: linear-gradient(#e66465, #9198e5);
/* 생성한 값의 대체 텍스트, Level 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="구문">구문</h2>
<h3 id="값">값</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>요소의 "대체 텍스트". 모든 숫자와 문자가 가능합니다. 단, 라틴계 문자가 아닌 경우 유니코드 이스케이프 시퀀스를 사용해 인코딩해야 합니다. 예를 들어, <code>\000A9</code>는 저작권 기호입니다.</dd>
<dt>{{cssxref("<image>")}}</dt>
<dd>{{cssxref("<url>")}}이나 {{cssxref("<gradient>")}} 자료형을 사용한 {{cssxref("<image>")}}, 또는 {{cssxref("element")}} 함수를 사용해 가리킨, 보여줄 웹페이지의 일부.</dd>
<dt>{{cssxref("<counter>")}}</dt>
<dd>보통 숫자인 <a href="/ko/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters">CSS 카운터 값</a>.{{cssxref("counter")}}나 {{cssxref("counters")}} 함수를 사용해 지정할 수 있습니다.</dd>
<dd>
<p>{{cssxref("counter")}} 함수는 'counter(<var>name</var>)'과 'counter(<var>name</var>, <var>style</var>)'의 두 형태를 가지고 있습니다. 생성하는 값은 주어진 의사 요소의 현재 범위에서, 해당하는 이름을 가진 가장 안쪽 카운터의 값입니다. 지정한 스타일(기본 <code>decimal</code>)에 맞춰 서식을 적용합니다.</p>
<p>{{cssxref("counters")}} 함수 역시 'counters(<var>name</var>, <var>string</var>)'과 'counters(<var>name</var>, <var>string</var>, <var>style</var>)'의 두 형태를 가집니다. 생성하는 값은 주어진 의사 요소의 현재 범위에서, 해당하는 이름을 가진 카운터 값의 목록으로 바깥쪽부터 시작하며 주어진 문자열을 사용해 구분합니다. 지정한 스타일(기본 <code>decimal</code>)에 맞춰 서식을 적용합니다..</p>
</dd>
<dt><code>attr(x)</code></dt>
<dd>문자열로 변환한, 요소 속성 <code>x</code>의 값. <code>x</code> 속성이 존재하지 않으면 빈 문자열을 반환합니다. 속성명의 대소문자 구분 여부는 문서 언어에 따릅니다.</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="형식_구문">형식 구문</h3>
<pre class="syntaxbox">{{csssyntax}}
</pre>
<h2 id="예제">예제</h2>
<h3 id="헤딩과_따옴표">헤딩과 따옴표</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 "; /* The trailing space creates separation
between the added content and the
rest of the content */
}</pre>
<h4 id="결과">결과</h4>
<p>{{EmbedLiveSample('헤딩과_따옴표', '100%', 200)}}</p>
<h3 id="이미지와_텍스트">이미지와 텍스트</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="결과_2">결과</h4>
<p>{{EmbedLiveSample('이미지와_텍스트', '100%', 60)}}</p>
<h3 id="클래스_사용">클래스 사용</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!"; /* The leading space creates separation
between the added content and the
rest of the content */
color: red;
}</pre>
<h4 id="결과_3">결과</h4>
<p>{{EmbedLiveSample('클래스_사용', '100%', 160)}}</p>
<h3 id="이미지와_요소_속성">이미지와 요소 속성</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="결과_4">결과</h4>
<p>{{EmbedLiveSample('이미지와_요소_속성', '100%', 160)}}</p>
<h3 id="요소_대체">요소 대체</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 { /* will not show if element replacement is supported */
content: " (" attr(id) ")";
}</pre>
<h4 id="결과_5">결과</h4>
<p>{{EmbedLiveSample('요소_대체', '100%', 200)}}</p>
<h2 id="접근성_고려사항">접근성 고려사항</h2>
<p>CSS로 생성한 콘텐츠는 <a href="/ko/docs/Web/API/Document_Object_Model/소개">DOM</a>이 포함하지 않고, <a href="/ko/docs/Learn/접근성/What_is_accessibility">접근성 트리</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="/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.3_%E2%80%94_Create_content_that_can_be_presented_in_different_ways">Explanation of WCAG, Guideline 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="명세">명세</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</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>Initial definition</td>
</tr>
</tbody>
</table>
<h2 id="브라우저_호환성">브라우저 호환성</h2>
<p>{{Compat("css.properties.content")}}</p>
<h2 id="같이_보기">같이 보기</h2>
<ul>
<li>{{Cssxref("::after")}}</li>
<li>{{Cssxref("::before")}}</li>
<li>{{Cssxref("::marker")}}</li>
<li>{{Cssxref("quotes")}}</li>
<li>{{cssxref("url()")}} 함수</li>
</ul>
|