พื้นฐาน CSS
บทความนี้อธิบายพื้นฐานของ CSS
คุณสามารถเรียนรู้เกี่ยวกับตัวเลือก CSS, ตัวรวม (combinators) และเฉพาะการ (specificity)
YouTube Video
HTML/CSS สำหรับการแสดงตัวอย่าง
css-base.css
1body {
2 font-family: Arial, sans-serif;
3 line-height: 1.6;
4 margin: 20px 20px 600px 20px;
5 background-color: #f4f4f9;
6 color: #333;
7}
8
9header h1 {
10 font-size: 24px;
11 color: #333;
12 text-align: center;
13 margin-bottom: 20px;
14}
15
16h2, h3 {
17 color: #555;
18}
19
20h2 {
21 font-size: 20px;
22 border-bottom: 2px solid #ccc;
23 padding-bottom: 5px;
24}
25
26h3 {
27 font-size: 18px;
28 margin-top: 20px;
29 padding-left: 10px;
30 border-left: 2px solid #ccc;
31}
32
33h4 {
34 margin: 0;
35 margin-left: 10px;
36 font-size: 14px;
37}
38
39article section p {
40 margin-left: 40px;
41}
42
43p, pre {
44 margin: 10px 0;
45 padding: 0;
46}
47
48ul, ol, dl, menu {
49 margin: 0;
50}
51
52pre {
53 background-color: #f0f0f0;
54 border-left: 4px solid #ccc;
55 padding: 10px;
56 overflow-x: auto;
57}
58
59.sample-view {
60 border: 1px solid #eee;
61 border-left: 4px solid #eee;
62 padding: 10px;
63 overflow-x: auto;
64}
65
66p.sample, .sample {
67 background-color: #e7f4e9;
68 padding: 10px;
69 border-left: 4px solid #7bbd82;
70 color: #333;
71}
72
73p.sample-error, .sample-error {
74 background-color: #f4e7e7;
75 padding: 10px;
76 border-left: 4px solid lightcoral;
77 color: #333;
78}
79
80.example {
81 background-color: #e0f0ff;
82 padding: 10px;
83 border-left: 4px solid #4a90e2;
84 color: #333;
85}
86
87p.sample-warn, .sample-warn {
88 background-color: #f4f1e7;
89 padding: 10px;
90 border-left: 4px solid #bda97b;
91 color: #333;
92}
93
94code {
95 background-color: #f4f4f4;
96 padding: 2px 4px;
97 border-radius: 4px;
98 font-family: monospace;
99}
100
101span {
102 font-weight: bold;
103}
104
105article {
106 background-color: white;
107 padding: 20px;
108 margin-bottom: 10px;
109 border-radius: 8px;
110 box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
111}
112
113section {
114 margin-bottom: 20px;
115}
116
117section div {
118 width: 400px;
119 height: 50px;
120 margin: 20px auto;
121 color: white;
122 display: flex;
123 align-items: center;
124 justify-content: center;
125 font-size: 1.2rem;
126 background-color: lightgray;
127 border: 1px solid #ccc;
128}
129
130header h4 {
131 text-align: right;
132 color: #666;
133 font-size: 0.8em;
134 text-decoration: none;
135}
136
137header + pre {
138 margin: 0;
139 margin-top: -20px;
140 padding-top: 14px;
141 font-size: 0.9em;
142}
143
144header + .sample-view {
145 margin: 0;
146 margin-top: -16px;
147}
148
149.sample-view p {
150 margin: 0;
151 padding: 0;
152}
css-basics.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 Basics</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-basics.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Basics</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header><h2>CSS Selectors</h2></header>
19 <article>
20 <h3>Universal Selector : *</h3>
21 <section>
22 <header><h4>CSS</h4></header>
23<pre class="sample">
24* {
25 font-family:'Courier New', Courier, monospace;
26}
27</pre>
28 </section>
29 </article>
30 <article>
31 <h3>Element Selector</h3>
32 <section>
33 <header><h4>CSS</h4></header>
34<pre class="sample">
35strong {
36 color: red;
37}
38</pre>
39 <header><h4>HTML</h4></header>
40 <pre>This is <strong>sample</strong> text.</pre>
41 <header><h4>HTML+CSS</h4></header>
42 <section class="sample-view">
43 This is <strong>sample</strong> text.
44 </section>
45 </section>
46 </article>
47 <article>
48 <h3>ID Selector : #</h3>
49 <section>
50 <header><h4>CSS</h4></header>
51<pre class="sample">
52#example1 {
53 color: steelblue;
54}
55</pre>
56 <header><h4>HTML</h4></header>
57 <pre><span id="example1">This is sample text.</span></pre>
58 <header><h4>HTML+CSS</h4></header>
59 <section class="sample-view">
60 <span id="example1">This is sample text.</span>
61 </section>
62 </section>
63 </article>
64 <article>
65 <h3>Class Selector : .</h3>
66 <section>
67 <header><h4>CSS</h4></header>
68<pre class="sample">
69.example1 {
70 background-color: yellow;
71 font-weight: bold;
72}
73</pre>
74 <header><h4>HTML</h4></header>
75 <pre><span class="example1">This is sample text.</span></pre>
76 <header><h4>HTML+CSS</h4></header>
77 <section class="sample-view">
78 <section>
79 <span class="example1">This is sample text.</span>
80 </section>
81 </section>
82 </article>
83 <article>
84 <h3>Attribute Selector : [property=value]</h3>
85 <section>
86 <header><h4>CSS</h4></header>
87<pre class="sample">
88a[href="index.html"] {
89 font-weight: bold;
90}
91</pre>
92 <header><h4>HTML</h4></header>
93<pre>
94<a href="index.html">Home</a><br>
95<a href="about.html">About</a>
96</pre>
97 <header><h4>HTML+CSS</h4></header>
98 <section class="sample-view">
99 <a href="index.html">Home</a><br>
100 <a href="about.html">About</a>
101 </section>
102 </section>
103 </article>
104 <article>
105 <h3>Descendant Combinator</h3>
106 <section>
107 <header><h4>CSS</h4></header>
108<pre class="sample">
109span strong {
110 text-decoration: underline;
111}
112</pre>
113 <header><h4>HTML</h4></header>
114 <pre><span>This is <strong>sample</strong> text.</span></pre>
115 <header><h4>HTML+CSS</h4></header>
116 <section class="sample-view">
117 <span>This is <strong>sample</strong> text.</span>
118 </section>
119 </section>
120 </article>
121 <article>
122 <h3>Child Combinator : ></h3>
123 <section>
124 <header><h4>CSS</h4></header>
125<pre class="sample">
126span > em {
127 color: blue;
128}
129</pre>
130 <header><h4>HTML</h4></header>
131<pre>
132This is <em>sample</em> text.<br>
133<span>This is <em>another</em> text.</span><br>
134<span>This text is not <s><em>blue</em></s> in color.</span>
135</pre>
136 <header><h4>HTML+CSS</h4></header>
137 <section class="sample-view">
138 This is <em>sample</em> text.<br>
139 <span>This is <em>another</em> text.</span><br>
140 <span>This text is not <s><em>blue</em></s> in color.</span>
141 </section>
142 </section>
143 </article>
144 <article>
145 <h3> Next Sibling combinator : +</h3>
146 <section>
147 <header><h4>CSS</h4></header>
148<pre class="sample">
149br + b {
150 color: green;
151}
152</pre>
153 <header><h4>HTML</h4></header>
154<pre>
155<span>
156 This is <b>first text</b>.<br>
157 This is <b>second text</b>.<br>
158 <i>This</i> is <b>third text</b>.<br>
159</span>
160</pre>
161 <header><h4>HTML+CSS</h4></header>
162 <section class="sample-view">
163 <span>
164 This is <b>first text</b>.<br>
165 This is <b>second text</b>.<br>
166 <i>This</i> is <b>third text</b>.<br>
167 </span>
168 </section>
169 </section>
170 </article>
171 <article>
172 <h3>Subsequent Sibling Combinator : ~</h3>
173 <section>
174 <header><h4>CSS</h4></header>
175<pre class="sample">
176br ~ b {
177 color: steelblue;
178}
179</pre>
180 <header><h4>HTML</h4></header>
181<pre>
182<span>
183 This is <b>first text</b>.<br>
184 This is <b>second text</b>.<br>
185 <i>This</i> is <b>third text</b>.<br>
186</span>
187</pre>
188 <header><h4>HTML+CSS</h4></header>
189 <section class="sample-view">
190 <span>
191 This is <b>first text</b>.<br>
192 This is <b>second text</b>.<br>
193 <i>This</i> is <b>third text</b>.<br>
194 </span>
195 </section>
196 </section>
197 </article>
198 <article>
199 <h3>Pseudo Class ":" </h3>
200 <section>
201 <header><h4>CSS</h4></header>
202<pre class="sample">
203a:hover {
204 background-color: lightskyblue;
205}
206</pre>
207 <header><h4>HTML</h4></header>
208<pre>
209 <a href="#">Click here</a><br>
210</pre>
211 <header><h4>HTML+CSS</h4></header>
212 <section class="sample-view">
213 <a href="#">Click here</a><br>
214 </section>
215 </section>
216 </article>
217 <article>
218 <h3>Pseudo Element "::" </h3>
219 <section>
220 <header><h4>CSS</h4></header>
221<pre class="sample">
222u::before {
223 content: " ** ";
224 color: red;
225 font-weight: bold;
226}
227</pre>
228 <header><h4>HTML</h4></header>
229<pre>
230 <u>Sample Text</u>
231</pre>
232 <header><h4>HTML+CSS</h4></header>
233 <section class="sample-view">
234 <u>Sample Text</u>
235 </section>
236 </section>
237 </article>
238 </main>
239
240 <main>
241 <header><h2>Inheritance & Priority of CSS</h2></header>
242 <article>
243 <h3>CSS Specificity Rule</h3>
244 <section>
245 <header><h4>CSS Specificity</h4></header>
246 <section class="example">
247 <ol>
248 <li><b>Inline Styles</b>: Styles written directly within the HTML element.</li>
249 <li><b>ID Selectors</b>: e.g., <code>#id</code></li>
250 <li><b>Class, Attribute Selectors, and Pseudo-classes</b>: e.g., <code>.class</code>, <code>[attribute=value]</code>, <code>:hover</code>, etc.</li>
251 <li><b>Element Selectors</b>: e.g., <code>div</code>, <code>h1</code>, <code>p</code>, etc.</li>
252 <li><b>Universal Selector</b>: <code>*</code></li>
253 </ol>
254 </section>
255
256 <header><h4>How Specificity is Calculated</h4></header>
257 <section class="example">
258 <ol>
259 <li><b>Inline Styles</b>: Always have the highest specificity and are always applied.</li>
260 <li><b>ID Selectors</b>: Worth 100 points each.</li>
261 <li><b>Class, Attribute Selectors, and Pseudo-classes</b>: Worth 10 points each.</li>
262 <li><b>Element Selectors and Pseudo-elements</b>: Worth 1 point each.</li>
263 </ol>
264 </section>
265 </section>
266 </article>
267 <article>
268 <h3>Example of CSS Specificity Rule</h3>
269 <section>
270 <header><h4>CSS</h4></header>
271<pre class="sample">
272/* ID Selector */
273#header {
274 color: blue;
275}
276
277/* Class Selector */
278.header {
279 color: red;
280}
281
282/* Element Selector */
283h1 {
284 color: green;
285}
286</pre>
287 <header><h4>HTML</h4></header>
288 <pre><h1 id="header" class="header">Example of CSS Specificity Rule</h1></pre>
289 <header><h4>HTML+CSS</h4></header>
290 <section class="sample-view">
291 <h1 id="header" class="header">Example of CSS Specificity Rule</h1>
292 </section>
293 </section>
294 </article>
295 <article>
296 <h3>Using <code>!important</code> in CSS</h3>
297 <section>
298 <header><h4>CSS</h4></header>
299<pre class="sample">
300#important-header {
301 color: blue;
302}
303
304.important-header {
305 color: red !important;
306}
307</pre>
308 <header><h4>HTML</h4></header>
309 <pre><h1 id="important-header" class="important-header">Example of <code>!important</code></h1></pre>
310 <header><h4>HTML+CSS</h4></header>
311 <section class="sample-view">
312 <h1 id="important-header" class="important-header">Example of <code>!important</code></h1>
313 </section>
314 </section>
315 </article>
316 <article>
317 <h3>CSS Inheritance</h3>
318 <section>
319 <header><h4>CSS</h4></header>
320<pre class="sample">
321footer {
322 color: gray;
323}
324
325p {
326 color: black;
327}
328</pre>
329 <header><h4>HTML</h4></header>
330<pre>
331<footer>
332 <p>This paragraph's text will be black.</p>
333 <span>This text will be gray.</span>
334</footer>
335</pre>
336 <header><h4>HTML+CSS</h4></header>
337 <section class="sample-view">
338 <footer>
339 <p>This paragraph's text will be black.</p>
340 <span>This text will be gray.</span>
341 </footer>
342 </section>
343 </section>
344 </article>
345 <article>
346 <h3>Cascading Styles</h3>
347 <section>
348 <header><h4>CSS</h4></header>
349<pre class="sample">
350.text {
351 color: red;
352}
353
354.text {
355 color: blue;
356}
357</pre>
358 <header><h4>HTML</h4></header>
359 <pre><p class="text">This text will be blue.</p></pre>
360 <header><h4>HTML+CSS</h4></header>
361 <section class="sample-view">
362 <p class="text">This text will be blue.</p>
363 </section>
364 </section>
365 </article>
366
367</body>
368</html>
ไวยกรณ์พื้นฐาน
1selector {
2 property: value;
3}
โครงสร้างพื้นฐานของ CSS ประกอบด้วย selector
, property
, และ value
แต่ละคู่ของคุณสมบัติและค่าจะตามด้วยเครื่องหมายอัฒภาค
selector
กำหนดว่า HTML element ใดที่ style จะถูกนำไปใช้ ในตัวอย่างนี้ สไตล์จะถูกใช้กับทุก<header>
องค์ประกอบproperty
กำหนด property ของ style ที่จะถูกเปลี่ยนแปลง เช่น สีหรือขนาดตัวอักษรPadding
และcolor
คือคุณสมบัติในตัวอย่างนี้value
คือค่าที่ถูกกำหนดให้กับ property ตัวอย่างเช่น สำหรับสี อาจเป็นwhite
หรือ#9cf
และสำหรับขนาดของ margin อาจเป็น20px
ตัวเลือก
CSS selectors คือรูปแบบในการเลือก HTML elements โดยการใช้ selectors, คุณสามารถนำ style ไปใช้กับ elements เฉพาะหรือกลุ่มของ elements ได้
ตัวเลือกสากล
1/* Universal Selector : "*" */
2* {
3 font-family:'Courier New', Courier, monospace;
4}
*
เป็น universal selector ที่จะนำไปใช้กับ elements ทั้งหมด- ในตัวอย่างนี้ แบบอักษรสำหรับทุกองค์ประกอบจะถูกเปลี่ยน
ตัวเลือกองค์ประกอบ
1/* Element Selector */
2strong {
3 color: red;
4}
- ตัวเลือกองค์ประกอบคือ ตัวเลือกที่ใช้กับแท็ก HTML เฉพาะโดยการเขียนชื่อแท็ก HTML นั้น
- ในตัวอย่างนี้ สีของข้อความในองค์ประกอบ
<strong>
จะเปลี่ยนเป็นสีแดง
ตัวเลือก ID
1/* ID Selector : "#" */
2#example1 {
3 color: steelblue;
4}
#
เป็น ID selector ที่ใช้ในการเลือก elements โดย ID- ID มีความเฉพาะตัว ดังนั้นแต่ละหน้าเว็บจะมีได้เพียงหนึ่งองค์ประกอบที่มี ID เดียวกัน
ตัวเลือกคลาส
1/* Class Selector : "." */
2.example1 {
3 background-color: yellow;
4 font-weight: bold;
5}
.
เป็น class selector ที่ใช้ในการเลือก elements โดย class- เพิ่มแอตทริบิวต์ class ให้กับองค์ประกอบ HTML เพื่อใช้สไตล์กับองค์ประกอบที่เป็นส่วนหนึ่งของ class นั้น
ตัวเลือกคุณสมบัติ
1/* Attribute Selector : [property=value] */
2a[href="index.html"] {
3 font-weight: bold;
4}
[href="index.html"]
คือตัวเลือกแอตทริบิวต์ที่เลือกองค์ประกอบที่มีแอตทริบิวต์เฉพาะ- ในตัวอย่างนี้, ข้อความของ element
<a>
ที่มีค่า attributehref
เป็นindex.html
จะถูกตั้งค่าให้เป็นตัวหนา
คอมบิเนเตอร์
ตัวรวม (Combinators) ถูกใช้เพื่อรวมตัวเลือกหลายตัวเข้าด้วยกันเพื่อเลือกองค์ประกอบที่มีความสัมพันธ์เฉพาะ ในขณะที่ตัวเลือกเลือกองค์ประกอบเป็นรายตัว ตัวรวม (Combinator) ทำหน้าที่กำหนดความสัมพันธ์โครงสร้างระหว่างองค์ประกอบ
ผู้สืบทอดคอมบิเนเตอร์
1/* Descendant Combinator : " " */
2span strong {
3 text-decoration: underline;
4}
- ตัวรวมลูกหลาน (Descendant Combinator) ใช้สไตล์กับทุกองค์ประกอบที่กำหนดภายในองค์ประกอบเฉพาะ
- ในตัวอย่างนี้ เส้นใต้จะถูกใช้กับองค์ประกอบ
<strong>
ที่อยู่ภายในองค์ประกอบ<span>
ลูกคอมบิเนเตอร์
1/* Child Combinator : ">" */
2span > em {
3 color: blue;
4}
- เครื่องหมาย
>
ระหว่างspan
และem
ถูกใช้เป็นตัวรวมลูก (Child Combinator) ในตัวอย่างนี้ สไตล์ถูกใช้เฉพาะกับองค์ประกอบ<em>
ที่เป็นลูกโดยตรงขององค์ประกอบ<span>
ในตัวอย่างบรรทัดที่สาม เนื่องจากมีแท็ก<s>
ระหว่าง<span>
และ<em>
สไตล์จะไม่ถูกใช้
คอมบิเนเตอร์พี่น้องที่อยู่ติดกัน
1/* Next Sibling combinator */
2br + b {
3 color: green;
4}
- adjacent sibling combinator ที่ใช้สัญลักษณ์
+
จะนำ style ไปใช้กับองค์ประกอบพี่น้องที่ปรากฎหลังจากองค์ประกอบที่เลือกทันที - ในตัวอย่างนี้ สีของข้อความจะเปลี่ยนเป็นสีเขียวก็ต่อเมื่อแท็ก
<b>
ปรากฏทันทีหลังแท็ก<br>
คอมบิเนเตอร์พี่น้องทั่วไป
1/* Subsequent Sibling Combinator */
2br ~ b {
3 color: steelblue;
4}
- general sibling combinator ที่ใช้สัญลักษณ์
~
จะเลือกองค์ประกอบพี่น้องทั้งหมดที่ปรากฎหลังจากองค์ประกอบที่เลือก - ในตัวอย่างนี้ สีของข้อความในทุกแท็ก
<b>
ที่ปรากฏหลัง<br>
จะเป็นเฉดสีน้ำเงิน
คลาสเทียม
1/* Pseudo Class : ":" */
2a:hover {
3 background-color: lightskyblue;
4}
:
ใช้สำหรับเลือก pseudo-classes- รายละเอียดเกี่ยวกับ pseudo-class จะอธิบายไว้ในบทความอื่น
พรีโดเอเลเมนต์
1/* Pseudo Element : "::" */
2u::before {
3 content: " ** ";
4 color: red;
5 font-weight: bold;
6}
::
ใช้สำหรับเลือก pseudo-elements- รายละเอียดเกี่ยวกับ pseudo-element ก็จะอธิบายไว้ในบทความอื่นเช่นกัน
ความเฉพาะเจาะจงของ CSS
ลำดับความสำคัญใน CSS เป็นสิ่งสำคัญในการเข้าใจการทำงานของ CSS และป้องกันการใช้สไตล์ที่ไม่คาดคิด ลำดับความสำคัญของ CSS กำหนดว่ากฎใดจะมีผลมากที่สุดเมื่อมีกฎ CSS หลายตัวถูกใช้กับองค์ประกอบเดียวกัน ความสำคัญของ CSS ถูกกำหนดหลักๆ โดยปัจจัยต่อไปนี้
- สไตล์แบบอินไลน์: สไตล์ที่เขียนไว้โดยตรงภายใน HTML
- ตัวเลือก ID :
#id
- คลาส, ตัวเลือกแอตทริบิวต์, คลาสสะเปกตรัม :
.class
,[attribute=value]
,:hover
, etc - ตัวเลือกองค์ประกอบ :
div
,h1
,p
, etc - ตัวเลือกสากล :
*
ยิ่งอยู่สูงในรายการ ลำดับความสำคัญยิ่งสูง และยิ่งอยู่ต่ำ ลำดับความสำคัญยิ่งต่ำ
วิธีคำนวณความจำเพาะ
ความสำคัญของ CSS ถูกคำนวณโดยการหาค่าถ่วงน้ำหนักของแต่ละตัวเลือก น้ำหนักของแต่ละตัวเลือกแสดงดังนี้
- Inline styles: Inline styles มีอิทธิพลมากที่สุดและได้รับความสำคัญสูงสุดเสมอ
- ID selectors: ID selector หนึ่งตัวเท่ากับ '100 คะแนน'
- Class, attribute selectors, pseudo-classes: เหล่านี้เท่ากับ '10 คะแนน'
- Element selectors, pseudo-elements: เท่ากับ '1 คะแนน'
กฎที่มีคะแนนสูงสุดจะถูกใช้
ตัวอย่าง:
1/* ID Selector */
2#header {
3 color: blue;
4}
5
6/* Class Selector */
7.header {
8 color: red;
9}
10
11/* Element Selector */
12h1 {
13 color: green;
14}
1<h1 id="header" class="header">Example of CSS Specificity Rule</h1>
ที่นี่ แท็ก <h1>
มีการนำสไตล์ที่แตกต่างกันสามแบบมาใช้:
- ตัวเลือกองค์ประกอบ
h1
(1 คะแนน) - ตัวเลือกคลาส
.header
(10 คะแนน) - ตัวเลือก ID
#header
(100 คะแนน)
ในกรณีนี้ เนื่องจาก ID selector มีลำดับที่สูงสุด color: blue
จึงถูกใช้
การแทนที่ความสำคัญด้วย !important
ใช้ !important
หากต้องการบังคับใช้สไตล์และไม่สนใจลำดับที่ทั่วไป !important
มีอิทธิพลมากที่สุดต่อกฎทั้งหมด แซงหน้าทุกอย่างอื่น
ตัวอย่าง:
1#important-header {
2 color: blue;
3}
4
5.important-header {
6 color: red !important;
7}
1<h1 id="important-header" class="important-header">Example of <code>!important</code></h1>
- ที่นี่กำหนด
color: red !important;
ดังนั้นcolor: red
จะมีความสำคัญเป็นอันดับแรก
การสืบทอดและความสำคัญ
CSS มีความสามารถในการสืบทอดสไตล์จากองค์ประกอบพาเรนต์ไปยังองค์ประกอบลูก ตัวอย่างเช่น คุณสมบัติอย่างเช่น color
และ font-family
จะถูกสืบทอดโดยอัตโนมัติ อย่างไรก็ตาม หากมีการตั้งสไตล์ให้กับองค์ประกอบลูกเฉพาะ สไตล์ที่ถูกใช้ตรงๆ จะมีลำดับสูงกว่าสไตล์ที่สืบทอดมา
ตัวอย่าง:
1footer {
2 color: gray;
3}
4
5p {
6 color: black;
7}
1<footer>
2 <p>This paragraph's text will be black.</p>
3 <span>This text will be gray.</span>
4</footer>
- ที่นี่
color: gray;
ถูกใช้กับแท็กfooter
แต่เนื่องจากcolor: black;
ถูกกำหนดโดยเฉพาะสำหรับองค์ประกอบp
ข้อความขององค์ประกอบp
จะแสดงเป็นสีดำ ในขณะเดียวกัน องค์ประกอบspan
จะรับค่าคุณสมบัติcolor
จากfooter
และปรากฏเป็นสีเทา
การเรียงลำดับและความสำคัญของ CSS
ตามชื่อ 'Cascading Style Sheets (CSS)' บ่งบอกว่า สไตล์จะ 'ซ้อนทับ' หมายความว่าถ้ามีสไตล์ชีทหรือกฎหลายชุด กฎที่กำหนดทีหลังจะมีความสำคัญกว่า หากความสำคัญเท่ากัน สไตล์ที่ถูกเขียนทีหลังจะถูกใช้
ตัวอย่าง:
1.text {
2 color: red;
3}
4
5.text {
6 color: blue;
7}
1<p class="text">This text will be blue.</p>
- ในที่นี้
color: blue;
ถูกกำหนดทีหลัง ดังนั้นข้อความจึงแสดงผลเป็นสีน้ำเงิน
สรุป
ความสำคัญของ CSS ถูกกำหนดโดยใช้อัลกอริทึมเช่น specificity แต่ในที่นี้เราได้พิจารณาแค่ส่วนพื้นฐานเท่านั้น
กฎพื้นฐานมีดังนี้:
- สไตล์ภายใน มีความสำคัญสูงสุดเสมอ
- ตัวเลือก ID มีความสามารถสูงและมีความสำคัญมากกว่าคลาสและแท็ก
- ตัวเลือกคลาส และ pseudo-classes มีความสำคัญในระดับปานกลาง
- ตัวเลือกแท็ก และ pseudo-elements มีความสำคัญในระดับต่ำสุด
- !important จะลบล้างความสำคัญปกติและบังคับใช้สไตล์นั้น
คุณสามารถติดตามบทความข้างต้นโดยใช้ Visual Studio Code บนช่อง YouTube ของเรา กรุณาตรวจสอบช่อง YouTube ด้วย