सीएसएस `@` नियम
यह लेख CSS @
नियमों को समझाता है।
आप @import
और @media
जैसे @
नियमों के उपयोग और इन्हें लिखने के तरीके के बारे में जान सकते हैं।
YouTube Video
प्रीव्यू के लिए HTML
css-at-rule.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 At Rules</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-at-rule.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS At(@) Rules</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header><h2>CSS At(@) Rules</h2></header>
19 <article>
20 <h3>@import</h3>
21 <section>
22 <header><h4>CSS</h4></header>
23<pre class="sample">
24@import url('styles.css');
25</pre>
26 </section>
27 </article>
28 <article>
29 <h3>@media</h3>
30 <section>
31 <header><h4>CSS</h4></header>
32<pre class="sample">
33@media screen and (max-width: 600px) {
34 body {
35 background-color: lightblue;
36 }
37}
38</pre>
39 </section>
40 </article>
41 <article>
42 <h3>@media Example(Screen Width)</h3>
43 <section>
44 <header><h4>CSS</h4></header>
45<pre class="sample">
46@media (min-width: 600px) {
47 body {
48 background-color: lightblue;
49 }
50}
51@media (max-width: 599px) {
52 body {
53 background-color: lightpink;
54 }
55}
56</pre>
57 </section>
58 </article>
59 <article>
60 <h3>@media Example(Orientation)</h3>
61 <section>
62 <header><h4>CSS</h4></header>
63<pre class="sample">
64@media (orientation: portrait) {
65 body {
66 font-size: 18px;
67 }
68}
69@media (orientation: landscape) {
70 body {
71 font-size: 16px;
72 }
73}
74</pre>
75 </section>
76 </article>
77 <article>
78 <h3>@media Example(Resolution)</h3>
79 <section>
80 <header><h4>CSS</h4></header>
81<pre class="sample">
82@media (min-resolution: 2dppx) {
83 body {
84 background-image: url('high-res-image.png');
85 }
86}
87</pre>
88 </section>
89 </article>
90 <article>
91 <h3>@media Example(AND Condition)</h3>
92 <section>
93 <header><h4>CSS</h4></header>
94<pre class="sample">
95@media (min-width: 600px) and (orientation: portrait) {
96 body {
97 background-color: lightgreen;
98 }
99}
100</pre>
101 </section>
102 </article>
103 <article>
104 <h3>@media Example(OR Condition)</h3>
105 <section>
106 <header><h4>CSS</h4></header>
107<pre class="sample">
108@media (max-width: 400px), (orientation: landscape) {
109 body {
110 color: gray;
111 }
112}
113</pre>
114 </section>
115 </article>
116 <article>
117 <h3>@media Example(NOT Condition)</h3>
118 <section>
119 <header><h4>CSS</h4></header>
120<pre class="sample">
121@media not all and (min-width: 600px) {
122 body {
123 font-size: 14px;
124 }
125}
126</pre>
127 </section>
128 </article>
129 <article>
130 <h3>@font-face</h3>
131 <section>
132 <header><h4>CSS</h4></header>
133<pre class="sample">
134@font-face {
135 font-family: 'CustomFont';
136 src: url('customfont.woff2') format('woff2'),
137 url('customfont.woff') format('woff');
138}
139</pre>
140 </section>
141 </article>
142 <article>
143 <h3>@keyframes</h3>
144 <section>
145 <header><h4>CSS</h4></header>
146<pre class="sample">
147@keyframes slidein {
148 from {
149 transform: translateX(100%);
150 }
151 to {
152 transform: translateX(0%);
153 }
154}
155
156div {
157 animation: slidein 2s ease-in-out;
158}
159</pre>
160 </section>
161 </article>
162 <article>
163 <h3>@supports</h3>
164 <section>
165 <header><h4>CSS</h4></header>
166<pre class="sample">
167@supports (display: grid) {
168 .container {
169 display: grid;
170 }
171}
172</pre>
173 </section>
174 </article>
175 <article>
176 <h3>@page</h3>
177 <section>
178 <header><h4>CSS</h4></header>
179<pre class="sample">
180@page {
181 size: A4;
182 margin: 2cm;
183}
184</pre>
185 </section>
186 </article>
187 <article>
188 <h3>@charset</h3>
189 <section>
190 <header><h4>CSS</h4></header>
191<pre class="sample">
192@charset "UTF-8";
193</pre>
194 </section>
195 </article>
196 <article>
197 <h3>@layer</h3>
198 <section>
199 <header><h4>CSS</h4></header>
200<pre class="sample">
201@layer reset {
202 h1 {
203 margin: 0;
204 }
205}
206@layer base {
207 h1 {
208 font-size: 24px;
209 color: blue;
210 }
211}
212@layer theme {
213 h1 {
214 color: red;
215 }
216}
217</pre>
218 <header><h4>HTML</h4></header>
219<pre>
220<h1>CSS Layer Test</h1>
221<p>
222 This page demonstrates how to apply styles to
223 the <code>&lt;h1&gt;</code> element using CSS layers.
224</p>
225</pre>
226 <header><h4>HTML+CSS</h4></header>
227 <section class="sample-view">
228 <h1>CSS Layer Test</h1>
229 <p>
230 This page demonstrates how to apply styles to
231 the <code><h1></code> element using CSS layers.
232 </p>
233 </section>
234 </section>
235 </article>
236 <article>
237 <h3>@layer with order</h3>
238 <section>
239 <header><h4>CSS</h4></header>
240<pre class="sample">
241@layer theme, base, reset;
242
243@layer reset {
244 h1 {
245 margin: 0;
246 }
247}
248@layer base {
249 h1 {
250 font-size: 24px;
251 color: blue;
252 }
253}
254@layer theme {
255 h1 {
256 color: red;
257 }
258}
259</pre>
260 <header><h4>HTML</h4></header>
261<pre>
262<h1>CSS Layer Test</h1>
263<p>
264 This page demonstrates how to apply styles to
265 the <code>&lt;h1&gt;</code> element using CSS layers.
266</p>
267</pre>
268 <header><h4>HTML+CSS</h4></header>
269 <section class="sample-view">
270 <h1>CSS Layer Test</h1>
271 <p>
272 This page demonstrates how to apply styles to
273 the <code><h1></code> element using CSS layers.
274 </p>
275 </section>
276 </section>
277 </article>
278 <article>
279 <h3>@import & @layer</h3>
280 <section>
281 <header><h4>CSS</h4></header>
282<pre class="sample">
283@import url('css/reset.css') layer(reset);
284@import url('css/base.css') layer(base);
285@import url('css/theme.css') layer(theme);
286</pre>
287 <header><h4>HTML</h4></header>
288<pre>
289<h1>CSS Layer Test</h1>
290<p>
291 This page demonstrates how to apply styles to
292 the <code>&lt;h1&gt;</code> element using CSS layers.
293</p>
294</pre>
295 <header><h4>HTML+CSS</h4></header>
296 <section class="sample-view">
297 <h1>CSS Layer Test</h1>
298 <p>
299 This page demonstrates how to apply styles to
300 the <code><h1></code> element using CSS layers.
301 </p>
302 </section>
303 </section>
304 </article>
305 </main>
306</body>
307</html>
सीएसएस @
नियम
CSS @
नियम (एट-रूल्स) विशेष निर्देश होते हैं जो स्टाइलशीट्स के व्यवहार और अनुप्रयोग स्थितियों को नियंत्रित करने के लिए उपयोग किए जाते हैं। सामान्य CSS प्रॉपर्टी के विपरीत, @
नियम शर्तों के अनुसार शैलियों को लागू करते हैं या बाहरी संसाधनों को आयात करते हैं। प्रतिनिधित्व करने वाले @
नियमों में @media
, @import
, और @keyframes
जैसे अन्य नियम शामिल हैं।
उदाहरणात्मक @
नियमों के प्रकार
@import
1@import url('styles.css');
@import
का उपयोग अन्य CSS फ़ाइलों को वर्तमान स्टाइलशीट में आयात करने के लिए किया जाता है। यह बाहरी CSS फ़ाइलों को आसानी से पुन: उपयोग करने की अनुमति देता है।
बिन्दु:
@import
को स्टाइलशीट की शुरुआत में लिखा जाना चाहिए।- प्रदर्शन पर इसके प्रभाव के कारण इसे बड़े प्रोजेक्ट्स में टालना चाहिए।
@media
1@media screen and (max-width: 600px) {
2 body {
3 background-color: lightblue;
4 }
5}
@media
का उपयोग मीडिया क्वेरी के माध्यम से विशिष्ट परिस्थितियों (जैसे स्क्रीन चौड़ाई, रिज़ॉल्यूशन, आदि) के आधार पर शैलियों को लागू करने के लिए किया जाता है। इसे उत्तरदायी डिज़ाइन (रेस्पॉन्सिव डिज़ाइन) को लागू करने में अक्सर उपयोग किया जाता है।
आम तौर पर उपयोग की जाने वाली शर्तें
निम्नलिखित शर्तें मीडिया क्वेरी में अक्सर उपयोग की जाती हैं।
चौड़ाई के आधार पर शर्तें
1@media (min-width: 600px) {
2 body {
3 background-color: lightblue;
4 }
5}
6@media (max-width: 599px) {
7 body {
8 background-color: lightpink;
9 }
10}
- न्यूनतम चौड़ाई (
min-width
) शैली लागू करती है जब चौड़ाई निर्दिष्ट मान के बराबर या उससे अधिक होती है। - अधिकतम चौड़ाई (
max-width
) शैली लागू करती है जब चौड़ाई निर्दिष्ट मान के बराबर या उससे कम होती है।
उपकरण का उन्मुखीकरण (orientation
)
1@media (orientation: portrait) {
2 body {
3 font-size: 18px;
4 }
5}
6@media (orientation: landscape) {
7 body {
8 font-size: 16px;
9 }
10}
- उपकरण का उन्मुखीकरण (
orientation
) को पोर्ट्रेट या लैंडस्केप पर सेट किया जा सकता है।
संकल्प (resolution
)
1@media (min-resolution: 2dppx) {
2 body {
3 background-image: url('high-res-image.png');
4 }
5}
- संकल्प (
resolution
) के आधार पर शैली लागू की जा सकती है। - इस उदाहरण में, उच्च-संकल्प प्रदर्शन के लिए एक उच्च-संकल्प पृष्ठभूमि छवि निर्दिष्ट की गई है।
शर्तों का संयोजन
मीडिया क्वेरी में कई शर्तों को भी संयोजित किया जा सकता है।
और शर्त (and
)
1@media (min-width: 600px) and (orientation: portrait) {
2 body {
3 background-color: lightgreen;
4 }
5}
- और शर्त तब शैली लागू करती है जब सभी शर्तें पूरी हों।
- इस उदाहरण में, जब स्क्रीन की चौड़ाई
600px
या अधिक हो और पोर्ट्रेट उन्मुखीकरण में हो, तोbody
की पृष्ठभूमि का रंग हल्का हरा सेट किया जाता है।
या शर्त (,
)
1@media (max-width: 400px), (orientation: landscape) {
2 body {
3 color: gray;
4 }
5}
- या शर्त तब शैली लागू करती है जब कोई भी शर्त पूरी हो।
- इस उदाहरण में, जब स्क्रीन की चौड़ाई
400px
या कम हो, या लैंडस्केप उन्मुखीकरण में हो, तोbody
के टेक्स्ट का रंग ग्रे सेट किया जाता है।
नहीं शर्त (not
)
1@media not all and (min-width: 600px) {
2 body {
3 font-size: 14px;
4 }
5}
- नहीं शर्त तब शैली लागू करती है जब शर्त पूरी न हो।
- इस उदाहरण में, सभी उपकरणों के लिए, जब स्क्रीन की चौड़ाई
600px
या अधिक न हो, तोbody
के फ़ॉन्ट का आकार14px
सेट किया जाता है।
@font-face
1@font-face {
2 font-family: 'CustomFont';
3 src: url('customfont.woff2') format('woff2'),
4 url('customfont.woff') format('woff');
5}
@font-face
का उपयोग वेब फ़ॉन्ट्स को परिभाषित करने के लिए किया जाता है। इस नियम के साथ, बाहरी फ़ॉन्ट्स को डाउनलोड और वेबपृष्ठ पर लागू किया जा सकता है।
- मानक फ़ॉन्ट्स पर निर्भर होने के बजाय कस्टम फ़ॉन्ट्स का उपयोग किया जा सकता है।
- फ़ॉन्ट फ़ाइल के आकार पर ध्यान देना आवश्यक है।
@keyframes
1@keyframes slidein {
2 from {
3 transform: translateX(100%);
4 }
5 to {
6 transform: translateX(0%);
7 }
8}
9
10div {
11 animation: slidein 2s ease-in-out;
12}
@keyframes
का उपयोग CSS एनीमेशन बनाने के लिए किया जाता है। एनीमेशन के प्रत्येक चरण में शैलियों को निर्दिष्ट किया जा सकता है।
- यह एनीमेशन के विस्तृत नियंत्रण की अनुमति देता है।
- इसे
animation
प्रॉपर्टी के साथ संयोजन में उपयोग किया जाता है।
@supports
1@supports (display: grid) {
2 .container {
3 display: grid;
4 }
5}
@supports
यह जांचता है कि क्या ब्राउज़र द्वारा कुछ CSS सुविधाओं को समर्थन किया जाता है और परिणाम के आधार पर शैलियाँ लागू करता है।
- यह पुराने और नए ब्राउज़रों के बीच संगतता बनाए रखने में मदद करता है।
- फीचर डिटेक्शन के माध्यम से फॉलबैक लागू किए जा सकते हैं।
@page
1@page {
2 size: A4;
3 margin: 2cm;
4}
@page
का उपयोग प्रिंटिंग के लिए शैलियों को नियंत्रित करने के लिए किया जाता है। यह पृष्ठ के आकार और मार्जिन सेट करने के लिए उपयोगी है।
बिन्दु:
- इसे प्रिंट मीडिया के लिए शैलियों को सेट करने के लिए उपयोग किया जाता है।
- आप हेडर और फुटर जैसे विशिष्ट पृष्ठ तत्वों की शैलियों को भी अनुकूलित कर सकते हैं।
@charset
1@charset "UTF-8";
@charset
CSS फ़ाइल की कैरेक्टर एन्कोडिंग निर्दिष्ट करता है। मुख्य रूप से UTF-8 निर्दिष्ट किया जाता है।
- इसे शैली पत्र (स्टाइल शीट) की शुरुआत में निर्दिष्ट करना चाहिए।
- यह विशेष रूप से बहुभाषी वेबसाइटों के लिए उपयोग किया जाता है।
@layer
@layer
एक नया @
नियम है, जिसका उपयोग CSS में स्टाइलशीट्स की प्राथमिकता व्यवस्थित करने के लिए किया जाता है, जिससे एकाधिक CSS नियमों को लेयर द्वारा समूहीकृत और प्रबंधित किया जा सकता है। यह नियम बड़े स्टाइलशीट्स या ऐसे प्रोजेक्ट्स में विशेष रूप से उपयोगी है जिनमें कई बाहरी स्टाइलशीट्स शामिल होती हैं, जिससे CSS संघर्षों से बचना आसान हो जाता है।
CSS स्टाइलशीट्स में, प्राथमिकता आमतौर पर 'कैस्केड' द्वारा निर्धारित की जाती है, लेकिन @layer
का उपयोग करके आप शैली प्राथमिकता को अधिक लचीले और स्पष्ट रूप से नियंत्रित कर सकते हैं।
मूल वाक्यविन्यास
1@layer <layer-name> {
2 /* Styles within this layer */
3}
@layer
का उपयोग करके शैलियों को परिभाषित करते समय, सिंटैक्स इस प्रकार होगा।
1@layer reset {
2 h1 {
3 margin: 0;
4 }
5}
6@layer base {
7 h1 {
8 font-size: 24px;
9 color: blue;
10 }
11}
12@layer theme {
13 h1 {
14 color: red;
15 }
16}
- उदाहरण के लिए, आप निम्नानुसार विभिन्न परतों में शैलियों को परिभाषित कर सकते हैं:
- इस मामले में,
reset
लेयर,base
लेयर औरtheme
लेयर क्रमशः परिभाषित हैं, और अंतिमh1
स्टाइलtheme
लेयर की सामग्री द्वारा निर्धारित किया जाता है, जिससेcolor: red;
लागू होता है।
कई परतों की प्राथमिकता
@layer
की शक्तिशाली विशेषता यह है कि यह लेयरों के बीच शैलियों की प्राथमिकता को प्रबंधित करने की अनुमति देता है। ऊपर दिए गए उदाहरण में, क्योंकि theme
लेयर को अंतिम रूप में परिभाषित किया गया है, यह अन्य लेयरों में परिभाषित शैलियों को अधिलेखित कर देता है।
इसके अतिरिक्त, बाहरी स्टाइलशीट्स या अन्य लाइब्रेरी से लोड की गई CSS फ़ाइलों में प्राथमिकता कैस्केड को प्रबंधित करने के लिए @layer
का उपयोग किया जा सकता है।
वैश्विक प्राथमिकता
1@layer theme, base, reset;
2
3@layer reset {
4 h1 {
5 margin: 0;
6 }
7}
8@layer base {
9 h1 {
10 font-size: 24px;
11 color: blue;
12 }
13}
14@layer theme {
15 h1 {
16 color: red;
17 }
18}
- लेयरों का क्रम CSS कैस्केड के भीतर प्राथमिकता प्राप्त करता है, जिसमें बाद में परिभाषित शैलियों को प्राथमिकता मिलती है। उदाहरण के लिए, आप लेयरों के क्रम को इस प्रकार लिखकर स्पष्ट रूप से निर्दिष्ट कर सकते हैं।
- यह सुनिश्चित करता है कि शैलियाँ
थीम
,बेस
, औररीसेट
के क्रम में लागू की जाएँ, भले हीथीम
लेयर पहले परिभाषित की गई हो।
@layer
के साथ @import
का उपयोग करना
1@import url('css/reset.css') layer(reset);
2@import url('css/base.css') layer(base);
3@import url('css/theme.css') layer(theme);
@import
और@layer
को मिलाकर, बाहरी स्टाइलशीट्स में लेयरों का प्रबंधन करना भी संभव है।- यह बाहरी स्टाइलशीट्स को विभिन्न लेयरों में रखने की अनुमति देता है, उनकी प्राथमिकता का प्रबंधन करता है।
@layer
की प्रमुख बिंदु
@layer
CSS शैली प्रबंधन में एक शक्तिशाली उपकरण है, जो बड़े प्रोजेक्ट्स में शैली संघर्षों से बचने के लिए एक सुविधाजनक तरीका प्रदान करता है। यह विशेष रूप से कई शैली स्रोतों से निपटने पर शैली प्राथमिकता को संक्षेप में प्रबंधित करने के लिए उल्लेखनीय है। निम्नलिखित बातों को ध्यान में रखना अच्छा होगा।
- लेयरों द्वारा शैलियों को विभाजित करके, आप कैस्केड प्राथमिकता को नियंत्रित कर सकते हैं।
@import
के साथ इसका उपयोग करके, आप बाहरी CSS फ़ाइलों को लेयर प्रबंधन में शामिल कर सकते हैं।- कई परतों को परिभाषित करने से शैली संघर्षों को रोका जा सकता है।
यह शैली संघर्षों को न्यूनतम करता है और जटिल शैली प्रबंधन की आवश्यकता वाले परियोजनाओं में भी कुशल डिज़ाइन की अनुमति देता है।
@layer
का उपयोग करने के उदाहरण
@layer
का उपयोग करते समय, आप लेयर नामकरण परंपराओं, आयात के क्रम और प्रोजेक्ट के पैमाने के अनुसार उपयुक्त लेयर्स की संख्या जैसे बिंदुओं पर ध्यान दे सकते हैं।
लेयर का नामकरण
लेयर के नाम प्रोजेक्ट की संरचना और उद्देश्य के आधार पर तय किए जाते हैं। लेयर नामकरण के सामान्य उदाहरण इस प्रकार हैं:।
1@layer base, layout, components, utilities;
base
: एक लेयर जो रीसेट्स और टाइपोग्राफी जैसे बुनियादी स्टाइल्स को परिभाषित करती है।layout
: एक लेयर जो पेज लेआउट और ग्रिड सिस्टम के लिए स्टाइल्स को परिभाषित करती है।components
: एक लेयर जो बटन और कार्ड जैसे पुन: उपयोग करने योग्य UI घटकों के लिए स्टाइल्स को परिभाषित करती है।utilities
: एक लेयर जो उपयोगिता वर्गों के लिए स्टाइल्स को परिभाषित करती है (जैसे,margin
,padding
,text-center
)।
स्पष्ट आयात क्रम
1@import url('base.css') layer(base);
2@import url('layout.css') layer(layout);
3@import url('components.css') layer(components);
4@import url('utilities.css') layer(utilities);
- जब कई CSS फाइलों को संभाल रहे हों, तो
@import
का उपयोग करके एक स्पष्ट क्रम सेट करना महत्वपूर्ण है। यह क्रम सुनिश्चित करता है कि इच्छित प्राथमिकता बनाए रखी जाए।
लेयर का समेकन और सरलीकरण
1@layer common {
2 body {
3 margin: 0;
4 padding: 0;
5 box-sizing: border-box;
6 }
7
8 .container {
9 max-width: 1200px;
10 margin: 0 auto;
11 }
12}
- छोटे पैमाने के प्रोजेक्ट्स में, लेयरों की संख्या को सीमित करना जटिलता को कम कर सकता है।
सारांश
CSS @
नियम वेब डिज़ाइन में लचीली शैली अप्लिकेशन और प्रदर्शन वृद्धि का समर्थन करने वाले शक्तिशाली उपकरण हैं। @media
, @keyframes
, और @supports
डिवाइस के भिन्नताओं और ब्राउज़र संगतता को ध्यान में रखते हुए शैली प्रदान करना आसान बनाते हैं। इसके अतिरिक्त, @import
और @font-face
समृद्ध अभिव्यक्ति के लिए बाहरी संसाधनों को कुशलतापूर्वक सम्मिलित करने की अनुमति देते हैं।
इन @
नियमों को समझना और सही तरीके से उनका उपयोग करना अधिक प्रभावी CSS कोडिंग को सक्षम करता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।