CSS @when નિયમનું અન્વેષણ કરો, જે બ્રાઉઝર સપોર્ટ, વ્યૂપોર્ટ કદ અને વધુના આધારે શરતી સ્ટાઈલ એપ્લિકેશનને સક્ષમ કરતી એક શક્તિશાળી સુવિધા છે. વ્યવહારુ ઉદાહરણો સાથે શીખો.
CSS @when નિયમ: શરતી સ્ટાઈલ એપ્લિકેશનમાં નિપુણતા મેળવવી
CSSની દુનિયા સતત વિકસિત થઈ રહી છે, જે ડેવલપર્સને વેબ પેજને સ્ટાઈલ કરવા માટે વધુ શક્તિશાળી અને લવચીક રીતો પ્રદાન કરે છે. આવી જ એક સુવિધા જે લોકપ્રિયતા મેળવી રહી છે તે છે @when
નિયમ, જેને CSS કન્ડિશનલ રૂલ્સ મોડ્યુલ લેવલ 1 તરીકે પણ ઓળખવામાં આવે છે. આ નિયમ તમને ચોક્કસ શરતો પૂરી થવા પર CSS સ્ટાઈલને શરતી રીતે લાગુ કરવાની મંજૂરી આપે છે. તે રિસ્પોન્સિવ ડિઝાઇન, ફીચર ડિટેક્શન અને વધુ મજબૂત અને અનુકૂલનશીલ સ્ટાઈલશીટ બનાવવા માટે એક શક્તિશાળી સાધન છે.
CSS @when નિયમ શું છે?
@when
નિયમ CSS માં એક શરતી એટ-રૂલ છે જે તમને એવી સ્ટાઈલ વ્યાખ્યાયિત કરવાની મંજૂરી આપે છે જે ફક્ત ત્યારે જ લાગુ થાય છે જો અમુક શરતો સાચી હોય. તેને તમારા CSS માટે if
સ્ટેટમેન્ટ તરીકે વિચારો. મીડિયા ક્વેરીઝથી વિપરીત, જે મુખ્યત્વે વ્યૂપોર્ટ લાક્ષણિકતાઓ (સ્ક્રીનનું કદ, ઓરિએન્ટેશન, વગેરે) પર ધ્યાન કેન્દ્રિત કરે છે, @when
શરતી સ્ટાઇલિંગને હેન્ડલ કરવા માટે વધુ સામાન્ય અને વિસ્તૃત રીત પ્રદાન કરે છે. તે @supports
અને @media
જેવા હાલના શરતી એટ-રૂલ્સ પર વિસ્તરણ કરે છે.
@when નો ઉપયોગ કરવાના મુખ્ય ફાયદા
- સુધારેલી કોડ વાંચનીયતા:
@when
બ્લોક્સમાં શરતી તર્કને સમાવીને, તમે તમારા CSSને સમજવા અને જાળવવામાં સરળ બનાવો છો. ચોક્કસ સ્ટાઈલ એપ્લિકેશન પાછળનો હેતુ સ્પષ્ટ બને છે. - વધારેલી લવચીકતા:
@when
પરંપરાગત મીડિયા ક્વેરીઝ કરતાં વધુ જટિલ પરિસ્થિતિઓને હેન્ડલ કરી શકે છે, ખાસ કરીને જ્યારે ફીચર ક્વેરીઝ અને જાવાસ્ક્રિપ્ટ-ડ્રાઇવન લોજિક (CSS કસ્ટમ પ્રોપર્ટીઝનો ઉપયોગ કરીને) સાથે જોડવામાં આવે છે. - સરળ ફીચર ડિટેક્શન:
@when
@supports
સાથે સરળતાથી સંકલિત થાય છે, જેનાથી તમે ત્યારે જ સ્ટાઈલ લાગુ કરી શકો છો જ્યારે ચોક્કસ બ્રાઉઝર સુવિધાઓ ઉપલબ્ધ હોય. આ પ્રોગ્રેસિવ એન્હાન્સમેન્ટ માટે નિર્ણાયક છે. - વધુ સિમેન્ટિક સ્ટાઇલિંગ:
@when
તમને તત્વોને તેમની સ્થિતિ અથવા સંદર્ભના આધારે સ્ટાઈલ કરવાની મંજૂરી આપે છે, જેનાથી વધુ સિમેન્ટિક અને જાળવણીપાત્ર CSS બને છે. ઉદાહરણ તરીકે, જાવાસ્ક્રિપ્ટ દ્વારા સેટ કરેલા ડેટા એટ્રિબ્યુટ્સ અથવા કસ્ટમ પ્રોપર્ટીઝના આધારે તત્વોને સ્ટાઈલ કરવું.
@when નિયમનું સિન્ટેક્સ
@when
નિયમનું મૂળભૂત સિન્ટેક્સ નીચે મુજબ છે:
@when <condition> {
/* શરત સાચી હોય ત્યારે લાગુ કરવા માટેના CSS નિયમો */
}
<condition>
કોઈપણ માન્ય બુલિયન એક્સપ્રેશન હોઈ શકે છે જે સાચું કે ખોટું મૂલ્યાંકન કરે છે. આ અભિવ્યક્તિમાં ઘણીવાર શામેલ હોય છે:
- મીડિયા ક્વેરીઝ: વ્યૂપોર્ટ લાક્ષણિકતાઓ પર આધારિત શરતો (દા.ત., સ્ક્રીનની પહોળાઈ, ઉપકરણનું ઓરિએન્ટેશન).
- ફીચર ક્વેરીઝ (@supports): ચોક્કસ CSS સુવિધાઓ માટે બ્રાઉઝર સપોર્ટ પર આધારિત શરતો.
- બુલિયન બીજગણિત: તાર્કિક ઓપરેટર્સ (
and
,or
,not
) નો ઉપયોગ કરીને બહુવિધ શરતોનું સંયોજન.
@when ના વ્યવહારુ ઉદાહરણો
ચાલો@when
નિયમની શક્તિ અને બહુમુખી પ્રતિભાને સમજાવવા માટે કેટલાક વ્યવહારુ ઉદાહરણોનું અન્વેષણ કરીએ.
1. @when અને મીડિયા ક્વેરીઝ સાથે રિસ્પોન્સિવ ડિઝાઇન
@when
માટેનો સૌથી સામાન્ય ઉપયોગ રિસ્પોન્સિવ ડિઝાઇન છે, જ્યાં તમે સ્ક્રીનના કદના આધારે સ્ટાઈલને સમાયોજિત કરો છો. જ્યારે મીડિયા ક્વેરીઝ આને પોતાની રીતે પ્રાપ્ત કરી શકે છે, ત્યારે @when
વધુ સંરચિત અને વાંચનીય અભિગમ પૂરો પાડે છે, ખાસ કરીને જ્યારે જટિલ પરિસ્થિતિઓ સાથે કામ કરતી વખતે.
@when (min-width: 768px) and (max-width: 1023px) {
body {
font-size: 18px;
line-height: 1.6;
}
.container {
width: 720px;
margin: 0 auto;
}
}
આ ઉદાહરણમાં, @when
બ્લોકની અંદરની સ્ટાઈલ ફક્ત ત્યારે જ લાગુ થાય છે જ્યારે સ્ક્રીનની પહોળાઈ 768px અને 1023px (સામાન્ય ટેબ્લેટનું કદ) ની વચ્ચે હોય. આ ચોક્કસ વ્યૂપોર્ટ રેન્જ માટે સ્ટાઈલ વ્યાખ્યાયિત કરવાની સ્પષ્ટ અને સંક્ષિપ્ત રીત પ્રદાન કરે છે.
આંતરરાષ્ટ્રીયકરણ નોંધ: વૈશ્વિક પ્રેક્ષકો માટે રિસ્પોન્સિવ ડિઝાઇન નિર્ણાયક છે. વિવિધ પ્રદેશોમાં બદલાતા સ્ક્રીન કદને ધ્યાનમાં લો. ઉદાહરણ તરીકે, કેટલાક દેશોમાં મોબાઇલનો ઉપયોગ વધુ છે, જે મોબાઇલ-ફર્સ્ટ ડિઝાઇનને વધુ નિર્ણાયક બનાવે છે.
2. @when અને @supports સાથે ફીચર ડિટેક્શન
@when
ને @supports
સાથે જોડી શકાય છે જેથી બ્રાઉઝર દ્વારા કોઈ ચોક્કસ CSS સુવિધાને સમર્થન આપવામાં આવે ત્યારે જ સ્ટાઈલ લાગુ કરી શકાય. આ તમને તમારી વેબસાઇટને ક્રમશઃ સુધારવાની મંજૂરી આપે છે, જે આધુનિક બ્રાઉઝરવાળા વપરાશકર્તાઓ માટે વધુ સારો અનુભવ પૂરો પાડે છે જ્યારે જૂના બ્રાઉઝર સાથે સુસંગતતા જાળવી રાખે છે.
@when supports(display: grid) {
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
grid-gap: 20px;
}
}
@when not supports(display: grid) {
.container {
/* ગ્રીડને સપોર્ટ ન કરતા બ્રાઉઝર માટે ફોલબેક સ્ટાઈલ */
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.item {
width: calc(50% - 10px); /* જૂના બ્રાઉઝર માટે પહોળાઈ સમાયોજિત કરો */
}
}
અહીં, અમે @supports
નો ઉપયોગ એ ચકાસવા માટે કરીએ છીએ કે બ્રાઉઝર CSS ગ્રીડ લેઆઉટને સપોર્ટ કરે છે કે નહીં. જો તે કરે છે, તો અમે .container
પર ગ્રીડ-આધારિત સ્ટાઈલ લાગુ કરીએ છીએ. જો નહીં, તો અમે ફ્લેક્સબોક્સનો ઉપયોગ કરીને ફોલબેક સ્ટાઈલ પ્રદાન કરીએ છીએ જેથી જૂના બ્રાઉઝરમાં સમાન લેઆઉટ પ્રાપ્ત થાય.
વૈશ્વિક ઍક્સેસિબિલિટી નોંધ: ઍક્સેસિબિલિટી માટે ફીચર ડિટેક્શન મહત્વપૂર્ણ છે. જૂના બ્રાઉઝરમાં નવા ARIA એટ્રિબ્યુટ્સ અથવા સિમેન્ટિક HTML5 તત્વો માટે સપોર્ટનો અભાવ હોઈ શકે છે. સામગ્રી સુલભ રહે તેની ખાતરી કરવા માટે યોગ્ય ફોલબેક પ્રદાન કરો.
3. મીડિયા ક્વેરીઝ અને ફીચર ક્વેરીઝનું સંયોજન
@when
ની સાચી શક્તિ તેની મીડિયા ક્વેરીઝ અને ફીચર ક્વેરીઝને જોડીને વધુ જટિલ અને સૂક્ષ્મ શરતી સ્ટાઇલિંગ નિયમો બનાવવાની ક્ષમતામાંથી આવે છે.
@when (min-width: 768px) and supports(backdrop-filter: blur(10px)) {
.modal {
background-color: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(10px);
}
}
આ ઉદાહરણમાં, .modal
એલિમેન્ટમાં ઝાંખું બેકડ્રોપ ત્યારે જ હશે જ્યારે સ્ક્રીનની પહોળાઈ ઓછામાં ઓછી 768px હોય અને બ્રાઉઝર backdrop-filter
પ્રોપર્ટીને સપોર્ટ કરતું હોય. આ તમને આધુનિક બ્રાઉઝર પર દૃષ્ટિની આકર્ષક અસરો બનાવવાની મંજૂરી આપે છે જ્યારે જૂના બ્રાઉઝર પર સંભવિત પ્રદર્શન સમસ્યાઓ અથવા રેન્ડરિંગ ખામીઓને ટાળે છે.
4. કસ્ટમ પ્રોપર્ટીઝ (CSS વેરિયેબલ્સ) પર આધારિત સ્ટાઇલિંગ
@when
નો ઉપયોગ CSS કસ્ટમ પ્રોપર્ટીઝ (જેને CSS વેરિયેબલ્સ તરીકે પણ ઓળખવામાં આવે છે) સાથે ગતિશીલ અને સ્થિતિ-આધારિત સ્ટાઇલિંગ બનાવવા માટે પણ થઈ શકે છે. તમે જાવાસ્ક્રિપ્ટનો ઉપયોગ કરીને કસ્ટમ પ્રોપર્ટીની કિંમત અપડેટ કરી શકો છો, અને પછી તે કિંમતના આધારે વિવિધ સ્ટાઈલ લાગુ કરવા માટે @when
નો ઉપયોગ કરી શકો છો.
પ્રથમ, એક કસ્ટમ પ્રોપર્ટી વ્યાખ્યાયિત કરો:
:root {
--theme-color: #007bff; /* ડિફોલ્ટ થીમ રંગ */
--is-dark-mode: false;
}
પછી, કસ્ટમ પ્રોપર્ટીના મૂલ્યના આધારે સ્ટાઈલ લાગુ કરવા માટે @when
નો ઉપયોગ કરો:
@when var(--is-dark-mode) = true {
body {
background-color: #333;
color: #fff;
}
a {
color: #ccc;
}
}
છેલ્લે, --is-dark-mode
કસ્ટમ પ્રોપર્ટીના મૂલ્યને ટૉગલ કરવા માટે જાવાસ્ક્રિપ્ટનો ઉપયોગ કરો:
document.getElementById('darkModeToggle').addEventListener('click', function() {
document.documentElement.style.setProperty('--is-dark-mode', this.checked);
});
આ વપરાશકર્તાઓને લાઇટ અને ડાર્ક થીમ્સ વચ્ચે સ્વિચ કરવાની મંજૂરી આપે છે, જેમાં CSS કસ્ટમ પ્રોપર્ટી મૂલ્યના આધારે ગતિશીલ રીતે અપડેટ થાય છે. નોંધ કરો કે `@when` માં CSS વેરિયેબલ્સની સીધી સરખામણી બધા બ્રાઉઝરમાં સાર્વત્રિક રીતે સમર્થિત ન હોઈ શકે. તેના બદલે, તમારે બિન-શૂન્ય મૂલ્ય માટે મીડિયા ક્વેરી ચેકિંગ સાથે વર્કઅરાઉન્ડનો ઉપયોગ કરવાની જરૂર પડી શકે છે:
@when ( --is-dark-mode > 0 ) { ... }
જોકે, ખાતરી કરો કે કસ્ટમ પ્રોપર્ટીમાં આ કાર્ય કરવા માટે સંખ્યાત્મક મૂલ્ય છે.
ઍક્સેસિબિલિટી નોંધ: વૈકલ્પિક થીમ્સ (દા.ત., ડાર્ક મોડ) પ્રદાન કરવી એ ઍક્સેસિબિલિટી માટે નિર્ણાયક છે. દૃષ્ટિહીન વપરાશકર્તાઓને ઉચ્ચ-કોન્ટ્રાસ્ટ થીમ્સથી ફાયદો થઈ શકે છે. ખાતરી કરો કે તમારું થીમ સ્વિચ કીબોર્ડ અને સ્ક્રીન રીડર્સ દ્વારા સુલભ છે.
5. ડેટા એટ્રિબ્યુટ્સ પર આધારિત સ્ટાઇલિંગ
તમે @when
નો ઉપયોગ ડેટા એટ્રિબ્યુટ્સ સાથે તત્વોને તેમના ડેટા મૂલ્યોના આધારે સ્ટાઈલ કરવા માટે પણ કરી શકો છો. આ ગતિશીલ ઇન્ટરફેસ બનાવવા માટે ઉપયોગી થઈ શકે છે જ્યાં વપરાશકર્તાની ક્રિયાપ્રતિક્રિયા અથવા ડેટા અપડેટ્સના આધારે તત્વોનો દેખાવ બદલાય છે.
ઉદાહરણ તરીકે, ચાલો કહીએ કે તમારી પાસે કાર્યોની સૂચિ છે, અને દરેક કાર્યમાં data-status
એટ્રિબ્યુટ છે જે તેની સ્થિતિ દર્શાવે છે (દા.ત., "todo", "in-progress", "completed"). તમે દરેક કાર્યને તેની સ્થિતિના આધારે અલગ રીતે સ્ટાઈલ કરવા માટે @when
નો ઉપયોગ કરી શકો છો.
[data-status="todo"] {
/* todo કાર્યો માટે ડિફોલ્ટ સ્ટાઈલ */
color: #333;
}
@when attribute(data-status string equals "in-progress") {
[data-status="in-progress"] {
color: orange;
font-style: italic;
}
}
@when attribute(data-status string equals "completed") {
[data-status="completed"] {
color: green;
text-decoration: line-through;
}
}
નોંધ: attribute() પરીક્ષણ શરત માટે સમર્થન મર્યાદિત હોઈ શકે છે અથવા હાલમાં બધા બ્રાઉઝરમાં સંપૂર્ણપણે અમલમાં નથી. હંમેશા સંપૂર્ણપણે પરીક્ષણ કરો.
બ્રાઉઝર સુસંગતતા અને પોલીફિલ્સ
2024 ના અંત સુધીમાં, @when
નિયમ માટે બ્રાઉઝર સપોર્ટ હજુ પણ વિકસિત થઈ રહ્યો છે. જ્યારે ઘણા આધુનિક બ્રાઉઝર મુખ્ય કાર્યક્ષમતાને સમર્થન આપે છે, ત્યારે કેટલાક જૂના બ્રાઉઝર ન પણ કરી શકે. તેથી, સુસંગતતા કોષ્ટકો તપાસવું અને જ્યાં જરૂરી હોય ત્યાં યોગ્ય ફોલબેક અથવા પોલીફિલ્સનો ઉપયોગ કરવો નિર્ણાયક છે.
@when
અને સંબંધિત સુવિધાઓની વર્તમાન બ્રાઉઝર સપોર્ટ સ્થિતિ તપાસવા માટે હંમેશા Can I use... જેવા સંસાધનોનો સંપર્ક કરો.
@when નો ઉપયોગ કરવા માટે શ્રેષ્ઠ પદ્ધતિઓ
- શરતોને સરળ રાખો:
@when
બ્લોક્સમાં વધુ પડતી જટિલ શરતો ટાળો. જટિલ તર્કને નાના, વધુ વ્યવસ્થિત ટુકડાઓમાં વિભાજીત કરો. - ફોલબેક પ્રદાન કરો: જે બ્રાઉઝર તમે તમારા
@when
નિયમોમાં ઉપયોગ કરી રહ્યાં છો તે સુવિધાઓને સમર્થન આપતા નથી તેમના માટે હંમેશા ફોલબેક સ્ટાઈલ પ્રદાન કરો. આ વિવિધ બ્રાઉઝરમાં સુસંગત અનુભવ સુનિશ્ચિત કરે છે. - સંપૂર્ણપણે પરીક્ષણ કરો: તમારા
@when
નિયમો અપેક્ષા મુજબ કામ કરી રહ્યા છે તેની ખાતરી કરવા માટે વિવિધ બ્રાઉઝર અને ઉપકરણોમાં તમારા CSSનું પરીક્ષણ કરો. - અર્થપૂર્ણ ટિપ્પણીઓનો ઉપયોગ કરો: દરેક
@when
નિયમનો હેતુ અને તે જે શરતો પર આધારિત છે તે સમજાવવા માટે તમારા CSSમાં ટિપ્પણીઓ ઉમેરો. આ તમારા કોડને સમજવામાં અને જાળવવામાં સરળ બનાવશે. - પ્રદર્શનને ધ્યાનમાં લો:
@when
નિયમોનો વધુ પડતો ઉપયોગ ટાળો, કારણ કે તે સંભવિતપણે પ્રદર્શનને અસર કરી શકે છે. મૂલ્યાંકન કરવાની જરૂર હોય તેવા નિયમોની સંખ્યાને ઘટાડવા માટે તમારા CSSને ઑપ્ટિમાઇઝ કરો.
નિષ્કર્ષ
@when
નિયમ CSS ટૂલબોક્સમાં એક શક્તિશાળી ઉમેરો છે, જે વિકાસકર્તાઓને શરતી રીતે સ્ટાઈલ લાગુ કરવાની વધુ લવચીક અને અભિવ્યક્ત રીત પ્રદાન કરે છે. તેને મીડિયા ક્વેરીઝ, ફીચર ક્વેરીઝ અને CSS કસ્ટમ પ્રોપર્ટીઝ સાથે જોડીને, તમે વધુ મજબૂત, અનુકૂલનશીલ અને જાળવણીપાત્ર સ્ટાઈલશીટ બનાવી શકો છો. જ્યારે બ્રાઉઝર સપોર્ટ હજુ પણ વિકસિત થઈ રહ્યો છે, ત્યારે @when
એ એક એવી સુવિધા છે જે તમારા આધુનિક વેબ ડેવલપમેન્ટ વર્કફ્લોમાં અન્વેષણ કરવા અને સમાવવા યોગ્ય છે.
જેમ જેમ વેબનો વિકાસ થતો રહેશે, તેમ તેમ વિશ્વભરના વપરાશકર્તાઓ માટે આકર્ષક, સુલભ અને પ્રદર્શનકારી અનુભવો બનાવવા માટે @when
જેવી સુવિધાઓમાં નિપુણતા મેળવવી આવશ્યક બનશે. શરતી સ્ટાઇલિંગની શક્તિને અપનાવો અને તમારા CSS વિકાસમાં નવી શક્યતાઓને અનલોક કરો.