प्रौद्योगिकी साझेदारी

scss अवधारणाः प्रयोगः च

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

सामग्रीसूची

किं scss इति

scss तथा css इत्येतयोः मध्ये तुलना

scss इत्यस्य उपयोगः

चर घोषयतु

पूर्वनिर्धारितचरानाम् भेदं कुर्वन्तु

वैश्विकचरानाम् स्थानीयचरानाञ्च भेदं कुर्वन्तु

नेस्टेड् वाक्यविन्यासः

चयनकर्ता नीडीकरणम्

मूलभूतं नीडीकरणम्

नेस्टेड् मातापितृ चयनकर्ता सन्दर्भ (&) .

नीडीकरणविचाराः

nested nested

सम्पत्ति नीडीकरण

मूल विशेषता नीडीकरण

नीडीकरणविचाराः

उत्तराधिकारः

मूलभूतः प्रयोगः

उत्तराधिकारविषये टिप्पण्यानि

अनुप्रयोग परिदृश्य

स्थानधारकः% २.

स्थानधारकं परिभाषयन्तु

उत्तराधिकारस्थानधारकः

लाभाः प्रयोज्यपरिदृश्यानि च

सावधानताएँ

मिक्स @mixin

मिश्रणं परिभाषयतु

call mix

उदाहरण

लाभाः प्रयोज्यपरिदृश्यानि च

सावधानताएँ

SCSS सशर्तकथनानां उपयोगं करोति

@if कथनम्

@else तथा @else if कथनानि

सशर्तकथनानां नीडीकरणम्

उपसंहारे

SCSS मध्ये त्रयः प्रकाराः लूप्

@ for लूप

@ प्रत्येकं पाश

@while पाश

सारांशं कुरुत

कस्टम् फंक्शन्स् तथा उपयोगः

कस्टम् फंक्शन्स् परिभाषयन्तु

कस्टम् फंक्शन्स् इत्यस्य उपयोगं कुर्वन्तु

सावधानताएँ

गृहकार्य


किं scss इति

SCSS (Sassy CSS) CSS कृते पूर्वसंसाधकभाषा अस्ति, एषा CSS इत्यस्य आधारेण अधिकानि कार्याणि लचीलतां च प्रदाति, येन शैलीपत्राणां लेखनं प्रबन्धनं च अधिकं कुशलं सुलभं च भवति ।

अत्र SCSS इत्यस्य केचन लाभाः सन्ति ।

  • चराः : SCSS इत्यनेन वर्णाः, फन्ट् आकाराः इत्यादीनि मूल्यानि संग्रहीतुं चरानाम् उपयोगं अनुमन्यते, येन सम्पूर्णे शैलीपत्रे एतानि मूल्यानि एकरूपेण समायोजयितुं अधिकं सुविधाजनकं, परिपालनीयं च भवति
  • नेस्टेड् नियमाः : कोडसंरचनां स्पष्टतरं कर्तुं शैल्याः व्यवस्थित्यै SCSS मध्ये नेस्टेड् नियमानाम् उपयोगः कर्तुं शक्यते । यथा, भवान् कस्यचित् तत्त्वस्य छद्मवर्गशैलीं तस्य मूलतत्त्वस्य शैलीखण्डे बहुस्थानेषु लिखितुं न शक्नोति ।
  • मिक्सिन्स् : मिक्सिन्स् इति शैलीगुणानां समुच्चयं पुनःप्रयोज्यखण्डे संयोजयितुं मार्गः । एतेन पुनः पुनः समानशैलीसङ्केतस्य लेखनं न भवति तथा च कोडपुनर्प्रयोगक्षमता पठनीयता च सुधरति ।
  • आयातः (Inline Imports): @import नियमस्य माध्यमेन बहुविधाः SCSS सञ्चिकाः एकस्मिन् सञ्चिकायां विलीनाः कर्तुं शक्यन्ते । एषः उपायः शैलीपत्रस्य तार्किक-एककेषु विभक्तुं साहाय्यं करोति तथा च आवश्यकतानुसारं लचीलतया संगठितं प्रबन्धयितुं च शक्यते ।
  • उत्तराधिकार (Extend): SCSS @extend कीवर्ड इत्यस्य माध्यमेन शैलीविरासतां समर्थयति, यत् शैलीपत्रं अधिकं मॉड्यूलरं, परिपालनीयं च कर्तुं शक्नोति ।
  • संचालनम् : SCSS शैलीपत्रेषु गणितीयक्रियाणां अनुमतिं ददाति, यथा योजनं, घटनं, गुणनं, विभाजनं च, यत् केषाञ्चन गतिशीलशैलीगणनां निबन्धनाय सहायकं भवति
  • मॉड्यूलरता : SCSS इत्यस्य विशेषताः शैलीपत्राणि अधिकं मॉड्यूलराणि संरचितानि च कुर्वन्ति, येन शैल्याः उत्तमं प्रबन्धनं, परिपालनं च कर्तुं शक्यते, विशेषतः बृहत् परियोजनासु ।

सारांशतः SCSS न केवलं CSS इत्यस्य सर्वाणि कार्याणि धारयति, अपितु चर, नेस्टिंग्, मिश्रणं, आयातम् इत्यादीनि उन्नतविशेषतानि अपि प्रवर्तयति एतानि कार्याणि विकासकान् शैलीपत्राणि अधिकतया लिखितुं प्रबन्धयितुं च अनुमतिं ददति तथा च आधुनिक-अग्रभागे सामान्यतया उपयुज्यन्ते विकासस्य समाप्तिम्।

scss तथा css इत्येतयोः मध्ये तुलना

व्याकरणम् : १.

  • CSS: मूलभूतं झरनाशैलीपत्रवाक्यविन्यासः, नियमाः चयनकर्तानां, विशेषतानां, मूल्यानां च माध्यमेन परिभाषिताः भवन्ति ।
  • SCSS: SCSS CSS कृते पूर्वसंसाधकभाषा अस्ति, यथा चराः, नेस्टेड् नियमाः, मिक्सिन्स्, आयाताः इत्यादयः, येन शैलीपत्राणां लेखनं अधिकं लचीलं कुशलं च भवति ।

पठनीयता तथा परिपालनक्षमता : १.

  • CSS: बृहत्तरेषु परियोजनासु CSS सञ्चिकाः अतीव वाचिकाः भवितुम् अर्हन्ति, परिपालनं च कठिनं भवितुम् अर्हति यतोहि एतेषु संरचितानाम् मॉड्यूलर-विशेषतानां च अभावः भवति ।
  • SCSS: SCSS चरानाम्, नेस्टेड् नियमानाञ्च समर्थनं करोति । चरानाम्, मिश्रणानां च उपयोगेन पुनरावर्तनीयं कोडलेखनं न्यूनीकर्तुं शक्यते, तथा च नेस्टेड् नियमाः HTML संरचनायाः श्रेणीबद्धसम्बन्धं अधिकस्पष्टतया व्यक्तुं शक्नुवन्ति ।

कार्यविस्तारः : १.

  • CSS: मानक CSS केवलं मूलभूतशैलीपरिभाषां चयनकर्तामेलनं च कर्तुं शक्नोति ।
  • SCSS: SCSS इत्येतत् उन्नतकार्यं यथा मिश्रणं, उत्तराधिकारः, गणना च परिचययति एते कार्याणि शैलीपत्राणि अधिकं लचीलानि, शक्तिशालिनः च कुर्वन्ति, तथा च जटिलशैलीआवश्यकतानां सह उत्तमरीत्या सामना कर्तुं शक्नुवन्ति ।

संगतता : १.

  • CSS: ब्राउजर् CSS प्रत्यक्षतया समर्थयन्ति, अतिरिक्तसंकलनपदार्थानाम् आवश्यकता नास्ति ।
  • SCSS: SCSS इत्यस्य ब्राउजरेण अवगन्तुं प्रयोक्तुं च पूर्वं संकलकेन सामान्य CSS सञ्चिकायां परिवर्तनं करणीयम् ।

शिक्षण वक्रः : १.

  • CSS: CSS शिक्षणं तुल्यकालिकरूपेण सरलं भवति, केवलं चयनकर्तानां, गुणानाम्, मूल्यानां च मूलभूतसंयोजनं अवगच्छन्तु ।
  • SCSS: शिक्षणं SCSS इत्यस्य अद्वितीयवाक्यविन्यासस्य कार्याणां च निपुणतां प्राप्तुं आवश्यकं भवति, यथा चराः, मिश्रणं, नेस्टिंग् इत्यादीनि, यस्य कृते निश्चितशिक्षणस्य अनुकूलनप्रक्रियायाः आवश्यकता भवति

सारांशतः, साधारण CSS इत्यस्य तुलने, SCSS शैलीपत्राणां लेखनं, परिपालनं च सरलीकर्तुं अधिकानि साधनानि विशेषताश्च प्रदाति, तथा च बृहत् जटिलपरियोजनानां विकासाय विशेषतया उपयुक्ता अस्ति तथापि लघुपरियोजनानां वा सरलस्टाइलिंग-आवश्यकतानां वा कृते सादा CSS अधिकं सरलं सुविधाजनकं च भवितुम् अर्हति ।

scss इत्यस्य उपयोगः

scss शिक्षितुं पूर्वं प्रथमं vscode मध्ये द्वौ प्लग-इन् संस्थापयन्तु यत् scss इत्येतत् अनन्तरं शिक्षणार्थं साधारण CSS सञ्चिकासु परिवर्तयन्तु!

प्लग-इन्-भण्डारे sass इति अन्वेष्टुम्, निम्नलिखितद्वयं प्लग-इन् डाउनलोड् कृत्वा vscode पुनः आरभत!

चर घोषयतु

SCSS मध्ये चरानाम् घोषणं अतीव सरलम् अस्ति, चराः परिभाषितुं $ चिह्नस्य उपयोगं कर्तुं शक्नुवन्ति ।

अत्र SCSS मध्ये चराः कथं घोषयितुं उपयोक्तुं च प्रदर्शयति सरलं उदाहरणम् अस्ति:

  1. // 定义变量
  2. $primary-color: #3498db;
  3. $secondary-color: #2ecc71;
  4. // 使用变量
  5. body {
  6. background-color: $primary-color;
  7. }
  8. a {
  9. color: $secondary-color;
  10. }

उपरिष्टाद् उदाहरणे वयं क्रमशः प्राथमिकवर्णं गौणवर्णं च संग्रहीतुं $primary-color तथा $secondary-color इति चरद्वयं परिभाषितवन्तः । ततः वयं एतान् चरानाम् उपयोगं शैलीनियमेषु कर्तुं शक्नुमः यत् सम्पूर्णे शैलीपत्रे वर्णाः सुसंगताः सुलभाः च भवन्ति ।

यदा SCSS सञ्चिका सामान्य CSS सञ्चिकायां संकलिता भवति तदा सर्वेषां चरानाम् स्थाने तेषां तत्सम्बद्धमूल्यानां स्थापनं भविष्यति, अतः अन्तिमजनितस्य CSS सञ्चिकायां किमपि चरघोषणा न भविष्यति

पूर्वनिर्धारितचरानाम् भेदं कुर्वन्तु

SCSS मध्ये, यदि परिभाषितं न भवति तर्हि चरस्य वैकल्पिकं मूल्यं भवति इति सुनिश्चित्य पूर्वनिर्धारितचरानाम् उपयोगं कर्तुं शक्नुवन्ति । विशेषतया विषयवस्तुन सह कार्यं कुर्वन् अथवा शैल्याः विन्यासः क्रियते तदा एतत् उपयोगी भवति ।

अत्र पूर्वनिर्धारितचराः कथं घोषयितव्याः, कथं च उपयोक्तव्याः इति उदाहरणम् अस्ति ।

  1. // 声明变量,并设置默认值
  2. $primary-color: #3498db !default;
  3. $secondary-color: #2ecc71 !default;
  4. // 使用变量
  5. body {
  6. background-color: $primary-color;
  7. }
  8. a {
  9. color: $secondary-color;
  10. }

उपरिष्टाद् उदाहरणे वयं पूर्वनिर्धारितमूल्यं परिभाषितुं !default टैग् इत्यस्य उपयोगं कृतवन्तः । अस्य अर्थः अस्ति यत् यदि $primary-color अथवा $secondary-color तस्मिन् SCSS सञ्चिकायां परिचयस्य पूर्वं अन्यत्र परिभाषितं न भवति तर्हि ते निर्दिष्टानि पूर्वनिर्धारितमूल्यानि (#3498db तथा #2ecc71) उपयुज्यन्ते यदि एते चराः सञ्चिकायाः ​​आयातात् पूर्वं परिभाषिताः सन्ति तर्हि पूर्वनिर्धारितमूल्यानि उपेक्षितानि भविष्यन्ति ।

पूर्वनिर्धारितचरानाम् उपयोगस्य लाभः अस्ति यत् पूर्वमेव परिभाषितचरानाम् अधिलेखनं विना चरानाम् वैकल्पिकमूल्यानि प्रदातुं शक्नोति । इदं विशेषतया बहुशैलीसञ्चिकासु विषयवस्तुनिर्माणार्थं वा चरसाझेदारीार्थं वा उपयोगी भवति ।

वैश्विकचरानाम् स्थानीयचरानाञ्च भेदं कुर्वन्तु

  • वैश्विकचराः : वैश्विकचराः चयनकर्तायाः बहिः अथवा मिश्रकस्य/कार्यस्य बहिः घोषिताः चराः सन्ति । ते सम्पूर्णे शैलीपत्रे सुलभाः सन्ति, यदि च एकमेव वैश्विकचरं बहुषु सञ्चिकासु परिभाषितं भवति तर्हि तेषां मूल्यानि सुसंगतानि एव तिष्ठन्ति ।
  • स्थानीयचराः : स्थानीयचराः चयनकर्तायाः अन्तः अथवा मिश्रकस्य/कार्यस्य अन्तः परिभाषिताः चराः सन्ति । यस्मिन् व्याप्ते ते परिभाषिताः सन्ति तस्मिन् एव व्याप्तेः अन्तः एव तेषां उपयोगः कर्तुं शक्यते, तस्मात् व्याप्तेः बहिः प्रामाण्यः नास्ति ।

नोटः- स्थानीयचराः वैश्विकचरानाम् अधिलिखन्ति

यदा वैश्विकचरस्य समाननाम्नः चरः स्थानीयव्याप्तौ पुनः घोषितः भवति तदा स्थानीयचरः वैश्विकचरस्य मूल्यं अधिलिखति । एतेन वैश्विकस्थितिं प्रभावितं विना विशिष्टचयनकस्य वा मिश्रकस्य वा कृते भिन्नानि चरमूल्यानि परिभाषितुं शक्यन्ते ।

स्थानीयचरं वैश्विकचररूपेण परिणतुं !global कीवर्डस्य उपयोगं कुर्वन्तु

SCSS स्थानीयचरं वैश्विकचररूपेण स्पष्टतया घोषयितुं !global कीवर्डं प्रदाति । एतेन स्थानीयचरस्य मूल्यं वैश्विकव्याप्तिपर्यन्तं प्रवर्तते यत्र तत् घोषितं भवति, समाननाम्ना विद्यमानं किमपि वैश्विकचरं अधिलेखनं भवति

उदाहरण:

  1. // 全局变量
  2. $primary-color: #3498db;
  3. .button {
  4. // 局部变量,覆盖全局变量
  5. $primary-color: #cc582e;
  6. background-color: $primary-color; // 使用局部变量值
  7. }
  8. // 使用 !global 将局部变量变为全局变量
  9. $primary-color: #cddb34;
  10. .button {
  11. // 使用 !global 将局部变量变为全局变量
  12. $primary-color: #2ecc71 !global;
  13. }
  14. body {
  15. background-color: $primary-color; // 这里使用的是已变为全局的 $primary-color
  16. }

प्रथमे उदाहरणे .button चयनकर्तायाः अन्तः स्थानीयचरः $primary-color वैश्विकचरस्य मूल्यं अधिलिखति । द्वितीये उदाहरणे !global कीवर्डस्य उपयोगेन .button चयनकस्य अन्तः स्थानीयचराः वैश्विकचररूपेण परिवर्तिताः भवन्ति, अतः वैश्विकव्याप्तेः चरमूल्यानि प्रभावितानि भवन्ति

नेस्टेड् वाक्यविन्यासः

चयनकर्ता नीडीकरणम्

मूलभूतं नीडीकरणम्

चयनकर्ता नेस्टिंग् बालचयनकर्तृणां कृते शैलीनियमान् मातापितृचयनकानां अन्तः नेस्ट् कर्तुं अनुमतिं ददाति, उदाहरणार्थं:

  1. // SCSS代码
  2. .navbar {
  3. background-color: #333;
  4. padding: 10px;
  5. ul {
  6. list-style: none;
  7. margin: 0;
  8. padding: 0;
  9. li {
  10. display: inline-block;
  11. margin-right: 10px;
  12. a {
  13. text-decoration: none;
  14. color: #fff;
  15. &:hover {
  16. text-decoration: underline;
  17. }
  18. }
  19. }
  20. }
  21. }

उपरिष्टाद् कोड् मध्ये .navbar चयनकर्तायां नेस्टेड् ul, li, उपचयनकं च भवति । एषा नेस्टेड् संरचना शैलीनियमान् स्पष्टतरं प्रबन्धनं सुलभं च करोति ।

नेस्टेड् मातापितृ चयनकर्ता सन्दर्भ (&) .

SCSS मध्ये & चिह्नस्य उपयोगः मातापितृचयनकस्य सन्दर्भार्थं भवति, विशेषतः छद्म-वर्गस्य अथवा छद्म-तत्त्वस्य सन्दर्भे उपयोगी भवति । उदाहरणार्थं, वर्तमानचयनकस्य मातापितृचयनकस्य सन्दर्भं कर्तुं &:hover इत्यस्य उपयोगं कुर्वन्तु तथा च :hover अवस्थाशैलीं योजयन्तु ।

  1. .button {
  2. background-color: #3498db;
  3. color: #fff;
  4. padding: 8px 16px;
  5. border: none;
  6. text-align: center;
  7. text-decoration: none;
  8. display: inline-block;
  9. &:hover {
  10. background-color: #2980b9;
  11. }
  12. }

नीडीकरणविचाराः
  • चयनकर्तागहनता: अत्यधिकं गभीरं चयनकर्ता-नीडं परिहरन्तु यतः एतेन शैली-प्राथमिकता वर्धयितुं शक्यते, येन शैली-अधिलेखनं, अनुरक्षणं च कठिनं भवति ।
  • पठनीयता : चयनकर्ता नेस्टिंग् इत्यस्य उपयोगं कुर्वन् कोडं पठनीयं स्पष्टं च स्थापयितुं ध्यानं ददातु, अतिजटिलं नेस्टेड् संरचनां च परिहरन्तु ।
  • कार्यक्षमता: नेस्टेड् संरचनाः उत्पन्नस्य CSS सञ्चिकायाः ​​आकारं वर्धयितुं शक्नुवन्ति, परन्तु सामान्यतया समुचितशैलीसङ्गठनेन लेखनेन च अनुकूलितं कर्तुं शक्यते ।
nested nested

SCSS चयनकर्तानेस्टिंग् इत्यस्य बहुस्तरस्य अनुमतिं ददाति, उदाहरणार्थं:

  1. .container {
  2. .row {
  3. .col {
  4. width: 100%;
  5. }
  6. }
  7. }

सम्पत्ति नीडीकरण

SCSS इत्यस्मिन् चयनकर्ता नेस्टिंग् इत्यस्य अतिरिक्तं एट्रिब्यूट् नेस्टिंग् इत्यस्य विशेषता अपि अस्ति, यत् अन्यत् विशेषता अस्ति यत् स्टाइलशीट् स्वच्छतरं, प्रबन्धनं च सुलभं करोति । गुण-नीस्टिंग् इत्यनेन सम्बन्धित-गुणाः एकत्र व्यवस्थिताः भवन्ति, यत् वस्तुनः रूपस्य सदृशं भवति ।

मूल विशेषता नीडीकरण

गुणनेस्टिंग् इत्यस्य उपयोगः कोडस्य खण्डस्य अन्तः सम्बन्धितगुणान् स्थापयितुं शक्यते, यथा-

  1. .navbar {
  2. font: {
  3. family: Arial, sans-serif;
  4. size: 16px;
  5. weight: bold;
  6. }
  7. margin: {
  8. top: 10px;
  9. bottom: 15px;
  10. }
  11. padding: {
  12. left: 20px;
  13. right: 20px;
  14. }
  15. }

उपरिष्टाद् उदाहरणे font, margin, padding blocks इत्यत्र सम्बद्धानि विशेषतानि सन्ति । एषा संस्था प्रत्येकस्य खण्डस्य अन्तः गुणाः स्पष्टतराः, परिवर्तनं, परिपालनं च सुलभं च करोति ।

नीडीकरणविचाराः
  • समर्थिताः गुणाः : सर्वे CSS गुणाः नेस्टिंग् समर्थयन्ति न, प्रायः ते ये कील-मूल्ययुग्मं स्वीकुर्वन्ति, यथा फॉन्ट्, मार्जिन, पैडिंग्, बॉर्डर् इत्यादयः ।
  • पठनीयता : एट्रिब्यूट् नेस्टिंग् इत्यस्य उपयोगं कुर्वन् कोडस्य पठनीयतां स्पष्टतां च सुनिश्चितं कुर्वन्तु तथा च अत्यधिकं नेस्टिंग् तथा जटिलसंरचनानां परिहारं कुर्वन्तु ।
  • नेस्टेड् नेस्टिंग् : भवन्तः अन्येषां गुणानाम् अपि नीस्ट् कर्तुं शक्नुवन्ति, ये भवतः शैल्याः अधिकं व्यवस्थितं कर्तुं, संरचनां च कर्तुं शक्नुवन्ति ।

उत्तराधिकारः

SCSS मध्ये, inheritance (Extend) इति अतीव उपयोगी विशेषता अस्ति यत् एकस्य चयनकर्तायाः अन्यस्य चयनकर्तायाः शैलीनियमान् उत्तराधिकारं प्राप्तुं शक्नोति । एतत् विशेषता डुप्लिकेट् CSS कोड् न्यूनीकरोति तथा च स्टाइलशीट् अधिकं मॉड्यूलर तथा च परिपालनं सुलभं करोति ।

मूलभूतः प्रयोगः

@extend कीवर्ड इत्यस्य उपयोगेन चयनकर्ता उत्तराधिकारः प्राप्तुं शक्यते । उदाहरणतया:

  1. %message-shared {
  2. border: 1px solid #ccc;
  3. padding: 10px;
  4. color: #333;
  5. }
  6. .success-message {
  7. @extend %message-shared;
  8. background-color: lightgreen;
  9. }
  10. .error-message {
  11. @extend %message-shared;
  12. background-color: lightcoral;
  13. }

उपरिष्टाद् उदाहरणे %message-shared एकः स्थानधारकचयनकः अस्ति यः शैलीनां सामान्यसमूहं परिभाषयति । .success-message तथा .error-message क्रमशः %message-shared इत्यस्य शैलीं उत्तराधिकारं प्राप्नुवन्ति तथा च स्वकीयानि पृष्ठभूमिवर्णानि योजयन्ति ।

उत्तराधिकारविषये टिप्पण्यानि

  • चयनकर्ताक्रमः : उत्तराधिकारः चयनकर्तानां दीर्घसूचीं जनयितुं शक्नोति, यत् शैलीप्राथमिकताम् प्रभावितं कर्तुं शक्नोति । अनावश्यकप्राथमिकतासमस्यानां परिहाराय @extend इत्यस्य उपयोगं कुर्वन् चयनकर्तानां क्रमः स्थानं च सम्यक् अस्ति इति सुनिश्चितं कुर्वन्तु ।
  • प्रतिबन्धः : वंशानुगतचयनकर्तुः पश्चात् वंशानुगतचयनकाः अवश्यमेव दृश्यन्ते । अस्य अर्थः अस्ति यत् यदि भवान् स्वस्य SCSS सञ्चिकायां चयनकर्तां परिभाषयति तथा च @extend इत्यस्य उपयोगं करोति तदनन्तरं कोड् मध्ये तस्य शैलीं उत्तराधिकारं प्राप्तुं तर्हि एतत् उत्तराधिकारं परिभाषितस्य अनन्तरमेव प्रभावी भविष्यति ।
  • प्लेसहोल्डर चयनकर्ताः बनाम वर्गचयनकाः : % इत्यनेन आरभ्यमाणाः प्लेसहोल्डरचयनकाः सामान्यतया प्रत्यक्षवर्गचयनकर्तृणां अपेक्षया उत्तराधिकारस्य कृते उत्तमाः लक्ष्याः भवन्ति यतोहि ते संकलनस्य अनन्तरं अनावश्यकचयनकाः न जनयन्ति वर्गचयनकाः तु यत्र यत्र उपयुज्यन्ते तत्र तत्र द्वितीयकशैल्याः जनयिष्यन्ति, येन सञ्चिकायाः ​​आकारः जटिलता च वर्धते ।

अनुप्रयोग परिदृश्य

उत्तराधिकारः विशेषतया सामान्यलक्षणयुक्तानां चयनकर्तानां कृते उपयुक्तः भवति, यथा बटनघटकाः, सन्देशपेटिकाः इत्यादयः । उत्तराधिकारस्य माध्यमेन भवान् स्वस्य कोडं स्वच्छं, परिपालनीयं च कृत्वा भिन्न-भिन्न-परिदृश्येषु समानशैली-नियमानाम् पुनः उपयोगं कर्तुं शक्नोति ।

सारांशतः, SCSS मध्ये उत्तराधिकारः एकं शक्तिशाली साधनम् अस्ति यत् भवन्तं शैलीद्वैधतां परिहरितुं भवतः कोडस्य मॉड्यूलरता स्पष्टतां च निर्वाहयितुं साहाय्यं कर्तुं शक्नोति तथापि, तस्य उपयोगं कुर्वन्, चयनकर्तानां क्रमं, स्थानं च, तथा च उचितं प्रति ध्यानं दातव्यम् तस्य प्रभावं अधिकतमं कर्तुं स्थानधारकाणां उपयोगः।

स्थानधारकः% २.

स्थानधारकः % SCSS मध्ये एकः विशेषः चयनकर्ता अस्ति यस्य उपयोगः प्रायः शैलीनियमान् परिभाषितुं भवति ये उत्तराधिकारं प्राप्तुं शक्यन्ते परन्तु वास्तविकं CSS निर्गमं न जनयन्ति । विशेषतः : १.

स्थानधारकं परिभाषयन्तु

  1. %placeholder-selector {
  2. // 样式规则
  3. }

उपरिष्टाद् उदाहरणे %placeholder-selector % इत्यनेन आरभ्यमाणः स्थानधारकचयनकर्ता अस्ति । एतत् शैलीनियमानां समुच्चयं परिभाषयति, परन्तु तत्सम्बद्धं चयनकर्तानाम संकलितस्य CSS मध्ये न दृश्यते ।

उत्तराधिकारस्थानधारकः

  1. .some-class {
  2. @extend %placeholder-selector;
  3. // 可选的额外样式
  4. }

@extend कीवर्डस्य उपयोगेन .some-class %placeholder-selector इत्यस्य शैलीं उत्तराधिकारं प्राप्तुं शक्नोति । अस्य अर्थः अस्ति यत् .some-class %placeholder-selector इत्यत्र परिभाषितान् सर्वान् शैलीनियमान् प्रयोक्ष्य तत्सम्बद्धं CSS आउटपुट् जनयिष्यति ।

लाभाः प्रयोज्यपरिदृश्यानि च

  • द्वितीयकं न्यूनीकरोतु: स्थानधारकचयनकाः शैलीनियमानां सामान्यसमूहं परिभाषितुं सम्भवं कुर्वन्ति तथा च आवश्यकतायां उत्तराधिकारद्वारा पुनः उपयोगं कर्तुं शक्नुवन्ति, कोडद्वितीयीकरणं परिहरन्ति
  • मॉड्यूलरता : प्लेसहोल्डर चयनकर्तारः कोड मॉड्यूलरतायां परिपालनक्षमतायां च योगदानं ददति, विशेषतः बृहत् परियोजनासु, तथा च शैलीपत्राणां संरचनात्मकस्पष्टतां सुधारयितुं शक्नुवन्ति
  • अतिरेकं परिहरन्तु : वर्गचयनकर्तृणां उपयोगस्य तुलने स्थानधारकचयनकाः अनावश्यकचयनकान् न जनयन्ति, अतः CSS सञ्चिकानां आकारः न्यूनीकरोति ।

सावधानताएँ

  • क्रमः स्थानं च: स्थानधारकचयनकान् उत्तराधिकारं प्राप्तुं @extend इत्यस्य उपयोगं कुर्वन्, तस्य चयनकर्तायाः उपयोगात् पूर्वं उत्तराधिकारयुक्तं स्थानधारकचयनकं परिभाषितं भवितुमर्हति, अन्यथा अप्रत्याशितशैलीपदानुक्रमस्य समस्याः भवितुम् अर्हन्ति
  • मिश्रणम् : भवान् साधारणवर्गचयनकैः सह स्थानधारकचयनकान् संयोजयितुं शक्नोति, परन्तु अप्रत्याशित-CSS-निर्गमं परिहरितुं भवान् तान् सावधानीपूर्वकं नियन्त्रयितुं शक्नोति ।

सारांशेन, प्लेसहोल्डर चयनकर्ता% SCSS मध्ये एकं शक्तिशाली साधनम् अस्ति यत् विकासकानां कृते शैलीपत्राणां पुनः उपयोगक्षमतां, परिपालनक्षमतां च सुधारयितुम् अनावश्यकं CSS अतिरेकं न्यूनीकर्तुं साहाय्यं कर्तुं शक्नोति

मिक्स @mixin

Mixins इत्येतत् SCSS इत्यस्मिन् अन्यत् अतीव शक्तिशाली विशेषता अस्ति यत् शैलीनियमानां समुच्चयं पुनः उपयोक्तुं योग्ये कोडखण्डे समाहितं कर्तुं शक्नोति ततः यत्र यत्र आवश्यकता भवति तत्र तत्र सन्दर्भं दातुं शक्नोति placeholder selector % इत्यस्य विपरीतम्, mixins प्रत्यक्षतया CSS आउटपुट् जनयितुं शक्नुवन्ति, अतः तासां परिस्थितिषु उपयुक्तं यत्र बहुस्थानेषु समानशैल्याः उपयोगः आवश्यकः भवति ।

मिश्रणं परिभाषयतु

  1. @mixin mixin-name($parameter1, $parameter2, ...) {
  2. // 样式规则使用参数
  3. }

उपरिष्टाद् उदाहरणे @mixin कीवर्डः mixin-name इति mixin परिभाषयति यत् बहुविधं तर्कं (यदि आवश्यकं भवति) स्वीकुर्वितुं शक्नोति तथा च तस्य अन्तः शैलीनियमानां समुच्चयं परिभाषयति ।

call mix

  1. .some-class {
  2. @include mixin-name(value1, value2, ...);
  3. // 可选的额外样式
  4. }

चयनकर्तायां mixin आह्वयितुं तस्मै च पैरामीटर्स् पारयितुं @include कीवर्डस्य उपयोगं कुर्वन्तु । एवं प्रकारेण .some-class mixin मध्ये परिभाषितशैलीनियमान् प्रयोक्ष्यति तथा च पारितपैरामीटर् मूल्यानि तत्सम्बद्धेषु पैरामीटर् चरयोः प्रयोजयिष्यति ।

उदाहरण

  1. @mixin button-style($background-color, $text-color) {
  2. display: inline-block;
  3. padding: 10px 20px;
  4. border: none;
  5. border-radius: 4px;
  6. background-color: $background-color;
  7. color: $text-color;
  8. text-align: center;
  9. text-decoration: none;
  10. font-size: 16px;
  11. cursor: pointer;
  12. transition: background-color 0.3s ease;
  13. &:hover {
  14. background-color: darken($background-color, 10%);
  15. }
  16. }
  17. .button-primary {
  18. @include button-style(#3498db, #fff);
  19. }
  20. .button-secondary {
  21. @include button-style(#2ecc71, #fff);
  22. }

 

लाभाः प्रयोज्यपरिदृश्यानि च

  • लचीलापनम् : मिश्रणेन पैरामीटर्स् पारितं कर्तुं शक्यते तथा च आवश्यकतानुसारं भिन्नशैलीनिर्गमाः गतिशीलरूपेण जनयितुं शक्यन्ते, येन शैली अधिका लचीलः अनुकूलनीयः च भवति
  • पठनीयता: सामान्यतया प्रयुक्तानि शैलीनियमान् मिक्सिन् मध्ये समाहितं कृत्वा भवतः कोडस्य पठनीयतायां परिपालनक्षमतायां च सुधारः कर्तुं शक्यते, विशेषतः यदि बहुस्थानेषु समानशैली आवश्यकी भवति
  • पुनः उपयोगिता : एकमेव मिश्रणं भिन्न-भिन्न-चयनकेषु सञ्चिकासु च बहुवारं आह्वयितुं शक्यते यत् शैल्याः पुनः पुनः परिभाषा न भवति तथा च कोडस्य मात्रां न्यूनीकर्तुं शक्यते ।

सावधानताएँ

  • नामकरणविग्रहाः: अप्रत्याशितशैलीओवरराइड् अथवा त्रुटयः परिहरितुं मिक्सिन् विद्यमानेन CSS वर्गनामभिः अन्यैः मिक्सिन्भिः सह विग्रहं न कुर्वन्ति इति सुनिश्चितं कुर्वन्तु ।
  • पैरामीटर्-पास्करणम् : मिक्सिन्-आह्वानं कुर्वन्, सुनिश्चितं कुर्वन्तु यत् पैरामीटर्-प्रकाराः, पारित-क्रमः च मिक्सिन्-परिभाषायाः आवश्यकताभिः सह सङ्गताः सन्ति, येन संकलन-दोषाः अथवा अप्रत्याशित-व्यवहाराः परिहरन्ति
  • कार्यप्रदर्शनप्रभावः : mixins इत्यस्य व्यापकप्रयोगेन परिणामितानां CSS सञ्चिकानां आकारः वर्धयितुं शक्यते, अतः कार्यप्रदर्शनप्रभावेन सह सावधानतां कुर्वन्तु ।

सारांशेन, mix @mixin SCSS मध्ये शैलीनियमानां समापनार्थं पुनः उपयोगाय च एकं शक्तिशाली साधनम् अस्ति यत् एतत् CSS इत्यस्य परिपालनक्षमतां लचीलतां च महत्त्वपूर्णतया सुधारयितुम् अर्हति तथा च विभिन्नजटिल-पुनरावृत्तिशैली-आवश्यकतानां कृते उपयुक्तम् अस्ति ।

SCSS सशर्तकथनानां उपयोगं करोति

SCSS इत्यस्मिन् सशर्तकथनानि विशिष्टशर्तानाम् आधारेण CSSशैल्याः गतिशीलरूपेण उत्पन्नं कर्तुं शक्नुवन्ति । SCSS मध्ये सशर्तकथनानि अन्येषु प्रोग्रामिंगभाषासु सशर्तकथनानां सदृशानि सन्ति, यत्र @if, @else if, @else च सन्ति ।

@if कथनम्

@if स्टेट्मेण्ट् इत्यनेन कण्डिशन् इत्यस्य आधारेण शैल्याः उत्पन्नं कर्तुं शक्यते । वाक्यविन्यासः यथा- १.

  1. $use-rounded-corners: true;
  2. .button {
  3. @if $use-rounded-corners {
  4. border-radius: 4px;
  5. }
  6. }

उपर्युक्ते उदाहरणे यदि $use-rounded-corners चरस्य मूल्यं सत्यं भवति तर्हि .button वर्गस्य शैली उत्पद्यते, यत्र border-radius: 4px; यदि कण्डिशन् मिथ्या अस्ति तर्हि शैल्याः एषः भागः न उत्पद्यते ।

@else तथा @else if कथनानि

@if इत्यस्य अतिरिक्तं अधिकानि सशर्तशाखाः योजयितुं @else if तथा @else इत्येतयोः उपयोगं अपि कर्तुं शक्नुवन्ति ।

  1. $button-size: medium;
  2. .button {
  3. @if $button-size == small {
  4. padding: 5px 10px;
  5. } @else if $button-size == medium {
  6. padding: 10px 25px;
  7. } @else if $button-size == large {
  8. padding: 15px 30px;
  9. } @else {
  10. padding: 10px 20px; // 默认值
  11. }
  12. }

अस्मिन् उदाहरणे $button-size चरस्य मूल्यानुसारं .button वर्गे प्रयोक्तुं भिन्नानि पैडिंग् मूल्यानि चयनितानि सन्ति । यदि मेलशर्तः नास्ति तर्हि @else इत्यस्मिन् कोडखण्डः निष्पादितः भविष्यति ।

सशर्तकथनानां नीडीकरणम्

अधिकजटिलतर्कं नियन्त्रयितुं सशर्तकथनानि अपि नेस्ट् कर्तुं शक्यन्ते ।

  1. $button-style: flat;
  2. $button-size: medium;
  3. .button {
  4. @if $button-style == flat {
  5. background-color: transparent;
  6. color: #333;
  7. border: 1px solid #333;
  8. @if $button-size == small {
  9. padding: 5px 10px;
  10. } @else if $button-size == medium {
  11. padding: 10px 25px;
  12. } @else if $button-size == large {
  13. padding: 15px 30px;
  14. } @else {
  15. padding: 10px 20px; // 默认值
  16. }
  17. } @else if $button-style == raised {
  18. background-color: #3498db;
  19. color: #fff;
  20. padding: 10px 20px;
  21. border-radius: 4px;
  22. } @else {
  23. // 默认样式
  24. background-color: #db6334;
  25. color: #fff;
  26. padding: 10px 20px;
  27. }
  28. }

अस्मिन् उदाहरणे $button-style तथा $button-size इत्येतयोः मूल्यानां आधारेण प्रयोक्तुं भिन्नाः शैल्याः चयनिताः सन्ति । एषः नेस्टेड्-पद्धतिः बहुशर्तानाम् आधारेण जटिलशैलीनियमान् जनयितुं सम्भवं करोति ।

उपसंहारे

सशर्तकथनानां उपयोगेन, भवान् SCSS मध्ये अधिकं लचीलं गतिशीलं च शैलीपरिभाषां प्राप्तुं शक्नोति, तथा च भिन्नशर्तानाम् आधारेण भिन्नानि CSS नियमाः जनयितुं शक्नोति, अतः शैलीपत्रस्य परिपालनक्षमतायां मापनीयतायां च सुधारः भवति

SCSS मध्ये त्रयः प्रकाराः लूप्

SCSS मध्ये, त्रीणि मुख्यानि लूपिङ्ग् कन्स्ट्रक्ट्स् सन्ति येषां उपयोगेन पुनरावृत्तिः CSS नियमाः उत्पन्नाः कर्तुं शक्यन्ते: @for, @each, @while च ।

@ for लूप

@for लूप् इत्यस्य उपयोगः कतिपयेषु चरणेषु, परिस्थितिषु च शैल्याः पुनः पुनः उत्पन्नं कर्तुं भवति ।

मूलव्याकरणम्

  1. @for $i from <start> through <end> {
  2. // 循环体
  3. }
  • इत्यस्मात्‌<start> समया<end> : लूपस्य आरम्भमूल्यं अन्त्यमूल्यं च निर्दिशन्तु (अन्तमूल्यं सहितम्) ।
  • $i चरस्य उपयोगः लूप् बॉडी इत्यस्मिन् वर्तमान लूप् इत्यस्य इंडेक्स् मूल्यं प्रतिनिधितुं शक्यते ।

उदाहरण

  1. @for $i from 1 through 3 {
  2. .item-#{$i} {
  3. width: 100px * $i;
  4. }
  5. }

उपर्युक्ते उदाहरणे .item-1, .item-2, .item-3 इति त्रयः वर्गाः उत्पद्यन्ते, येषां विस्ताराः क्रमशः 100px, 200px, 300px इति सेट् भवन्ति ।

@ प्रत्येकं पाश

@each लूप् इत्यस्य उपयोगः सूची अथवा मानचित्रप्रकारस्य दत्तांशं भ्रमितुं प्रत्येकस्य तत्त्वस्य शैल्याः जनयितुं च भवति ।

मूलव्याकरणम्

  1. @each $var in <list or map> {
  2. // 循环体
  3. }
  • $var: वर्तमानपाशस्य चरं प्रतिनिधियति ।
  • <list or map>: सूची (यथा $list: item1, item2, item3;) अथवा नक्शा (key-value pair) भवितुम् अर्हति ।

उदाहरण

  1. $colors: (red, green, blue);
  2. @each $color in $colors {
  3. .text-#{$color} {
  4. color: $color;
  5. }
  6. }

 

अस्मिन् उदाहरणे .text-red, .text-green, .text-blue इति त्रयः वर्गाः उत्पद्यन्ते, तेषां पाठवर्णाः च तत्सम्बद्धवर्णमूल्येषु सेट् भवन्ति ।

@while पाश

@while लूप् पुनः पुनः कस्यापि कण्डिशन् इत्यस्य आधारेण शैल्याः जनयति यावत् कण्डिशन् न पूर्यते ।

मूलव्याकरणम्

  1. $i: 1;
  2. @while $i < 4 {
  3. // 循环体
  4. $i: $i + 1; // 更新条件
  5. }
  • $i: लूप् काउण्टर अथवा कण्डिशन् वैरिएबल इत्यस्य रूपेण ।
  • लूप् बॉडी इत्यस्मिन् कोऽपि SCSS कोड् निष्पादयितुं शक्यते सामान्यतया, अनन्त लूप् परिहरितुं लूप् बॉडी इत्यस्य अन्ते कण्डिशन् चर इत्यस्य अद्यतनीकरणस्य आवश्यकता भवति ।

उदाहरण

  1. $i: 1;
  2. @while $i < 4 {
  3. .item-#{$i} {
  4. width: 100px * $i;
  5. }
  6. $i: $i + 1;
  7. }

एषः कोडः .item-1, .item-2 तथा .item-3 इति त्रीणि वर्गाणि जनयति, तेषां विस्तारं च क्रमशः 100px, 200px, 300px इति सेट् करोति ।

सारांशं कुरुत

त्रयः SCSS लूप् संरचनाः @for, @each तथा @while इत्येतयोः उपयोगः अनुक्रमणिकाद्वारा लूप् कर्तुं, traverse list अथवा map type data इत्यनेन, तथा च क्रमशः सशर्तपाशस्य आधारेण शैल्याः जनयितुं भवति । एतानि लूप् संरचनानि SCSS अधिकं शक्तिशालीं लचीलं च कुर्वन्ति, आवश्यकतानुसारं जटिल CSS नियमाः जनयितुं समर्थाः भवन्ति ।

कस्टम् फंक्शन्स् तथा उपयोगः

SCSS मध्ये, शैलीपत्राणि कस्टम् फंक्शन् इत्यनेन वर्धयितुं शक्यन्ते ये पैरामीटर्स् स्वीकुर्वन्ति तथा च प्रोसेस्ड् मूल्यानि प्रत्यागच्छन्ति ।

कस्टम् फंक्शन्स् परिभाषयन्तु

SCSS मध्ये, कार्याणि परिभाषितुं @function कीवर्डस्य उपयोगं कुर्वन्तु, येषु पैरामीटर्स्, रिटर्न् मूल्यानि च भवितुम् अर्हन्ति । यथा, वयं कस्यचित् तत्त्वस्य कुलपेटीप्रतिरूपविस्तारस्य गणनाय एकं फंक्शन् परिभाषयामः :

  1. @function total-width($padding, $border, $margin, $content-width) {
  2. @return $padding + $border + $margin + $content-width;
  3. }

उपर्युक्ते उदाहरणे - १.

  • total-width इति कार्यस्य नाम ।
  • फंक्शन् चत्वारि पैरामीटर् स्वीकुर्वति : $padding, $border, $margin, $content-width इति ।
  • @return स्टेट्मेण्ट् इत्यस्य उपयोगः गणितं मूल्यं प्रत्यागन्तुं भवति ।

कस्टम् फंक्शन्स् इत्यस्य उपयोगं कुर्वन्तु

एकदा फंक्शन् परिभाषितं जातं चेत् तस्य उपयोगः शैल्याः आवश्यकमूल्यानां गणनां जनयितुं च कर्तुं शक्यते । उदाहरणतया:

  1. .element {
  2. width: total-width(10px, 1px, 5px, 100px);
  3. }

 

अस्मिन् उदाहरणे 10px, 1px, 5px तथा 100px इति पैरामीटर् इत्यनेन सह total-width फंक्शन् आह्वयते । फंक्शन् (116px) द्वारा प्रत्यागतं परिणामं .element इत्यस्य width गुणस्य उपरि प्रयुक्तं भविष्यति ।

सावधानताएँ

  • कार्याणि कस्यापि SCSS सञ्चिकायां समाविष्टानि भवितुम् अर्हन्ति तथा च अन्येषां शैलीनियमानां इव व्यवस्थितं आयातं च कर्तुं शक्यते ।
  • SCSS इत्यस्य सर्वाणि विशेषतानि, यथा नियन्त्रणकथनानि (यथा @if, @for, @each, @while) तथा च अन्तःनिर्मितकार्यं, कार्येषु उपयोक्तुं शक्यन्ते ।
  • फंक्शन् इत्यस्य पैरामीटर्स् कोऽपि SCSS दत्तांशप्रकारः भवितुम् अर्हति, यत्र संख्याः, स्ट्रिंग्, वर्णाः इत्यादयः सन्ति ।

गृहकार्य

पृष्ठस्य कृष्णशुक्लविषयं स्विच् कर्तुं SCSS इत्यस्य उपयोगं कुर्वन्तु

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. <link rel="stylesheet" href="main.css">
  7. <title>黑白色主题切换</title>
  8. </head>
  9. <body>
  10. <div class="container">
  11. <button id="theme-toggle">切换主题</button>
  12. <div class="box">
  13. <div class="content">
  14. <p>这是一些文本内容。</p>
  15. <p>这是一些文本内容。</p>
  16. <p>这是一些文本内容。</p>
  17. <p>这是一些文本内容。</p>
  18. <p>这是一些文本内容。</p>
  19. <p>这是一些文本内容。</p>
  20. <p>这是一些文本内容。</p>
  21. </div>
  22. </div>
  23. </div>
  24. <script src="main.js"></script>
  25. </body>
  26. </html>

scss

  1. // 定义轻主题的样式变量
  2. $light-theme: (
  3. background-color: white,
  4. text-color: black,
  5. highlight-color: #f0f0f0
  6. );
  7. // 定义暗主题的样式变量
  8. $dark-theme: (
  9. background-color: black,
  10. text-color: white,
  11. highlight-color: #333333
  12. );
  13. // 定义一个混合(mixin)来应用主题样式
  14. // 参数 $theme: 要应用的主题,是一个包含背景色、文本颜色和高亮颜色的映射(map)
  15. @mixin theme($theme) {
  16. background-color: map-get($theme, background-color);
  17. color: map-get($theme, text-color);
  18. // 为 .box 类应用主题的高亮颜色
  19. .box {
  20. background-color: map-get($theme, highlight-color);
  21. }
  22. }
  23. // 应用轻主题样式到 body 元素,并添加过渡效果
  24. body {
  25. @include theme($light-theme);
  26. transition: all 0.3s ease;
  27. }
  28. // 为 body 的 dark 类应用暗主题样式
  29. body.dark {
  30. @include theme($dark-theme);
  31. }
  32. // 设置容器的文本居中和顶部间距
  33. .container {
  34. text-align: center;
  35. margin-top: 20px;
  36. }
  37. // 配置主题切换按钮的样式
  38. #theme-toggle {
  39. padding: 10px 20px;
  40. cursor: pointer;
  41. border: none;
  42. outline: none;
  43. background-color: #007bff;
  44. color: white;
  45. font-size: 16px;
  46. border-radius: 5px;
  47. }
  48. // 鼠标悬停在主题切换按钮上时改变背景色
  49. #theme-toggle:hover {
  50. background-color: #0056b3;
  51. }
  52. // 定义 .box 类的基本样式和过渡效果
  53. .box {
  54. margin: 20px auto;
  55. padding: 20px;
  56. width: 50%;
  57. border: 1px solid #ccc;
  58. transition: all 0.3s ease;
  59. // 内容区域的样式配置
  60. .content {
  61. p {
  62. margin: 10px 0;
  63. }
  64. }
  65. }

js

  1. /**
  2. * 为主题切换按钮添加点击事件监听器
  3. * 当按钮被点击时,切换文档主体的黑暗主题样式
  4. *
  5. * 该函数通过toggle方法动态切换body元素的'dark'类,从而实现主题的切换。
  6. * 如果body已经应用了'dark'类,那么点击按钮将移除这个类,反之亦然。
  7. * 这种方式允许用户在黑暗主题和默认主题之间自由切换。
  8. */
  9. document.getElementById('theme-toggle').addEventListener('click', () => {
  10. document.body.classList.toggle('dark');
  11. });