സിഎസ്എസ് @extend-ന്റെ ശക്തി ഉപയോഗിച്ച് കോഡ് വൃത്തിയുള്ളതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതുമാക്കൂ. സ്റ്റൈലുകൾ ഇൻഹെറിറ്റ് ചെയ്യാനും ആവർത്തനങ്ങൾ ഒഴിവാക്കാനും മികച്ച ഉദാഹരണങ്ങളിലൂടെയും രീതികളിലൂടെയും നിങ്ങളുടെ വർക്ക്ഫ്ലോ മെച്ചപ്പെടുത്താനും പഠിക്കൂ.
സിഎസ്എസ് @extend: കാര്യക്ഷമമായ വെബ് ഡെവലപ്മെന്റിനായി സ്റ്റൈൽ ഇൻഹെറിറ്റൻസ് മാസ്റ്റർ ചെയ്യാം
വെബ് ഡെവലപ്മെന്റിന്റെ എപ്പോഴും വികസിച്ചുകൊണ്ടിരിക്കുന്ന ലോകത്ത്, വൃത്തിയുള്ളതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതും കാര്യക്ഷമവുമായ സിഎസ്എസ് എഴുതുന്നത് വളരെ പ്രധാനമാണ്. നിങ്ങളുടെ സിഎസ്എസ് ആർക്കിടെക്ചർ കാര്യമായി മെച്ചപ്പെടുത്താൻ കഴിയുന്ന ഒരു ശക്തമായ സാങ്കേതികതയാണ് @extend
ഡയറക്റ്റീവ്. സാസ്, ലെസ് പോലുള്ള സിഎസ്എസ് പ്രീപ്രൊസസറുകളിൽ സാധാരണയായി കാണുന്ന ഈ ഫീച്ചർ (ചില പരിമിതികളോടെ സിഎസ്എസ്-ൽ നേരിട്ടും ലഭ്യമാണ്, അത് നമ്മുക്ക് ചർച്ച ചെയ്യാം), ഒരു സെലക്ടറിൽ നിന്ന് മറ്റൊന്നിലേക്ക് സ്റ്റൈലുകൾ ഇൻഹെറിറ്റ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് ആവർത്തനങ്ങൾ കുറയ്ക്കുകയും കൂടുതൽ ചിട്ടയായ കോഡ്ബേസ് പ്രോത്സാഹിപ്പിക്കുകയും ചെയ്യുന്നു. ഈ ഗൈഡ് @extend
ഡയറക്റ്റീവിനെക്കുറിച്ച് ആഴത്തിൽ വിശദീകരിക്കും, അതിന്റെ പ്രയോജനങ്ങൾ, ഉപയോഗങ്ങൾ, മികച്ച രീതികൾ, സാധ്യതയുള്ള അപകടങ്ങൾ എന്നിവയെല്ലാം ഇതിൽ ഉൾക്കൊള്ളുന്നു.
എന്താണ് സിഎസ്എസ് @extend?
@extend
ഡയറക്റ്റീവ് അടിസ്ഥാനപരമായി ഒരു സിഎസ്എസ് സെലക്ടറിൽ നിർവചിച്ചിരിക്കുന്ന സ്റ്റൈലുകൾ പകർത്തി മറ്റൊന്നിലേക്ക് പ്രയോഗിക്കുന്നു. ഇത് ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗിലെ ഇൻഹെറിറ്റൻസ് തത്വങ്ങൾക്ക് സമാനമാണ്, അവിടെ ഒരു ക്ലാസ് (സെലക്ടർ) ഒരു പാരന്റ് ക്ലാസ്സിൽ (സെലക്ടർ) നിന്ന് പ്രോപ്പർട്ടികളും മെത്തേഡുകളും (സ്റ്റൈലുകൾ) ഇൻഹെറിറ്റ് ചെയ്യുന്നു. DRY (Don't Repeat Yourself) എന്ന തത്വം പാലിക്കുക, ആവർത്തന കോഡുകൾ കുറയ്ക്കുക, നിങ്ങളുടെ സ്റ്റൈൽഷീറ്റുകൾ കൈകാര്യം ചെയ്യാനും അപ്ഡേറ്റ് ചെയ്യാനും എളുപ്പമാക്കുക എന്നിവയാണ് പ്രധാന ലക്ഷ്യം.
മിക്സിനുകളിൽ നിന്ന് (സിഎസ്എസ് പ്രീപ്രൊസസറുകളിലെ മറ്റൊരു സാധാരണ ഫീച്ചർ) വ്യത്യസ്തമായി, @extend
സ്റ്റൈലുകൾ വെറുതെ കോപ്പി-പേസ്റ്റ് ചെയ്യുകയല്ല ചെയ്യുന്നത്. പകരം, എക്സ്റ്റെൻഡ് ചെയ്യുന്ന സെലക്ടറിനെ ഉൾപ്പെടുത്താൻ സിഎസ്എസ് സെലക്ടറുകളെ ഇത് പരിഷ്കരിക്കുന്നു. ഇത് കൂടുതൽ കാര്യക്ഷമമായ സിഎസ്എസ് ഔട്ട്പുട്ടിലേക്ക് നയിക്കും, പ്രത്യേകിച്ചും സങ്കീർണ്ണമായ സ്റ്റൈലുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ.
@extend ഉപയോഗിക്കുന്നതിന്റെ പ്രയോജനങ്ങൾ
- ഡ്രൈ സിഎസ്എസ് (DRY CSS): ഒരേ സ്റ്റൈലുകൾ പലയിടത്തും ആവർത്തിക്കുന്നത് ഒഴിവാക്കുക. ഇത് നിങ്ങളുടെ സിഎസ്എസ് വായിക്കാനും എഴുതാനും പരിപാലിക്കാനും എളുപ്പമാക്കുന്നു. ഒരു വെബ്സൈറ്റിലെ സ്റ്റൈലിംഗ് നിയമങ്ങൾ നിരവധി ഫയലുകളിലായി വ്യാപിച്ചുകിടക്കുന്നത് സങ്കൽപ്പിക്കുക; ഒരു ഗ്ലോബൽ സ്റ്റൈൽ മാറ്റുന്നത് ഒരു പേടിസ്വപ്നമായി മാറും.
@extend
ഈ പ്രശ്നം ഇല്ലാതാക്കുന്നു. - പരിപാലിക്കാനുള്ള എളുപ്പം (Maintainability): ഒരു സ്റ്റൈൽ അപ്ഡേറ്റ് ചെയ്യണമെങ്കിൽ, ഒരിടത്ത് മാത്രം മാറ്റം വരുത്തിയാൽ മതി. ഇത് പിഴവുകളുടെയും പൊരുത്തക്കേടുകളുടെയും സാധ്യത കുറയ്ക്കുന്നു. ഒരു വെബ്സൈറ്റിന്റെ സിഎസ്എസ്-ൽ ബട്ടൺ സ്റ്റൈലുകൾ ആവർത്തിച്ച് നിർവചിച്ചിരിക്കുന്ന ഒരു സാഹചര്യം പരിഗണിക്കുക. എല്ലാ ബട്ടണുകളുടെയും പാഡിംഗ് ക്രമീകരിക്കണമെങ്കിൽ, ഓരോ ഇൻസ്റ്റൻസും കണ്ടെത്തി മാറ്റം വരുത്തേണ്ടിവരും.
@extend
അടിസ്ഥാന ബട്ടൺ സ്റ്റൈൽ മാറ്റാൻ നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ എക്സ്റ്റെൻഡ് ചെയ്യുന്ന എല്ലാ സ്റ്റൈലുകളും സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യപ്പെടും. - പ്രകടനം (Performance): ചില സന്ദർഭങ്ങളിൽ, മിക്സിനുകളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ
@extend
ചെറിയ സിഎസ്എസ് ഫയലുകളിലേക്ക് നയിച്ചേക്കാം, കാരണം ഇത് ഒരേ സ്റ്റൈലുകൾ ഒന്നിലധികം തവണ ആവർത്തിക്കുന്നത് ഒഴിവാക്കുന്നു. ഇത് വേഗതയേറിയ പേജ് ലോഡ് സമയത്തിനും മെച്ചപ്പെട്ട വെബ്സൈറ്റ് പ്രകടനത്തിനും കാരണമാകുന്നു. - സെമാന്റിക് സിഎസ്എസ് (Semantic CSS):
@extend
ഉപയോഗിക്കുന്നത് നിങ്ങളുടെ പേജിലെ വിവിധ ഘടകങ്ങൾ തമ്മിൽ വ്യക്തമായ ബന്ധം സ്ഥാപിക്കുന്നതിലൂടെ കൂടുതൽ സെമാന്റിക് സിഎസ്എസ് സൃഷ്ടിക്കാൻ സഹായിക്കും. ഉദാഹരണത്തിന്, എല്ലാ അലേർട്ടുകൾക്കുമായി ഒരു അടിസ്ഥാന സ്റ്റൈൽ ഉണ്ടാക്കുകയും പിന്നീട് വിവിധ തരം അലേർട്ടുകൾക്കായി (സക്സസ്, വാണിംഗ്, എറർ) അത് എക്സ്റ്റെൻഡ് ചെയ്യുകയും ചെയ്യാം.
@extend-ന്റെ പ്രായോഗിക ഉദാഹരണങ്ങൾ
ചില പ്രായോഗിക ഉദാഹരണങ്ങളിലൂടെ @extend
-ന്റെ ശക്തി നമുക്ക് വ്യക്തമാക്കാം. നമ്മൾ സാസ് സിന്റാക്സ് ഉപയോഗിക്കും, കാരണം ഇത് ജനപ്രിയവും നന്നായി പിന്തുണയ്ക്കുന്നതുമായ ഒരു സിഎസ്എസ് പ്രീപ്രൊസസറാണ്. എന്നിരുന്നാലും, ഈ ആശയങ്ങൾ ലെസ് പോലുള്ള മറ്റ് പ്രീപ്രൊസസറുകളിലേക്കോ, അല്ലെങ്കിൽ പരീക്ഷണാത്മക @layer
അറ്റ്-റൂൾ ഉപയോഗിച്ച് നേറ്റീവ് സിഎസ്എസ്-ലേക്കോ മാറ്റാവുന്നതാണ് (അതിനെക്കുറിച്ച് പിന്നീട് കൂടുതൽ).
ഉദാഹരണം 1: അടിസ്ഥാന ബട്ടൺ സ്റ്റൈലുകൾ
നിങ്ങൾക്ക് ഒരു പ്രൈമറി ബട്ടൺ സ്റ്റൈൽ ഉണ്ടെന്നും അത് മറ്റ് ബട്ടൺ വേരിയേഷനുകളിലേക്ക് പ്രയോഗിക്കണമെന്നും കരുതുക.
സാസ് (Sass):
.btn-primary {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}
.btn-secondary {
@extend .btn-primary;
background-color: #6c757d;
}
.btn-success {
@extend .btn-primary;
background-color: #28a745;
}
കംപൈൽ ചെയ്ത സിഎസ്എസ് (Compiled CSS):
.btn-primary, .btn-secondary, .btn-success {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}
.btn-secondary {
background-color: #6c757d;
}
.btn-success {
background-color: #28a745;
}
കംപൈൽ ചെയ്ത സിഎസ്എസ് ഒരേ അടിസ്ഥാന സ്റ്റൈലുകൾ പങ്കിടുന്ന സെലക്ടറുകളെ എങ്ങനെ ഗ്രൂപ്പ് ചെയ്യുന്നു എന്ന് ശ്രദ്ധിക്കുക. ഓരോ ബട്ടൺ വേരിയേഷനിലും അടിസ്ഥാന സ്റ്റൈലുകൾ ആവർത്തിക്കുന്നതിനേക്കാൾ ഇത് കൂടുതൽ കാര്യക്ഷമമാണ്.
ഉദാഹരണം 2: ഫോം ഘടകങ്ങൾ
നിങ്ങളുടെ ഫോം ഘടകങ്ങൾക്ക് സ്ഥിരതയുള്ള രൂപവും ഭാവവും നൽകാൻ @extend
ഉപയോഗിക്കാം.
സാസ് (Sass):
.form-control {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
width: 100%;
}
.form-input {
@extend .form-control;
}
.form-textarea {
@extend .form-control;
height: 150px;
}
ഉദാഹരണം 3: അലേർട്ട് സന്ദേശങ്ങൾ
വിവിധ തരം അലേർട്ടുകൾക്ക് പൊതുവായ സ്റ്റൈലുകൾ പങ്കിടാൻ കഴിയും, എന്നാൽ അവയ്ക്ക് തനതായ നിറങ്ങളോ ഐക്കണുകളോ ഉണ്ടായിരിക്കാം.
സാസ് (Sass):
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
.alert-success {
@extend .alert;
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.alert-info {
@extend .alert;
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.alert-warning {
@extend .alert;
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
.alert-danger {
@extend .alert;
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
@extend ഉപയോഗിക്കുന്നതിനുള്ള മികച്ച രീതികൾ
@extend
ഒരു ശക്തമായ ഉപകരണമാണെങ്കിലും, സാധ്യമായ പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ ഇത് വിവേകത്തോടെ ഉപയോഗിക്കുകയും മികച്ച രീതികൾ പിന്തുടരുകയും ചെയ്യേണ്ടത് പ്രധാനമാണ്.
- സെമാന്റിക് സെലക്ടറുകൾക്കൊപ്പം ഉപയോഗിക്കുക: വളരെ നിർദ്ദിഷ്ടമായ സെലക്ടറുകളേക്കാൾ (ഉദാ.
#content .article p
), സെമാന്റിക് സെലക്ടറുകൾക്കൊപ്പം (ഉദാ..button
,.form-control
) ഉപയോഗിക്കുമ്പോഴാണ്@extend
ഏറ്റവും നന്നായി പ്രവർത്തിക്കുന്നത്. നിർദ്ദിഷ്ട സെലക്ടറുകൾ എക്സ്റ്റെൻഡ് ചെയ്യുന്നത് റീഫാക്ടർ ചെയ്യാൻ പ്രയാസമുള്ള, ഇഴുകിച്ചേർന്ന സിഎസ്എസ്-ലേക്ക് നയിച്ചേക്കാം. - ഫയലുകൾക്കിടയിൽ എക്സ്റ്റെൻഡ് ചെയ്യുന്നത് ഒഴിവാക്കുക: വ്യത്യസ്ത സിഎസ്എസ് ഫയലുകൾക്കിടയിൽ സെലക്ടറുകൾ എക്സ്റ്റെൻഡ് ചെയ്യുന്നത് സ്റ്റൈലുകൾ തമ്മിലുള്ള ബന്ധം മനസ്സിലാക്കാൻ പ്രയാസമുണ്ടാക്കും. ഒരേ ഫയലിലോ മൊഡ്യൂളിലോ എക്സ്റ്റൻഷനുകൾ സൂക്ഷിക്കുന്നതാണ് സാധാരണയായി നല്ലത്.
- സെലക്ടർ സ്പെസിഫിസിറ്റിയെക്കുറിച്ച് ശ്രദ്ധിക്കുക:
@extend
സെലക്ടർ സ്പെസിഫിസിറ്റിയെ ബാധിച്ചേക്കാം. എക്സ്റ്റെൻഡ് ചെയ്യുന്ന സെലക്ടർ, എക്സ്റ്റെൻഡ് ചെയ്യപ്പെട്ട സെലക്ടറിന്റെ സ്പെസിഫിസിറ്റി ഇൻഹെറിറ്റ് ചെയ്യും. നിങ്ങൾ ശ്രദ്ധിച്ചില്ലെങ്കിൽ ഇത് ചിലപ്പോൾ അപ്രതീക്ഷിത സ്വഭാവത്തിലേക്ക് നയിച്ചേക്കാം. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു ഐഡി സെലക്ടർ എക്സ്റ്റെൻഡ് ചെയ്യുകയാണെങ്കിൽ, എക്സ്റ്റെൻഡ് ചെയ്യുന്ന ക്ലാസ്സിനും അതേ ഉയർന്ന സ്പെസിഫിസിറ്റി ഉണ്ടായിരിക്കും. - പ്ലേസ്ഹോൾഡർ സെലക്ടറുകൾ ഉപയോഗിക്കുന്നത് പരിഗണിക്കുക: പ്ലേസ്ഹോൾഡർ സെലക്ടറുകൾ (ഉദാഹരണത്തിന്, സാസിൽ
%base-styles
)@extend
-നൊപ്പം ഉപയോഗിക്കാൻ വേണ്ടി പ്രത്യേകം രൂപകൽപ്പന ചെയ്തവയാണ്. അവ എക്സ്റ്റെൻഡ് ചെയ്തില്ലെങ്കിൽ അന്തിമ സിഎസ്എസ്-ൽ ഔട്ട്പുട്ട് ചെയ്യപ്പെടില്ല. ഇൻഹെറിറ്റൻസിനായി മാത്രം ഉപയോഗിക്കാൻ ഉദ്ദേശിക്കുന്ന അടിസ്ഥാന സ്റ്റൈലുകൾ നിർവചിക്കാൻ ഇത് ഉപയോഗപ്രദമാണ്. - നിങ്ങളുടെ എക്സ്റ്റൻഷനുകൾ ഡോക്യുമെന്റ് ചെയ്യുക: ഏതൊക്കെ സെലക്ടറുകളാണ് ഏതിനെ എക്സ്റ്റെൻഡ് ചെയ്യുന്നതെന്ന് വ്യക്തമായി ഡോക്യുമെന്റ് ചെയ്യുക. ഇത് മറ്റ് ഡെവലപ്പർമാർക്കും (നിങ്ങളുടെ ഭാവിയിലെ നിങ്ങൾക്കും) സിഎസ്എസ് ആർക്കിടെക്ചർ മനസ്സിലാക്കാൻ എളുപ്പമാക്കും.
- കൃത്യമായി ടെസ്റ്റ് ചെയ്യുക: സ്റ്റൈലുകൾ ശരിയായി പ്രയോഗിക്കുന്നുണ്ടെന്നും അപ്രതീക്ഷിതമായ പാർശ്വഫലങ്ങളൊന്നും ഇല്ലെന്നും ഉറപ്പാക്കാൻ
@extend
ഉപയോഗിച്ചതിന് ശേഷം എപ്പോഴും നിങ്ങളുടെ സിഎസ്എസ് നന്നായി ടെസ്റ്റ് ചെയ്യുക. വലുതോ സങ്കീർണ്ണമോ ആയ പ്രോജക്റ്റുകളിൽ പ്രവർത്തിക്കുമ്പോൾ ഇത് വളരെ പ്രധാനമാണ്.
@extend-ന്റെ സാധ്യതയുള്ള അപകടങ്ങൾ
അതിന്റെ പ്രയോജനങ്ങൾക്കിടയിലും, ശ്രദ്ധയോടെ ഉപയോഗിച്ചില്ലെങ്കിൽ @extend
ചില പ്രശ്നങ്ങൾക്ക് കാരണമായേക്കാം.
- വർധിച്ച സ്പെസിഫിസിറ്റി: നേരത്തെ സൂചിപ്പിച്ചതുപോലെ,
@extend
സെലക്ടർ സ്പെസിഫിസിറ്റി വർദ്ധിപ്പിക്കാൻ സാധ്യതയുണ്ട്, ഇത് പിന്നീട് സ്റ്റൈലുകൾ ഓവർറൈഡ് ചെയ്യുന്നത് ബുദ്ധിമുട്ടാക്കിയേക്കാം. - മറഞ്ഞിരിക്കുന്ന ഡിപൻഡൻസികൾ:
@extend
സൃഷ്ടിക്കുന്ന സെലക്ടറുകൾ തമ്മിലുള്ള ബന്ധം മറഞ്ഞിരിക്കാം, ഇത് സിഎസ്എസ് ആർക്കിടെക്ചർ ഒറ്റനോട്ടത്തിൽ മനസ്സിലാക്കാൻ പ്രയാസമുണ്ടാക്കുന്നു. - അപ്രതീക്ഷിത പ്രത്യാഘാതങ്ങൾ: ഒന്നിലധികം സ്ഥലങ്ങളിൽ ഉപയോഗിക്കുന്ന ഒരു സെലക്ടർ എക്സ്റ്റെൻഡ് ചെയ്യുന്നത് അപ്രതീക്ഷിത പ്രത്യാഘാതങ്ങൾക്ക് ഇടയാക്കും, കാരണം എക്സ്റ്റെൻഡ് ചെയ്യുന്ന സെലക്ടറുമായി പൊരുത്തപ്പെടുന്ന എല്ലാ ഘടകങ്ങളിലും സ്റ്റൈലുകൾ പ്രയോഗിക്കപ്പെടും.
- സർക്കുലർ ഡിപൻഡൻസികൾ:
@extend
ഉപയോഗിച്ച് സർക്കുലർ ഡിപൻഡൻസികൾ സൃഷ്ടിക്കാൻ സാധ്യതയുണ്ട് (ഉദാഹരണത്തിന്, സെലക്ടർ A സെലക്ടർ B-യെ എക്സ്റ്റെൻഡ് ചെയ്യുന്നു, സെലക്ടർ B സെലക്ടർ A-യെ എക്സ്റ്റെൻഡ് ചെയ്യുന്നു). ഇത് സിഎസ്എസ് കംപൈലേഷൻ സമയത്ത് അനന്തമായ ലൂപ്പുകളിലേക്ക് നയിച്ചേക്കാം, അത് ഒഴിവാക്കണം. - സ്പെസിഫിസിറ്റി യുദ്ധങ്ങൾ:
@extend
-ന്റെ അമിതമായ ഉപയോഗവും `!important`-ന്റെ ഉദാരമായ ഉപയോഗവും കാസ്കേഡിംഗ് സ്റ്റൈൽ പേടിസ്വപ്നങ്ങൾ സൃഷ്ടിക്കാൻ എളുപ്പത്തിൽ കാരണമാകും.@extend
പ്രയോജനപ്പെടുത്തുമ്പോൾ സ്പെസിഫിസിറ്റി നിങ്ങളുടെ ഡിസൈനുകളെ എങ്ങനെ ബാധിക്കുന്നു എന്ന് പരിഗണിക്കേണ്ടത് പ്രധാനമാണ്.
@extend vs. മിക്സിനുകൾ
@extend
-ഉം മിക്സിനുകളും സിഎസ്എസ് പ്രീപ്രൊസസറുകളിലെ ശക്തമായ ഫീച്ചറുകളാണ്, അവ കൂടുതൽ കാര്യക്ഷമമായ സിഎസ്എസ് എഴുതാൻ നിങ്ങളെ സഹായിക്കും. എന്നിരുന്നാലും, അവ വ്യത്യസ്ത രീതികളിലാണ് പ്രവർത്തിക്കുന്നത്, അവയ്ക്ക് വ്യത്യസ്ത ഉപയോഗങ്ങളുണ്ട്.
@extend:
- ഒരു സെലക്ടറിൽ നിന്ന് മറ്റൊന്നിലേക്ക് സ്റ്റൈലുകൾ ഇൻഹെറിറ്റ് ചെയ്യുന്നു.
- എക്സ്റ്റെൻഡ് ചെയ്യുന്ന സെലക്ടറിനെ ഉൾപ്പെടുത്താൻ സിഎസ്എസ് സെലക്ടറുകളെ പരിഷ്കരിക്കുന്നു.
- ചില സന്ദർഭങ്ങളിൽ ചെറിയ സിഎസ്എസ് ഫയലുകളിലേക്ക് നയിച്ചേക്കാം.
- ബന്ധപ്പെട്ട ഘടകങ്ങൾക്കിടയിൽ അടിസ്ഥാന സ്റ്റൈലുകൾ പങ്കിടാൻ ഏറ്റവും അനുയോജ്യം.
മിക്സിനുകൾ:
- നിലവിലെ സെലക്ടറിലേക്ക് സ്റ്റൈലുകൾ കോപ്പി-പേസ്റ്റ് ചെയ്യുന്നു.
- സ്റ്റൈലുകൾ കസ്റ്റമൈസ് ചെയ്യുന്നതിനായി ആർഗ്യുമെന്റുകൾ പാസ് ചെയ്യാൻ അനുവദിക്കുന്നു.
- വിപുലമായി ഉപയോഗിച്ചാൽ വലിയ സിഎസ്എസ് ഫയലുകളിലേക്ക് നയിച്ചേക്കാം.
- കസ്റ്റമൈസ് ചെയ്യാവുന്ന ഓപ്ഷനുകളുള്ള (ഉദാഹരണത്തിന്, വെണ്ടർ പ്രിഫിക്സുകൾ, റെസ്പോൺസീവ് ബ്രേക്ക്പോയിന്റുകൾ) പുനരുപയോഗിക്കാവുന്ന കോഡ് ബ്ലോക്കുകൾ സൃഷ്ടിക്കാൻ ഏറ്റവും അനുയോജ്യം.
പൊതുവായി, ബന്ധപ്പെട്ട ഘടകങ്ങൾക്കിടയിൽ അടിസ്ഥാന സ്റ്റൈലുകൾ പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുകയും സ്റ്റൈലുകൾ കസ്റ്റമൈസ് ചെയ്യേണ്ട ആവശ്യമില്ലെങ്കിൽ @extend
ഉപയോഗിക്കുക. കസ്റ്റമൈസ് ചെയ്യാവുന്ന ഓപ്ഷനുകളുള്ള പുനരുപയോഗിക്കാവുന്ന കോഡ് ബ്ലോക്കുകൾ സൃഷ്ടിക്കേണ്ടിവരുമ്പോൾ മിക്സിനുകൾ ഉപയോഗിക്കുക.
ഈ ഉദാഹരണം പരിഗണിക്കുക:
// Using Extend
.base-button {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}
.primary-button {
@extend .base-button;
background-color: blue;
color: white;
}
// Using a Mixin
@mixin button-styles($bg-color, $text-color) {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
background-color: $bg-color;
color: $text-color;
}
.secondary-button {
@include button-styles(green, white);
}
നേറ്റീവ് സിഎസ്എസ് ബദലുകൾ: സ്റ്റൈൽ ഇൻഹെറിറ്റൻസിന്റെ ഭാവി
@extend
പ്രധാനമായും സിഎസ്എസ് പ്രീപ്രൊസസറുകളുമായി ബന്ധപ്പെട്ടതാണെങ്കിലും, സമാനമായ പ്രവർത്തനം നൽകുന്ന നേറ്റീവ് സിഎസ്എസ് ഫീച്ചറുകൾ ഉയർന്നുവരുന്നുണ്ട്, പക്ഷെ അവയ്ക്ക് വ്യത്യസ്ത സമീപനങ്ങളും പരിമിതികളും ഉണ്ട്. അത്തരത്തിലുള്ള ഒരു ഫീച്ചറാണ് @layer
അറ്റ്-റൂൾ (സിഎസ്എസ് കാസ്കേഡ് ലെയറുകൾ).
സിഎസ്എസ് കാസ്കേഡ് ലെയറുകൾ (@layer)
സിഎസ്എസ് കാസ്കേഡിലെ മുൻഗണനാ ക്രമം നിയന്ത്രിക്കാൻ കാസ്കേഡ് ലെയറുകൾ ഒരു വഴി നൽകുന്നു. @extend
-ന് നേരിട്ടുള്ള ഒരു പകരക്കാരനല്ലെങ്കിലും, സമാനമായ തലത്തിലുള്ള സ്റ്റൈൽ ഇൻഹെറിറ്റൻസും ഓർഗനൈസേഷനും നേടാൻ അവ ഉപയോഗിക്കാം.
@layer
-ന് പിന്നിലെ പ്രധാന ആശയം, സ്റ്റൈലുകളുടെ വ്യത്യസ്ത ലെയറുകൾ നിർവചിക്കുകയും അവയുടെ പ്രയോഗത്തിന്റെ ക്രമം നിയന്ത്രിക്കുകയുമാണ്. ഇത് തുടർന്നുള്ള ലെയറുകളിലെ കൂടുതൽ നിർദ്ദിഷ്ട സ്റ്റൈലുകൾ ഉപയോഗിച്ച് എളുപ്പത്തിൽ ഓവർറൈഡ് ചെയ്യാവുന്ന അടിസ്ഥാന സ്റ്റൈലുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. മൂന്നാം കക്ഷി ലൈബ്രറികളുമായോ സങ്കീർണ്ണമായ സിഎസ്എസ് ആർക്കിടെക്ചറുകളുമായോ ഇടപെടുമ്പോൾ ഇത് പ്രത്യേകിച്ചും സഹായകമാണ്.
ഉദാഹരണം:
@layer base {
.button {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}
}
@layer theme {
.button {
background-color: blue;
color: white;
}
}
.special-button {
@layer theme;
background-color: red;
}
സിന്റാക്സ് സമാനമല്ലെങ്കിലും, ഈ ഘടന സ്റ്റൈലുകളുടെ ഒരു 'ബേസ്' ലെയറും ഒരു 'തീം' ലെയറും സൃഷ്ടിക്കുന്നു. 'ബേസ്' ലെയറിന് ശേഷമാണ് 'തീം' ലെയർ വരുന്നതുകൊണ്ട്, അത് അടിസ്ഥാന സ്റ്റൈലുകളെ ഓവർറൈഡ് ചെയ്യും. കുറിപ്പ്: കാസ്കേഡ് ലെയറുകൾ ഇപ്പോഴും താരതമ്യേന പുതിയതാണ്, എല്ലാ ബ്രൗസറുകളിലും പൂർണ്ണമായി പിന്തുണച്ചേക്കില്ല. പ്രൊഡക്ഷനിൽ ഉപയോഗിക്കുന്നതിന് മുമ്പ് എപ്പോഴും ബ്രൗസർ അനുയോജ്യത പരിശോധിക്കുക.
ഉപസംഹാരം
വൃത്തിയുള്ളതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതും കാര്യക്ഷമവുമായ സിഎസ്എസ് എഴുതുന്നതിനുള്ള ഒരു ശക്തമായ ഉപകരണമാണ് സിഎസ്എസ് @extend
. അതിന്റെ പ്രയോജനങ്ങൾ, ഉപയോഗങ്ങൾ, മികച്ച രീതികൾ, സാധ്യതയുള്ള അപകടങ്ങൾ എന്നിവ മനസ്സിലാക്കുന്നതിലൂടെ, നിങ്ങളുടെ സിഎസ്എസ് ആർക്കിടെക്ചർ മെച്ചപ്പെടുത്താനും വെബ് ഡെവലപ്മെന്റ് വർക്ക്ഫ്ലോ കാര്യക്ഷമമാക്കാനും നിങ്ങൾക്ക് ഇത് പ്രയോജനപ്പെടുത്താം. കാസ്കേഡ് ലെയറുകൾ പോലുള്ള നേറ്റീവ് സിഎസ്എസ് ബദലുകൾ ഉയർന്നുവരുന്നുണ്ടെങ്കിലും, സാസ്, ലെസ് പോലുള്ള സിഎസ്എസ് പ്രീപ്രൊസസറുകളുമായി പ്രവർത്തിക്കുമ്പോൾ @extend
ഒരു വിലപ്പെട്ട സാങ്കേതികതയായി തുടരുന്നു. നിങ്ങളുടെ പ്രോജക്റ്റിന്റെ ആവശ്യകതകൾ ശ്രദ്ധാപൂർവ്വം പരിഗണിച്ച് ഈ ഗൈഡിൽ പറഞ്ഞിരിക്കുന്ന മാർഗ്ഗനിർദ്ദേശങ്ങൾ പാലിക്കുന്നതിലൂടെ, നിങ്ങളുടെ പ്രേക്ഷകർ ലോകത്ത് എവിടെയായിരുന്നാലും, നിങ്ങളുടെ വെബ് പ്രോജക്റ്റുകൾക്കായി ഉയർന്ന നിലവാരമുള്ളതും പരിപാലിക്കാൻ കഴിയുന്നതുമായ സിഎസ്എസ് സൃഷ്ടിക്കാനും സ്റ്റൈൽ ഇൻഹെറിറ്റൻസിൽ വൈദഗ്ദ്ധ്യം നേടാനും നിങ്ങൾക്ക് കഴിയും.
കൂടുതൽ പഠിക്കാൻ
- സാസ് ഡോക്യുമെന്റേഷൻ: https://sass-lang.com/documentation/at-rules/extend
- ലെസ് ഡോക്യുമെന്റേഷൻ: http://lesscss.org/features/#extend-feature
- സിഎസ്എസ് കാസ്കേഡ് ലെയറുകൾ: https://developer.mozilla.org/en-US/docs/Web/CSS/@layer