CSS कैसे काम करता है

एक साधारण HTML पृष्ठ ब्राउज़र की अपनी राय के साथ आता है: नीले रंग की रेखांकित लिंक, काली serif-मुक्त पाठ, शीर्षक जो आकार में कम होते हैं। CSS यही है कि आप उस कच्चे संरचना को कैसे लेते हैं और तय करते हैं कि वह अलग तरीके से कैसे दिखना चाहिए। लेकिन आप एक भी रंग बदल सकते हैं या एक भी बॉक्स को हिला सकते हैं, आपको पहले जानना होगा कि आपकी शैलियां पृष्ठ पर कैसे पहुंचती हैं, और जब आपके दो नियम एक ही तत्व के बारे में असहमत हों तो क्या होता है।
किसी पृष्ठ पर CSS संलग्न करना
एक पृष्ठ में CSS जोड़ने के तीन तरीके हैं, और अंतर ज्यादातर इस बारे में है कि आप शैलियां कहां लिखते हैं।
पहला एक inline style है, जो style विशेषता के साथ सीधे तत्व पर लिखा जाता है:
<p style="color: teal;">एक ही फ़िरोज़ी अनुच्छेद।</p>वह एक अनुच्छेद को स्टाइल करता है और कुछ नहीं। दूसरा तरीका पृष्ठ के <head> में एक आंतरिक <style> ब्लॉक है, जो कई तत्वों को एक साथ स्टाइल कर सकता है। तीसरा, और जो आपको करना चाहिए, CSS की एक अलग फ़ाइल है जो पृष्ठ से जुड़ी हुई है। आप अपनी शैलियां एक बार उस फ़ाइल में लिखते हैं, और हर पृष्ठ जो इससे जुड़ता है उन्हें चुना लेता है। इसे एक अलमारी की तरह सोचें: हर व्यक्ति पर एक-एक करके एक पोशाक का वर्णन करने के बजाय, आप ड्रेस कोड एक बार लिख देते हैं और सभी इसका पालन करते हैं।
यहाँ external approach पूरे तरीके से है: एक HTML फ़ाइल जो एक stylesheet को जोड़ता है, और stylesheet स्वयं।
<!-- index.html -->
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p class="intro">साइट में आपका स्वागत है।</p>
</body>/* styles.css */
.intro {
color: teal;
font-size: 1.25rem;
}style के साथ, एक <style> ब्लॉक में, या एक अलग फ़ाइल में जिसे आप <link> के साथ जोड़ते हैं। अलग फ़ाइल का उपयोग करें। आप अपनी शैलियां एक बार लिखते हैं और हर पृष्ठ जो इससे जुड़ता है समान दिखता है। एक नियम की शारीरिक संरचना
CSS का एक टुकड़ा एक rule के रूप में लिखा जाता है, और हर नियम का आकार समान होता है। यहाँ एक है जो एक कार्ड को स्टाइल करता है:
.card {
color: navy;
padding: 16px;
}सामने का .card selector है: यह चुनता है कि नियम किन तत्वों पर लागू होता है, इस मामले में कुछ भी जिसके पास card class है। curly braces के अंदर सब कुछ declaration block है। अंदर प्रत्येक पंक्ति, जैसे color: navy;, एक declaration है: एक property (color) और मान आप इसे चाहते हैं (navy), एक colon से अलग किया गया है और एक semicolon के साथ समाप्त किया गया है। पूरे नियम को एक sentence के रूप में पढ़ें: "हर कार्ड के लिए, रंग को navy बनाएं और padding को 16 pixels बनाएं।"
.card तत्वों को चुनता है, और प्रत्येक declaration जैसे color: navy; एक property और मान है जिसके बीच में colon है और अंत में semicolon है। एक बार जब आप उन भागों को नाम दे सकते हैं, हर rule जो आप पढ़ते हैं समान दिखता है। Cascade
कभी-कभी दो नियम समान तत्व को style करने की कोशिश करते हैं, और CSS को यह तय करने का तरीका चाहिए कि कौन जीतता है। वह निर्णय cascade है, और यही कारण है कि CSS में C कहां से आता है।
.card {
color: navy;
}
.card {
color: teal;
}दोनों नियम कार्ड को target करते हैं और दोनों रंग को सेट करते हैं। कार्ड फ़िरोज़ी का हो जाता है, क्योंकि जब दो नियम की same strength हो, तो बाद में लिखा हुआ rule जीतता है। Order मायने रखता है, और यह फ़ाइल को नीचे की तरह पानी की तरह flows करता है, जो कि cascade का नाम आता है। एक दूसरा tie-breaker भी है: एक अधिक specific selector एक अधिक general को beat करता है, इसलिए एक rule जो आपके कार्ड पर precisely aimed है एक broader rule को override कर सकता है भले ही broader एक बाद में आता है। आप selectors chapter में उस specificity को विस्तार से meet करेंगे।
Inheritance
एक रंग को एक बॉक्स पर सेट करें और अंदर का text अक्सर वह रंग भी बन जाता है, भले ही आपने कभी उस text को directly style नहीं किया। वह passing-down inheritance कहलाता है।
.site-header {
color: white;
font-family: Georgia, serif;
}Header के अंदर का हर piece of text, एक heading, एक link, एक tagline, अपने rule के बिना वह white color और वह font pick करता है, क्योंकि color और font-family inherited properties हैं। लेकिन सब कुछ pass नहीं होता। Spacing properties जैसे padding inherit नहीं करते: header पर जो padding आप रखते हैं वह header पर रहता है और अंदर के तत्वों पर appear नहीं होता। एक rough guide के रूप में, text-related styles बच्चों को flow करते हैं, और box-related styles जैसे spacing और borders जहाँ रखे हों वहीं रहते हैं।
color या font-family set करें और अंदर का text free के लिए इसे pick करता है। Spacing जैसे padding pass नहीं होता, यह जहाँ आप रखते हैं वहीं रहता है। Rough rule: text styles children में travel करते हैं, box styles रहते हैं। 
