Mga Espesyal na Karakter at Mga Pag-andar sa CSS

Mga Espesyal na Karakter at Mga Pag-andar sa CSS

Ipinaliliwanag ng artikulong ito ang mga espesyal na karakter at mga function sa CSS.

Maaari kang matuto tungkol sa mga espesyal na karakter at mga pag-andar tulad ng calc() at var() sa CSS.

YouTube Video

HTML para sa Preview

css-escape-and-function.html
  1<!DOCTYPE html>
  2<html lang="en">
  3<head>
  4    <meta charset="UTF-8">
  5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6    <title>CSS Pseudo Class/Element</title>
  7    <link rel="stylesheet" href="css-base.css">
  8    <link rel="stylesheet" href="css-escape-and-function.css">
  9</head>
 10<body>
 11    <!-- Header -->
 12    <header>
 13        <h1>CSS Special Characters &amp; Functions</h1>
 14    </header>
 15
 16    <!-- Main content -->
 17    <main>
 18        <header><h2>CSS Special Characters</h2></header>
 19        <article>
 20            <h3>CSS Special Characters</h3>
 21            <section>
 22                <header><h4>CSS</h4></header>
 23<pre class="sample">
 24#my\#id {
 25    color: red;
 26}
 27
 28#my\.id {
 29    color: red;
 30}
 31
 32#my\[id\] {
 33    color: red;
 34}
 35</pre>
 36                <header><h4>HTML</h4></header>
 37<pre>
 38&lt;div id="my.id"&gt;Dot Example&lt;/div&gt;
 39&lt;div id="my[id]"&gt;Bracket Example&lt;/div&gt;
 40&lt;div id="my#id"&gt;Sharp Example&lt;/div&gt;
 41</pre>
 42                <header><h4>HTML+CSS</h4></header>
 43                <section class="sample-view">
 44                    <div id="my#id">Sharp Example</div>
 45                    <div id="my.id">Dot Example</div>
 46                    <div id="my[id]">Bracket Example</div>
 47                </section>
 48            </section>
 49        </article>
 50        <article>
 51            <h3>CSS Special Characters</h3>
 52            <section>
 53                <header><h4>CSS</h4></header>
 54<pre class="sample">
 55.\31 23abc {
 56    font-weight: bold;
 57    color: blue;
 58}
 59</pre>
 60                <header><h4>HTML</h4></header>
 61<pre>
 62&lt;div class="123abc"&gt;Numeric Class&lt;/div&gt;
 63</pre>
 64                <header><h4>HTML+CSS</h4></header>
 65                <section class="sample-view">
 66                    <div class="123abc">Numeric Class</div>
 67                </section>
 68            </section>
 69        </article>
 70        <article>
 71            <h3>CSS Special Characters</h3>
 72            <section>
 73                <header><h4>CSS</h4></header>
 74<pre class="sample">
 75.content-unicode::before {
 76    content: "\00A9"; /* copyright mark */
 77    color: blue;
 78}
 79
 80.content-backslash::after {
 81    content: " : \\";
 82    color: blue;
 83}
 84</pre>
 85                <header><h4>HTML</h4></header>
 86<pre>
 87&lt;div class="content-unicode"&gt;Copyright&lt;/div&gt;
 88&lt;div class="content-backslash"&gt;This is a backslash example&lt;/div&gt;
 89</pre>
 90                <header><h4>HTML+CSS</h4></header>
 91                <section class="sample-view">
 92                    <div class="content-unicode">Copyright</div>
 93                    <div class="content-backslash">This is a backslash example</div>
 94                </section>
 95            </section>
 96        </article>
 97        <article>
 98            <h3>CSS Special Characters</h3>
 99            <section>
100                <header><h4>CSS</h4></header>
101<pre class="sample">
102.user\@name {
103  color: green;
104}
105
106#section\$ {
107  font-size: 24px;
108  color: blue;
109}
110</pre>
111                <header><h4>HTML</h4></header>
112<pre>
113&lt;div class=&quot;user@name&quot;&gt;User&lt;/div&gt;
114&lt;div id=&quot;section$&quot;&gt;Section&lt;/div&gt;
115</pre>
116                <header><h4>HTML+CSS</h4></header>
117                <section class="sample-view">
118                    <div class="user@name">User</div>
119                    <div id="section$">Section</div>
120                </section>
121            </section>
122        </article>
123    </main>
124
125    <main>
126        <header><h2>CSS Functions</h2></header>
127        <article>
128            <h3>calc()</h3>
129            <section>
130                <header><h4>CSS</h4></header>
131<pre class="sample">
132p.calc-width {
133    width: calc(50% - 10px);
134}
135</pre>
136                <header><h4>HTML</h4></header>
137<pre>
138&lt;p class="calc-width"&gt;
139    &lt;span&gt;First Text&lt;/span&gt;
140&lt;/p&gt;
141</pre>
142                <header><h4>HTML+CSS</h4></header>
143                <section class="sample-view">
144                    <p class="calc-width">
145                        <span>First Text</span>
146                    </p>
147                </section>
148            </section>
149        </article>
150        <article>
151            <h3>rgb() / rgba()</h3>
152            <section>
153                <header><h4>CSS</h4></header>
154<pre class="sample">
155p.rgb {
156    background-color: rgb(255, 0, 0);
157}
158
159p.rgb span {
160    background-color: rgba(0, 255, 0, 0.5);
161}
162</pre>
163                <header><h4>HTML</h4></header>
164<pre>
165&lt;p class="rgb"&gt;
166    &lt;span&gt;First Text&lt;/span&gt;
167&lt;/p&gt;
168</pre>
169                <header><h4>HTML+CSS</h4></header>
170                <section class="sample-view">
171                    <p class="rgb">
172                        <span>First Text</span>
173                    </p>
174                </section>
175            </section>
176        </article>
177        <article>
178            <h3>hsl() / hsla()</h3>
179            <section>
180                <header><h4>CSS</h4></header>
181<pre class="sample">
182p.hsl {
183    /* Specify hue, saturation, and lightness */
184    background-color: hsl(240, 25%, 50%);
185}
186
187p.hsl span {
188    /* Specification with transparency */
189    background-color: hsla(120, 100%, 50%, 0.5);
190}
191</pre>
192                <header><h4>HTML</h4></header>
193<pre>
194&lt;p class="hsl"&gt;
195    &lt;span&gt;First Text&lt;/span&gt;
196&lt;/p&gt;
197</pre>
198                <header><h4>HTML+CSS</h4></header>
199                <section class="sample-view">
200                    <p class="hsl">
201                        <span>First Text</span>
202                    </p>
203                </section>
204            </section>
205        </article>
206        <article>
207            <h3>url()</h3>
208            <section>
209                <header><h4>CSS</h4></header>
210<pre class="sample">
211div.bg-image {
212    background-image: url('image.jpg');
213}
214</pre>
215                <header><h4>HTML</h4></header>
216<pre>
217&lt;div class="bg-image"&gt;
218    &lt;span&gt;First Text&lt;/span&gt;
219&lt;/div&gt;
220</pre>
221                <header><h4>HTML+CSS</h4></header>
222                <section class="sample-view">
223                    <div class="bg-image">
224                        <span>First Text</span>
225                    </div>
226                </section>
227            </section>
228        </article>
229        <article>
230            <h3>var()</h3>
231            <section>
232                <header><h4>CSS</h4></header>
233<pre class="sample">
234/* Definition of custom properties */
235:root {
236    --main-color: #3498db;
237}
238
239/* Use of custom properties */
240p.main-color {
241    color: var(--main-color);
242}
243</pre>
244                <header><h4>HTML</h4></header>
245<pre>
246&lt;p class="main-color"&gt;
247    &lt;span&gt;First Text&lt;/span&gt;
248&lt;/p&gt;
249</pre>
250                <header><h4>HTML+CSS</h4></header>
251                <section class="sample-view">
252                    <p class="main-color">
253                        <span>First Text</span>
254                    </p>
255                </section>
256            </section>
257        </article>
258        <article>
259            <h3>attr()</h3>
260            <section>
261                <header><h4>CSS</h4></header>
262<pre class="sample">
263/* Example of using the attr() function */
264a::after {
265    content: " (" attr(title) ")";
266}
267</pre>
268                <header><h4>HTML</h4></header>
269<pre>
270&lt;a href="#section1" title="Section 1"&gt;Click here&lt;/a&gt;
271</pre>
272                <header><h4>HTML+CSS</h4></header>
273                <section class="sample-view">
274                    <a href="#section1" title="Section 1">Click here</a>
275                </section>
276            </section>
277        </article>
278        <article>
279            <h3>min() / max() / clamp()</h3>
280            <section>
281                <header><h4>CSS</h4></header>
282<pre class="sample">
283div.min {
284    /* Use the smaller value between 100% and 500px as the width */
285    width: min(100%, 500px);
286}
287div.max {
288    /* Use the larger value between 100% and 500px as the width */
289    width: max(100%, 500px);
290}
291div.clamp {
292    /* Adjust to fit within the range of 300px to 600px */
293    width: clamp(100px, 30%, 400px);
294}
295</pre>
296                <header><h4>HTML</h4></header>
297<pre>
298&lt;div class="min"&gt;min(100%, 500px)&lt;/div&gt;
299&lt;div class="max"&gt;max(100%, 500px)&lt;/div&gt;
300&lt;div class="clamp"&gt;clamp(100px, 30%, 400px)&lt;/div&gt;
301</pre>
302                <header><h4>HTML+CSS</h4></header>
303                <section class="sample-view">
304                    <div class="min">min(100%, 500px)</div>
305                    <div class="max">max(100%, 500px)</div>
306                    <div class="clamp">clamp(100px, 30%, 400px)</div>
307                </section>
308            </section>
309        </article>
310        <article>
311            <h3>repeat()</h3>
312            <section>
313                <header><h4>CSS</h4></header>
314<pre class="sample">
315/* Set three columns to be evenly spaced */
316grid-template-columns: repeat(3, 1fr);
317</pre>
318            </section>
319        </article>
320        <article>
321            <h3>linear-gradient() / radial-gradient() / conic-gradient()</h3>
322            <section>
323                <header><h4>CSS</h4></header>
324<pre class="sample">
325div.linear-gradient {
326    /* Linear gradient */
327    background: linear-gradient(to right, red, blue);
328}
329div.radial-gradient {
330    /* Radial gradient */
331    background: radial-gradient(circle, red, blue);
332}
333div.conic-gradient {
334    /* Conic gradient */
335    background: conic-gradient(from 0deg, red, yellow, blue, red);
336}
337</pre>
338                <header><h4>HTML</h4></header>
339<pre>
340&lt;div class="linear-gradient"&gt;linear-gradient&lt;/div&gt;
341&lt;div class="radial-gradient"&gt;radial-gradient&lt;/div&gt;
342&lt;div class="conic-gradient"&gt;radial-gradient&lt;/div&gt;
343</pre>
344                <header><h4>HTML+CSS</h4></header>
345                <section class="sample-view">
346                    <div class="linear-gradient">linear-gradient</div>
347                    <div class="radial-gradient">radial-gradient</div>
348                    <div class="conic-gradient">conic-gradient</div>
349                </section>
350            </section>
351        </article>
352    </main>
353</body>
354</html>

Mga Espesyal na Karakter at Escaping sa CSS

Ang mga escape character sa CSS ay mga teknika para sa ligtas na paghawak ng ilang karakter. Sa pamamagitan ng pag-escape ng mga espesyal na simbolo o karakter na may sintaktikong kahulugan, maaari mong ligtas na gamitin ang mga ito sa mga selector o string.

Pangkalahatang-ideya ng CSS Escape Characters

Ang CSS escaping ay isang mekanismo para i-escape ang ilang karakter o unicode upang magamit ang mga ito sa mga selector alinsunod sa mga tiyak na sintaktikong panuntunan. Halimbawa, kapag ang mga HTML element ID o pangalan ng klase ay naglalaman ng mga espesyal na simbolo (#, @, . atbp.), o kapag ang mga pangalan ng klase o ID ay nagsisimula sa mga numero, kapaki-pakinabang ang escape characters.

Pangunahing ginagamit ang escaping para sa mga sumusunod na layunin:

  • Paggamit ng mga espesyal na karakter bilang mga selector
  • Pangangasiwa ng mga ID o pangalan ng klase na nagsisimula sa mga numero
  • Pag-escape ng mga espesyal na simbolo o mga non-ASCII na karakter

Pangunahing Sintaks ng Escape

Ang mga escape character ay isinusulat sa CSS gamit ang backslash (\). Sa pamamagitan ng paglalagay ng backslash bago ang mga karakter na i-e-escape, itinuturing ang mga ito bilang normal na mga karakter.

Pag-escape ng Mga Espesyal na Karakter

1<div id="my#id">Sharp Example</div>
2<div id="my.id">Dot Example</div>
3<div id="my[id]">Bracket Example</div>
 1#my\#id {
 2    color: red;
 3}
 4
 5#my\.id {
 6    color: red;
 7}
 8
 9#my\[id\] {
10    color: red;
11}
  • Tulad ng nasa halimbawang ito, kinakailangan ang pag-escape kapag gumagamit ng mga espesyal na karakter sa loob ng mga CSS selector.
  • Ang #, ., [, at ] ay mga espesyal na karakter sa CSS. Kung ang mga karakter na ito ay kasama sa mga ID, kinakailangan ang pag-escape.

Pag-escape ng mga ID o Mga Pangalan ng Klase na Nagsisimula sa Mga Numero

1<div class="123abc">Numeric Class</div>
1.\31 23abc {
2    font-weight: bold;
3    color: blue;
4}
  • Sa CSS, kapag ang isang ID o pangalan ng klase ay nagsimula sa isang numero, hindi wasto ang direktang pagsulat nito. Sa mga ganitong kaso, gumamit ng pag-escape.
  • Dito, ini-escape natin ang nauunang 1 sa 123abc. Ang 1 ay kinakatawan bilang Unicode U+0031 at ini-escape gamit ang backslash at espasyo bilang \31 .

Pag-escape ng mga Unicode na Karakter

1/* Example: Escaping Unicode characters */
2.content-unicode::before {
3    content: "\00A9"; /* copyright symbol */
4    color: blue;
5}
  • Kapag nag-escape ng Unicode na mga karakter, tukuyin ang isang 6-digit na hexadecimal na numero pagkatapos ng backslash.
  • Ipinapakita ng code na ito kung paano ipakita ang © (simbolo ng copyright) sa CSS.

Pag-escape Sa Loob ng Mga String

1.content-backslash::after {
2    content: " : \\";
3    color: blue;
4}
  • Kapag gumagamit ng backslash sa mga string sa loob ng CSS (tulad ng property na content), kailangang doblehin ang backslash.
  • Sa halimbawang ito, isinusulat ang \\ upang ipakita ang backslash sa string.

Praktikal na Halimbawa: Pag-istilo sa mga Elemento ng HTML na may Espesyal na Karakter

1<div class="user@name">User</div>
2<div id="section$">Section</div>
 1/* When the class name contains special characters */
 2.user\@name {
 3    color: green;
 4}
 5
 6/* When the ID contains special characters */
 7#section\$ {
 8    font-size: 24px;
 9    color: blue;
10}
  • Dito, ini-escape natin ang mga elemento na may espesyal na karakter na @ at $.

Buod

Napakakapaki-pakinabang ng mga escape character sa CSS para sa tamang paghawak ng mga selector at string sa mga espesyal na kaso. Ang pag-unawa kung kailan kailangan ang pag-escape ay nakatutulong upang maiwasan ang mga pagkakamali kapag ina-style ang mga komplikadong HTML element. Lalo na kapag ang pakikitungo ay sa mga pangalan ng klase o ID na nagsisimula sa mga espesyal na karakter o numero, mahalaga ang pag-escape gamit ang backslash.

Mga Function sa CSS

Sa CSS, maaari kang gumamit ng mga function para dinamikong tukuyin o kalkulahin ang mga estilo. Dito, ipinakikilala namin ang ilang tipikal na mga function sa CSS.

calc()

1p.calc-width {
2    /* Specify the value obtained by subtracting 10px from 50% width */
3    width: calc(50% - 10px);
4    background-color: #eee;
5}
  • Ang function na calc() ay ginagamit para dinamikong kalkulahin ang mga halaga tulad ng lapad at taas ng mga elemento. Magagamit mo ang mga operator na +, -, *, / upang pagsamahin ang mga relatibong halaga (%) at absolutong halaga (px) sa mga layout.

rgb() / rgba()

1p.rgb {
2    /* Color specification for red, green, and blue */
3    background-color: rgb(255, 0, 0);
4}
5
6p.rgb span {
7    /* Color specification with transparency */
8    background-color: rgba(0, 255, 0, 0.5);
9}
  • Ang mga function na rgb() at rgba() ay ginagamit upang tukuyin ang mga kulay. Ang rgb() ay tumutukoy ng tatlong halaga para sa pula, berde, at asul (mula 0 hanggang 255), habang ang rgba() ay nagsasama rin ng alpha value para sa transparency.

hsl() / hsla()

1p.hsl {
2    /* Specify hue, saturation, and lightness */
3    background-color: hsl(240, 25%, 50%);
4}
5
6p.hsl span {
7    /* Specification with transparency */
8    background-color: hsla(120, 100%, 50%, 0.5);
9}
  • Ang hsl() at hsla() ay gumagamit ng hue, saturation, at lightness upang tukuyin ang mga kulay. Maaaring tukuyin ng hsla() ang transparency.

url()

1div.bg-image {
2    background-image: url('image.jpg');
3}
  • Ginagamit ang function na url() upang tukuyin ang mga landas patungo sa mga background image o iba pang mapagkukunan.

var()

1/* Definition of custom properties */
2:root {
3    --main-color: #3498db;
4}
5
6/* Use of custom properties */
7p.main-color {
8    color: var(--main-color);
9}
  • Ang function na var() ay ginagamit para magtrabaho gamit ang mga custom na property (mga CSS variable). Maaari kang magtakda ng mga CSS variable at gamitin ang mga ito sa ibang mga property.

attr()

1/* Example of using the attr() function */
2a::after {
3    content: " (" attr(title) ")";
4}
  • Ang function na attr() ay ginagamit upang magamit ang mga halaga ng HTML attribute sa mga estilo ng CSS. Pangunahing ginagamit ito sa loob ng property na content ng pseudo-elements upang dinamikong ipakita ang mga halaga ng attribute ng mga elemento. Gayunpaman, kinakailangan ng pag-iingat dahil limitado ang suporta ng browser.

min() / max() / clamp()

 1div.min {
 2    /* Use the smaller value between 100% and 500px as the width */
 3    width: min(100%, 500px);
 4    background-color: lightsteelblue;
 5}
 6div.max {
 7    /* Use the larger value between 100% and 500px as the width */
 8    width: max(100%, 500px);
 9    background-color: lightsteelblue;
10}
11div.clamp {
12    /* Adjust to fit within the range of 100px to 400px */
13    width: clamp(100px, 30%, 400px);
14    background-color: lightsteelblue;
15}

Ang mga function na ito ay ginagamit upang dinamikong tukuyin ang mga halaga.

  • Ang min() ay pumipili ng pinakamaliit na halaga mula sa isang set ng mga halaga.
  • Ang max() ay pumipili ng pinakamalaking halaga mula sa isang set ng mga halaga.
  • Inaayos ng clamp() ang isang halaga sa loob ng saklaw sa pagitan ng minimum, inirerekomenda, at maximum na halaga.

repeat()

1/* Set three columns to be evenly spaced */
2grid-template-columns: repeat(3, 1fr);

Ginagamit ang function na repeat() kasama ng grid-template-columns at grid-template-rows upang lumikha ng mga umuulit na pattern.

linear-gradient() / radial-gradient()

 1div.linear-gradient {
 2    /* Linear gradient */
 3    background: linear-gradient(to right, red, blue);
 4}
 5div.radial-gradient {
 6    /* Radial gradient */
 7    background: radial-gradient(circle, red, blue);
 8}
 9div.conic-gradient {
10    /* Conic gradient */
11    background: conic-gradient(from 0deg, red, yellow, blue, red);
12}
  • Ang mga function na ito ay ginagamit upang lumikha ng mga gradients.
    • Ang linear-gradient ay lumilikha ng isang linear gradient.
    • Ang radial-gradient ay lumilikha ng isang radial gradient. Maaari mong gamitin ang eclipse sa halip na circle upang lumikha ng isang elliptical gradient.
    • Ang conic-gradient ay lumilikha ng isang gradient na nagbabago ng kulay batay sa mga anggulo sa paligid ng gitna ng bilog.

Buod

Ang mga CSS function ay lubos na kapaki-pakinabang para sa pagsasaayos ng mga flexible na layout at estilo. Sa pamamagitan ng epektibong paggamit ng mga ito, maaari kang makalikha ng mas marami pang dinamikong at tumutugon na mga disenyo.

Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.

YouTube Video