html ഘടകങ്ങൾക്കുള്ള Css സ്ഥിര മൂല്യങ്ങൾ. ക്രമീകരണങ്ങൾ പുനഃസജ്ജമാക്കാൻ ഡിഫോൾട്ട് CSS മൂല്യം ഉപയോഗിക്കുന്നു. CSS പുനഃസജ്ജീകരണത്തിനായി ഒരു പ്രത്യേക CSS പ്രമാണം ഉപയോഗിക്കുക

ResourceBundle.Control ക്ലാസിന് ബണ്ടിലുകൾക്കായി തിരയുമ്പോഴും ലോഡുചെയ്യുമ്പോഴും ResourceBundle.getBundle() രീതി ഉപയോഗിച്ച് വിളിക്കുന്ന ഒരു കൂട്ടം ബാഹ്യ രീതികളുണ്ട്. നിങ്ങളുടെ കൺട്രോൾ ക്ലാസ് സൃഷ്‌ടിക്കുന്നതിലൂടെ, ലോഡുചെയ്യുന്നതിനും കാഷെ ചെയ്യുന്നതിനുമുള്ള സ്ഥിരസ്ഥിതി സ്വഭാവം നിങ്ങൾക്ക് മാറ്റാനാകും.

ഈ സാഹചര്യത്തിൽ, നിങ്ങൾ കൺട്രോൾ ക്ലാസിൻ്റെ രണ്ട് രീതികൾ നടപ്പിലാക്കേണ്ടതുണ്ട്: getFormats() and newBundle() . XML ഫോർമാറ്റിനെ പിന്തുണയ്ക്കുന്നതിന് getFormats() രീതി ഉത്തരവാദിയാണ്, കൂടാതെ newBundle() റിസോഴ്സ് ബണ്ടിലിനൊപ്പം പ്രവർത്തിക്കുന്നു. അടിസ്ഥാന സെറ്റ് പേരുകൾ യഥാർത്ഥ റിസോഴ്സ് പേരുകളിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുള്ള സഹായ രീതികൾ കൺട്രോൾ ബേസ് ക്ലാസ്സിൽ ഉണ്ട്.

ResourceBundle.Control ക്ലാസിൻ്റെ ഈ നടപ്പാക്കലിൽ XMLResourceBundle-ൻ്റെ ഒരു ഉപവിഭാഗം ഉൾപ്പെടുന്നു. ഒരു XML ഫയലിൽ നിന്ന് ഡാറ്റ ലോഡ് ചെയ്യാനും അത് ResourceBundle രീതിയിൽ ഉപയോഗിക്കാനും ഈ സബ്ക്ലാസ് ഉപയോഗിക്കുന്നു.

കൺട്രോൾ ക്ലാസിൻ്റെയും റിസോഴ്‌സ് ബണ്ടിൽ രീതി നടപ്പിലാക്കുന്നതിൻ്റെയും വിവരണം ഇനിപ്പറയുന്നതാണ്:

java.io.* ഇറക്കുമതി ചെയ്യുക;
java.net.* ഇറക്കുമതി ചെയ്യുക;
java.util.* ഇറക്കുമതി ചെയ്യുക;

പബ്ലിക് ക്ലാസ് XMLResourceBundleControl ResourceBundle.Control (
സ്വകാര്യ സ്റ്റാറ്റിക് സ്ട്രിംഗ് XML = "xml" ;

പൊതു ലിസ്റ്റ് ഗെറ്റ് ഫോർമാറ്റുകൾ(സ്ട്രിംഗ് ബേസ് നെയിം) (
റിട്ടേൺ Collections.singletonList(XML);
}

പബ്ലിക് റിസോഴ്സ് ബണ്ടിൽ പുതിയ ബണ്ടിൽ ( സ്ട്രിംഗ് അടിസ്ഥാനനാമം, പ്രാദേശിക ഭാഷ,
സ്ട്രിംഗ് ഫോർമാറ്റ്, ക്ലാസ്ലോഡർ ലോഡർ,
ബൂളിയൻ റീലോഡ്)
എറിയുന്നു നിയമവിരുദ്ധമായ ആക്സസ് ഒഴിവാക്കൽ, തൽക്ഷണ ഒഴിവാക്കൽ, IOException{
എങ്കിൽ ((baseName == null) || (ലോക്കേൽ == ശൂന്യം) || (ഫോർമാറ്റ് == ശൂന്യം)
|| (ലോഡർ == ശൂന്യം)) (
പുതിയ NullPointerException () എറിയുക;
}
ResourceBundle bundle = null ;
എങ്കിൽ (format.equals(XML)) (
String bundleName = toBundleName(അടിസ്ഥാനനാമം, പ്രദേശം) ;
String resourceName = toResourceName
(ബണ്ടിൽ പേര്, ഫോർമാറ്റ്) ;
URL url = loader.getResource
(വിഭവനാമം);
എങ്കിൽ (url != null) (
URLകണക്ഷൻ കണക്ഷൻ = url.openConnection() ;
എങ്കിൽ (കണക്ഷൻ != null) (
എങ്കിൽ (റീലോഡ്) (
connection.setUseCaches(false);
}
ഇൻപുട്ട് സ്ട്രീം സ്ട്രീം = connection.getInputStream() ;
എങ്കിൽ (സ്ട്രീം != ശൂന്യം) (
BufferedInputStream bis = പുതിയ BufferedInputStream (
സ്ട്രീം);
ബണ്ടിൽ = പുതിയ XMLResourceBundle(bis);
bis.close();
}
}
}
}
റിട്ടേൺ ബണ്ടിൽ;
}

സ്വകാര്യ സ്റ്റാറ്റിക് ക്ലാസ് XMLResourceBundle ResourceBundle വിപുലീകരിക്കുന്നു (
സ്വകാര്യ പ്രോപ്പർട്ടി പ്രോപ്‌സ്;

XMLResourceBundle(InputStream stream) IOException(
പ്രോപ്സ് = പുതിയ പ്രോപ്പർട്ടികൾ();
props.loadFromXML(സ്ട്രീം);
}

സംരക്ഷിത ഒബ്ജക്റ്റ് ഹാൻഡിൽGetObject(സ്ട്രിംഗ് കീ) (
റിട്ടേൺ props.getProperty(കീ);
}

പൊതു എണ്ണൽ getKeys() (
handKeys = props.stringPropertyNames സജ്ജമാക്കുക() ;
റിട്ടേൺ Collections.enumeration(handleKeys);
}
}

പൊതു സ്റ്റാറ്റിക് ശൂന്യ പ്രധാനം (സ്ട്രിംഗ് ആർഗ്സ്) (
("ടെസ്റ്റ്2",
പുതിയ XMLResourceBundleControl()) ;
String string = bundle.getString
("HelpKey");
System.out.println ("HelpKey:" + string );
}
}

ഈ നടപ്പാക്കലിൽ മൂന്ന് വരികളുടെ ഒരു ടെസ്റ്റ് പ്രോഗ്രാം ഉൾപ്പെടുന്നു:

ResourceBundle bundle = ResourceBundle.getBundle("Test2", പുതിയ XMLResourceBundleControl()) ;
String string = bundle.getString
("HelpKey");
System.out.println ("HelpKey:" + string );

ആദ്യ വരി ഇവിടെ ഏറ്റവും താൽപ്പര്യമുള്ളതാണ്. നിങ്ങളുടെ നിയന്ത്രണം getBundle() രീതിയിലേക്ക് കൈമാറേണ്ടതുണ്ട്. ഇതിനുശേഷം, മറ്റേതൊരു സാഹചര്യത്തിലും നിങ്ങൾക്ക് സെറ്റ് ഉപയോഗിക്കാം.

ചുവടെയുള്ള ഒരു ഉദാഹരണം XML ഫയൽ Test2.xml:

http://java.sun.com/dtd/properties.dtd" > ശരി റദ്ദാക്കുക സഹായം അതെ ഇല്ല

XMLResourceBundleControl പ്രോഗ്രാം നടപ്പിലാക്കുന്നതിൻ്റെ ഫലം ഇതായിരിക്കും:

> java XMLResourceBundleControl HelpKey: സഹായം

മുകളിലെ നടപ്പിലാക്കൽ getTimeToLive() ഉം needReload() രീതികളും ഉപയോഗിക്കുന്നില്ല:

പബ്ലിക്ക് ലോംഗ് ടൈംടൊ ലൈവ്( സ്ട്രിംഗ് അടിസ്ഥാനനാമം, പ്രാദേശിക ഭാഷ)

പൊതു ബൂളിയൻ ആവശ്യങ്ങൾ വീണ്ടും ലോഡുചെയ്യുക( സ്ട്രിംഗ് അടിസ്ഥാനനാമം,
പ്രാദേശിക പ്രദേശം,
സ്ട്രിംഗ് ഫോർമാറ്റ്
ക്ലാസ്ലോഡർ ലോഡർ
റിസോഴ്സ് ബണ്ടിൽ ബണ്ടിൽ
നീണ്ട ലോഡ് ടൈം)

getTimeToLive() രീതി ResourceBundle.Control ഉപയോഗിച്ച് സൃഷ്‌ടിച്ച റിസോഴ്‌സ് ബണ്ടിലുകൾക്കുള്ള ആയുസ്സ് നൽകുന്നു. റീലോഡിംഗ് പ്രക്രിയ വേഗത്തിലാക്കാൻ റിസോഴ്സ് സെറ്റുകൾ കാഷെയിൽ സൂക്ഷിക്കുന്നു. അങ്ങനെ, സെറ്റ് വീണ്ടും ഡൗൺലോഡ് ചെയ്യുമ്പോൾ, അത് കാഷെയിലായിരിക്കും. ഒരു പോസിറ്റീവ് ടൈം-ടു-ലൈവ് മൂല്യം, മില്ലിസെക്കൻഡിൽ, സെറ്റ് വീണ്ടും പരിശോധിക്കാതെ എത്ര സമയം കാഷെയിൽ നിലനിൽക്കുമെന്ന് വ്യക്തമാക്കുന്നു. getTimeToLive() രീതി നൽകുന്ന സ്ഥിരസ്ഥിതി മൂല്യം TTL_NO_EXPIRATION_CONTROL ആണ്, ഇത് കാഷെ കാലഹരണപ്പെടൽ പരിശോധന പ്രവർത്തനരഹിതമാക്കുന്നു. നിങ്ങൾക്ക് സെറ്റ് കാഷെ ചെയ്യാൻ താൽപ്പര്യമില്ലെങ്കിൽ, മൂല്യം തിരികെ നൽകുക TTL_DONT_CACHE . 0 തിരികെ നൽകിയാൽ, ബണ്ടിൽ കാഷെ ചെയ്യപ്പെടും, എന്നാൽ getBundle() വിളിക്കുമ്പോഴെല്ലാം അത് പരിശോധിക്കും. കാഷെ മായ്‌ക്കുന്നതിന്, ResourceBundle ക്ലാസിൻ്റെ സ്റ്റാറ്റിക് clearCache() രീതി വിളിക്കുക. ഒരു നിർദ്ദിഷ്ട ലോഡർ സൃഷ്‌ടിച്ച കാഷെകൾ മായ്‌ക്കാൻ അനുവദിക്കുന്ന ഒരു ഓപ്‌ഷണൽ ClassLoader ആർഗ്യുമെൻ്റ് ഇതിന് ഉണ്ട്.

കാഷെ ചെയ്‌ത സെറ്റ് വീണ്ടും ലോഡുചെയ്യണമോ എന്ന് ആവശ്യകതകൾ റീലോഡ് () രീതി നിർണ്ണയിക്കുന്നു. യഥാർത്ഥ മൂല്യം സെറ്റ് വീണ്ടും ലോഡുചെയ്യേണ്ടതുണ്ട് എന്നാണ് അർത്ഥമാക്കുന്നത്, തെറ്റ് എന്നാൽ അത് വീണ്ടും ലോഡുചെയ്യേണ്ടതില്ല എന്നാണ്. ആവശ്യങ്ങൾ റീലോഡ്() രീതി ഓവർലോഡ് ചെയ്തുകൊണ്ട് ഒരു റിസോഴ്സ് സെറ്റ് റീലോഡ് ചെയ്യേണ്ടതുണ്ടോ എന്ന് നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാകും. ഉദാഹരണത്തിന്, റിസോഴ്സ് സെറ്റ് എല്ലായ്‌പ്പോഴും റീലോഡ് ചെയ്യണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, needReload() രീതി എല്ലായ്പ്പോഴും true ആയി നൽകണം. ഈ സാഹചര്യത്തിൽ, getTimeToLive() രീതി എല്ലായ്പ്പോഴും മൂല്യം 0 നൽകണം. അല്ലെങ്കിൽ, സെറ്റ് പ്രതീക്ഷിച്ചതിലും കൂടുതൽ സമയം സംഭരിക്കപ്പെടും.

മുസ്താങ്ങിലെ അന്തർദേശീയവൽക്കരണ പ്രക്രിയകളുമായി ബന്ധപ്പെട്ട മെച്ചപ്പെടുത്തലുകളെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, സൺ സോഫ്‌റ്റ്‌വെയർ ഡെവലപ്പറായ ജോൺ ഒക്കോണറുടെ ബ്ലോഗ് നിങ്ങൾക്ക് റഫർ ചെയ്യാം.

ഈ ലേഖനം CSS നെ മെരുക്കുക എന്ന വിഷയത്തെക്കുറിച്ചുള്ള ഒരു പരമ്പരയിലെ ആദ്യത്തേതാണ്. ഇന്ന് നമ്മൾ സാങ്കേതികവിദ്യ നോക്കും CSS റീസെറ്റ്.

എന്തുകൊണ്ട് ഇത് ആവശ്യമാണ്?

ഓരോ ബ്രൗസറും വിവിധ HTML ഘടകങ്ങൾക്കായി അതിൻ്റേതായ സ്ഥിരസ്ഥിതി മൂല്യങ്ങൾ സജ്ജമാക്കുന്നു. CSS റീസെറ്റ് ഉപയോഗിച്ച്, ശൈലികളുടെ ക്രോസ്-ബ്രൗസർ അനുയോജ്യത ഉറപ്പാക്കാൻ നമുക്ക് ഈ വ്യത്യാസം ലെവൽ ചെയ്യാൻ കഴിയും.

ഉദാഹരണത്തിന്, നിങ്ങൾ ഘടകം ഉപയോഗിക്കുന്നു നിങ്ങളുടെ പ്രമാണത്തിൽ. Internet Explorer, Firefox പോലുള്ള മിക്ക ബ്രൗസറുകളും ഒരു ലിങ്ക് ചേർക്കുന്നു നീലഒപ്പം അടിവരയിടുന്നു. എന്നിരുന്നാലും, അഞ്ച് വർഷം കഴിഞ്ഞ് ആരെങ്കിലും ഒരു പുതിയ ബ്രൗസർ സൃഷ്ടിക്കാൻ തീരുമാനിക്കുമെന്ന് സങ്കൽപ്പിക്കുക (അതിനെ നമുക്ക് അൾട്രാ ബ്രൗസർ എന്ന് വിളിക്കാം). ബ്രൗസർ ഡെവലപ്പർമാർക്ക് നീല നിറം ഇഷ്ടമായില്ല, അടിവരയിട്ട് അലോസരപ്പെട്ടു, അതിനാൽ അവർ ലിങ്കുകൾ ഹൈലൈറ്റ് ചെയ്യാൻ തീരുമാനിച്ചു ചുവപ്പ് നിറത്തിൽഒപ്പം ബോൾഡ്. ഒരു മൂലകത്തിൻ്റെ അടിസ്ഥാന ശൈലി മൂല്യം നിങ്ങൾ സജ്ജമാക്കിയാൽ ഇത് അടിസ്ഥാനമാക്കിയുള്ളതാണ് അൾട്രാ ബ്രൗസർ ഡെവലപ്പർമാർ അത് എങ്ങനെ പ്രദർശിപ്പിക്കാൻ താൽപ്പര്യപ്പെടുന്നു എന്നല്ല, നിങ്ങൾ ആഗ്രഹിക്കുന്ന രീതിയിൽ ആയിരിക്കുമെന്ന് ഉറപ്പുനൽകുന്നു.

എന്നാൽ ഇപ്പോൾ ഞങ്ങൾക്ക് വ്യക്തിഗത ഖണ്ഡികകൾക്കിടയിൽ ഉൾപ്പെടെ ഇൻഡൻ്റുകളൊന്നുമില്ല! എന്തുചെയ്യും? നുണ പറയരുത്, ഭയപ്പെടരുത്: ഞങ്ങളുടെ പുനഃസജ്ജീകരണത്തിന് താഴെ നമുക്ക് ആവശ്യമായ നിയമം ഞങ്ങൾ വിവരിക്കും. ഇത് വ്യത്യസ്ത രീതികളിൽ ചെയ്യാം: ഖണ്ഡികയുടെ താഴെയോ മുകളിലോ ഉള്ള ഇൻഡൻ്റ് വ്യക്തമാക്കുക, അത് ശതമാനത്തിലോ പിക്സലുകളിലോ എമ്മിലോ വ്യക്തമാക്കുക.

ഏറ്റവും പ്രധാനമായി, ബ്രൗസർ ഇപ്പോൾ പ്രവർത്തിക്കുന്നത് നമ്മുടെ നിയമങ്ങളനുസരിച്ചാണ്, അല്ലാതെ ഞങ്ങൾ അതിൻ്റെ നിയമങ്ങളനുസരിച്ചല്ല. ഞാൻ ഇത് ഈ രീതിയിൽ ചെയ്യാൻ തീരുമാനിച്ചു:

* (മാർജിൻ: 0; പാഡിംഗ്: 0; ) p (മാർജിൻ: 5px 0 10px 0;)

തൽഫലമായി, മൂന്നാമത്തെ ഉദാഹരണത്തിൽ കാണാൻ കഴിയുന്നത് ഞങ്ങൾക്ക് ലഭിച്ചു.

നിങ്ങളുടെ പ്രോജക്റ്റിലെ ഒരു പ്രത്യേക പ്രശ്നം നിങ്ങൾ പരിഹരിക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ സ്വന്തം റീസെറ്റ് ശൈലികൾ സൃഷ്ടിക്കാൻ കഴിയും. ഇതൊക്കെയാണെങ്കിലും, നിങ്ങളുടേതായ CSS റീസെറ്റ് സൃഷ്ടിക്കുന്നതിനുള്ള ഘട്ടം ഘട്ടമായുള്ള ഗൈഡ് ഒന്നുമില്ല. നിങ്ങളുടെ സ്വന്തം തത്വങ്ങളിലും നിങ്ങളുടെ സ്വന്തം ശൈലിയിലും ആശ്രയിക്കുക.

ശരിയായ തിരഞ്ഞെടുപ്പ് നടത്താൻ നിങ്ങളെ സഹായിക്കുന്നതിന്, ഇവിടെ കുറച്ച് ലിങ്കുകൾ കൂടിയുണ്ട്:

  1. കുറവ് കൂടുതൽ - റീസെറ്റ് CSS (Ed Elliott) എൻ്റെ ചോയ്സ്.

2. നിങ്ങളുടെ CSS റീസെറ്റ് ആണ് ബ്രൗസർ ആദ്യം കാണേണ്ടത്

ഘടകങ്ങൾക്കായി നിങ്ങളുടെ സ്വന്തം ശൈലികൾ സജ്ജീകരിച്ച ശേഷം ശൈലികൾ പുനഃസജ്ജമാക്കുന്നത് തെറ്റായ സമീപനമാണ്. ഈ സാഹചര്യത്തിൽ, ബ്രൗസർ ഡിസ്പ്ലേയിൽ നിന്ന് നിങ്ങൾ നല്ലതൊന്നും പ്രതീക്ഷിക്കേണ്ടതില്ല. നിങ്ങൾ എല്ലായ്‌പ്പോഴും ആദ്യം CSS റീസെറ്റും തുടർന്ന് മറ്റെല്ലാ ശൈലികളും ഉൾപ്പെടുത്തണമെന്ന് ഓർമ്മിക്കുക.

അതെ, ഇത് തമാശയായി തോന്നുന്നുവെന്ന് ഞാൻ മനസ്സിലാക്കുന്നു, പക്ഷേ ഇത് ഡെവലപ്പർമാരുടെയും ചെറുപ്പക്കാരുടെയും മുതിർന്നവരുടെയും പ്രധാന തെറ്റുകളിലൊന്നാണ്. പലരും ഇതിനെക്കുറിച്ച് വെറുതെ മറക്കുന്നു.

ചിലർ യുക്തിസഹമായ ഒരു ചോദ്യം ചോദിച്ചേക്കാം: എന്തുകൊണ്ടാണ് ഇത് സംഭവിക്കുന്നത്? ഉത്തരം ലളിതമാണ്: CSS ഫയലിൻ്റെ ടെക്‌സ്‌റ്റിൽ താഴെ എഴുതിയിരിക്കുന്ന നിയമങ്ങൾ (ഡോക്യുമെൻ്റിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ക്രമത്തിൽ അതിലും കുറവാണ്) നേരത്തെ പ്രഖ്യാപിച്ച നിയമങ്ങളെ പുനരാലേഖനം ചെയ്യുന്നു.

വിഷയത്തിൽ നിന്ന് അധികം ദൂരെ പോകാതെ തുടരാം. നമ്മുടെ ഉദാഹരണത്തിൽ എറിക് മേയറുടെ ശൈലികൾ പ്രയോഗിക്കാം, പക്ഷേ ശേഷംഉദാഹരണം 4-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ഞങ്ങളുടെ വസ്തുവകകളുടെ വിവരണങ്ങൾ. ഗണിതശാസ്ത്രജ്ഞർ ഇനിപ്പറയുന്നവ പറയും: "അതാണ് ഞങ്ങൾ തെളിയിക്കേണ്ടത്."

3. CSS റീസെറ്റിനായി ഒരു പ്രത്യേക CSS പ്രമാണം ഉപയോഗിക്കുക

ഈ ഉപദേശം സൂചിപ്പിക്കാൻ ഞാൻ (ഇല്ല, ഞാൻ ഒരു തരത്തിലും നിർബന്ധിതനായിരുന്നില്ല). CSS റീസെറ്റിനായി ഒരു പ്രത്യേക ഫയൽ ഉപയോഗിക്കുന്നത് ധാരാളം ഡവലപ്പർമാർ പിന്തുണയ്ക്കുന്ന ഒരു സാധാരണ രീതിയാണ്.

സത്യത്തിൽ ഞാൻ സൃഷ്ടിയുടെ സ്ഥാനം സ്വീകരിക്കുന്നു ഒരു വലിയ CSS ഫയൽഈ സമീപനത്തിൻ്റെ ഉയർന്ന പ്രകടനം കാരണം. എന്നാൽ ഈ വിഷയത്തിൽ ഭൂരിപക്ഷത്തോട് യോജിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു: CSS റീസെറ്റ് ഒരു പ്രത്യേക ഫയലിൽ സ്ഥാപിക്കണം (സാധാരണയായി reset.css എന്ന് വിളിക്കുന്നു). അതുവഴി, മറ്റ് CSS നിയമങ്ങളിൽ നിന്ന് വേർതിരിക്കുന്നതിന് ഒരു ശ്രമവും നടത്താതെ തന്നെ നിങ്ങൾക്ക് ഇത് വ്യത്യസ്ത പ്രോജക്റ്റുകളിൽ ഉപയോഗിക്കാൻ കഴിയും.

4. ഒരു യൂണിവേഴ്സൽ സെലക്ടർ ഉപയോഗിക്കുന്നത് ഒഴിവാക്കാൻ ശ്രമിക്കുക

ഈ ആശയം പ്രവർത്തിക്കുന്നുണ്ടെങ്കിലും, ചില ബ്രൗസറുകളുമായുള്ള പൊരുത്തക്കേട് കാരണം ഇതിൻ്റെ ഉപയോഗം പലപ്പോഴും അഭികാമ്യമല്ല (ഉദാഹരണത്തിന്, ഈ സെലക്ടർ ഇൻ്റർനെറ്റ് എക്സ്പ്ലോററിൽ ശരിയായി പ്രോസസ്സ് ചെയ്യുന്നില്ല). ലളിതവും ചെറുതും നിശ്ചലവും പ്രവചിക്കാവുന്നതുമായ പേജുകൾക്കായി മാത്രമേ നിങ്ങൾ ഈ സാങ്കേതികവിദ്യ ഉപയോഗിക്കാവൂ (നിങ്ങൾക്ക് അത് ചെയ്യണമെങ്കിൽ).

നിങ്ങൾ CMS തീമുകൾ പോലുള്ള പരിഹാരങ്ങൾ വികസിപ്പിക്കുമ്പോൾ ഈ ഉപദേശം വളരെ പ്രധാനമാണ്. ഇത് എങ്ങനെ ഉപയോഗിക്കുമെന്നോ എങ്ങനെ പരിഷ്കരിക്കുമെന്നോ നിങ്ങൾക്ക് മുൻകൂട്ടി പ്രവചിക്കാൻ കഴിയില്ല. ഇതിനായി സാർവത്രിക സെലക്ടർമാരുടെ പ്രവചനാതീതമായ (ചെറുതാണെങ്കിലും) സംവിധാനം ഉപയോഗിക്കുന്നതിനേക്കാൾ എല്ലാ ഘടകങ്ങൾക്കുമുള്ള അടിസ്ഥാന CSS നിയമങ്ങൾ വിവരിക്കുന്നതാണ് നല്ലത്.

5. CSS റീസെറ്റ് ഉപയോഗിക്കുമ്പോൾ അനാവശ്യ പ്രോപ്പർട്ടി വിവരണങ്ങൾ ഒഴിവാക്കുക

CSS പുനഃസജ്ജീകരണത്തിനായി ഒരു പ്രത്യേക ഫയൽ എനിക്ക് ഇഷ്ടപ്പെടാത്തതിൻ്റെ മറ്റൊരു കാരണം തുടർന്നുള്ള CSS പ്രോപ്പർട്ടി ഡിക്ലറേഷനുകളുടെ ആവർത്തന സാധ്യതയാണ്. CSS ഫയലുകളുടെ മുഴുവൻ സെറ്റിലും നിങ്ങളുടേതായ വ്യക്തിഗത ശൈലികൾ ആവർത്തിക്കുന്നത് മോശം പെരുമാറ്റമാണ്, അത് ഒഴിവാക്കേണ്ടതാണ്. തീർച്ചയായും, ചിലപ്പോൾ ഒരു കൂട്ടം ശൈലികളിലൂടെ കഠിനമായി കടന്നുപോകാനും അവയിൽ ചിലത് സംയോജിപ്പിക്കാനും ഞങ്ങൾ മടിയന്മാരാണ്, പക്ഷേ കുറഞ്ഞത് ശ്രമിക്കണം!

നമുക്ക് എറിക്കിൻ്റെ CSS റീസെറ്റിലേക്ക് മടങ്ങാം. ഇത് മൂലകത്തിൻ്റെ ലൈൻ-ഉയരം, നിറം, പശ്ചാത്തലം എന്നിവയ്‌ക്കായി സ്ഥിരസ്ഥിതി മൂല്യങ്ങൾ സജ്ജമാക്കുന്നു ശരീരംഇനിപ്പറയുന്ന രീതിയിൽ:

ശരീരം (ലൈൻ-ഉയരം: 1; നിറം: കറുപ്പ്; പശ്ചാത്തലം: വെള്ള; )

മൂലകം എങ്ങനെയായിരിക്കുമെന്ന് നിങ്ങൾക്ക് ഇതിനകം അറിയാമെന്നിരിക്കട്ടെ ശരീരം:
  1. പശ്ചാത്തല നിറം: #cccccc;
  2. നിറം: #996633;
  3. ഒരു നിശ്ചിത പശ്ചാത്തല ചിത്രം തിരശ്ചീനമായി ആവർത്തിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു.

ഈ സാഹചര്യത്തിൽ, നിങ്ങളുടെ പ്രോപ്പർട്ടികൾ വിവരിക്കുന്നതിന് ഒരു പുതിയ സെലക്ടർ സൃഷ്ടിക്കേണ്ട ആവശ്യമില്ല - നിങ്ങൾക്ക് അവ CSS റീസെറ്റിൽ ഉൾപ്പെടുത്താം. നമുക്ക് ഇത് ചെയ്യാം:

ബോഡി (ലൈൻ-ഉയരം: 1; നിറം: #996633; പശ്ചാത്തലം:#ccc url(tiled-image.gif) ആവർത്തിക്കുക-x മുകളിൽ ഇടത്; )

CSS റീസെറ്റ് തന്നെ പരിഷ്കരിക്കാൻ ഭയപ്പെടേണ്ട.ഇത് സ്വയം പൊരുത്തപ്പെടുത്തുക, അത് നിങ്ങൾക്കായി പ്രവർത്തിക്കുക. നിങ്ങളുടെ പ്രത്യേക സാഹചര്യത്തിൽ ആവശ്യാനുസരണം മാറ്റുക, പുനഃക്രമീകരിക്കുക, നീക്കം ചെയ്യുക, ചേർക്കുക.

എറിക് മേയർ ഇതിനെക്കുറിച്ച് ഇനിപ്പറയുന്നവ പറഞ്ഞു: "എല്ലാവരും മാറ്റങ്ങളില്ലാതെ CSS റീസെറ്റ് ഉപയോഗിക്കേണ്ട ഒരു സാഹചര്യമല്ല ഇത്."



HTML ഘടകങ്ങൾക്കുള്ള CSS ഡിഫോൾട്ട് CSS (2)

ഓരോ ബ്രൗസറും വ്യത്യസ്തമാണ്, അതിനാൽ:

  • ഫയർഫോക്സ് (ഗെക്കോ):. അല്ലെങ്കിൽ resource://gre-resources/ എന്നതിലേക്ക് പോയി html.css നോക്കുക.
  • Chrome/Safari (WebKit):
    • Chrome (ബ്ലിങ്ക്):
  • ഇൻ്റർനെറ്റ് എക്സ്പ്ലോറർ (ട്രൈഡൻ്റ്), മുമ്പത്തെ പതിപ്പുകൾ: http://web.archive.org/web/20170122223926/http://www.iecss.com/

ബ്രൗസറിൻ്റെ ഡിഫോൾട്ട് CSS-നുള്ള CSS എവിടെ കണ്ടെത്താനാകും?

പല HTML ഘടകങ്ങൾക്കും ചില ഡിഫോൾട്ട് CSS പ്രോപ്പർട്ടികൾ ഉണ്ട്, അത് ചിലപ്പോൾ അജ്ഞാത/അനാവശ്യ സ്വഭാവത്തിലേക്ക് നയിച്ചേക്കാം. ഉദാഹരണത്തിന്, ഇൻപുട്ട് ഫീൽഡുകൾ വ്യത്യസ്ത ബ്രൗസറുകളിൽ വ്യത്യസ്തമായി പ്രദർശിപ്പിക്കുന്നു. പുതിയ CSS3 പ്രോപ്പർട്ടികളും പുതിയ HTML5 ഘടകങ്ങളും ഉൾക്കൊള്ളുന്ന ഒരു സ്ഥലത്തിനായി ഞാൻ തിരയുകയാണ്.

CSS റീസെറ്റ് സൊല്യൂഷൻ നിർദ്ദേശിക്കുന്ന മറ്റ് (വളരെ പഴയ) ചോദ്യങ്ങളിൽ (ബ്രൗസറുകളിലെ ഡിഫോൾട്ട് CSS സ്റ്റൈൽഷീറ്റുകൾ പോലുള്ളവ) ഞാൻ കണ്ടിട്ടുണ്ട്. ഈ പരിഹാരം ചിലപ്പോൾ ആവശ്യമില്ല, പലപ്പോഴും ചില അടിസ്ഥാന പ്രോപ്പർട്ടികൾ സംരക്ഷിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു (Chrome-ലെ ഇൻപുട്ട് ഫീൽഡുകൾ ഹൈലൈറ്റ് ചെയ്യുന്നത് പോലെ). മറ്റൊരു വാക്കിൽ: കാര്യങ്ങൾ എന്തുചെയ്യുന്നുവെന്ന് എനിക്കറിയില്ല എന്നതിനാൽ അതിൽ നിന്ന് രക്ഷപ്പെടാൻ ഞാൻ ആഗ്രഹിക്കുന്നില്ല. .

അതിനാൽ, ഈ വിവരങ്ങളെല്ലാം (അല്ലെങ്കിൽ മിക്കതും) എനിക്ക് നൽകാൻ കഴിയുന്ന ഒരു സൈറ്റ് ഉണ്ടോ?

എല്ലാ W3C HTML സ്പെസിഫിക്കേഷനുകൾക്കുമായി ഒരു GitHub ശേഖരണവും ഡെവലപ്പർമാർക്കുള്ള ഡിഫോൾട്ട് CSS സ്റ്റൈൽഷീറ്റുകളും കണ്ടെത്താനാകും

1.

2. ഇൻ്റർനെറ്റ് എക്സ്പ്ലോററിനുള്ള സ്റ്റാൻഡേർഡ് ശൈലികൾ

3.

4. ഓപ്പറയ്ക്കുള്ള സ്റ്റാൻഡേർഡ് ശൈലികൾ

5. HTML4-നുള്ള സ്റ്റാൻഡേർഡ് ശൈലികൾ (W3C സ്പെസിഫിക്കേഷൻ)

6. HTML5-നുള്ള സ്റ്റാൻഡേർഡ് ശൈലികൾ (W3C സ്പെസിഫിക്കേഷൻ)

ഉദാഹരണം, സ്ഥിരസ്ഥിതി W3C HTML4 സ്പെസിഫിക്കേഷൻ അനുസരിച്ച്:

Html, വിലാസം, ബ്ലോക്ക്‌ക്വോട്ട്, ബോഡി, dd, div, dl, dt, ഫീൽഡ്സെറ്റ്, ഫോം, ഫ്രെയിം, ഫ്രെയിംസെറ്റ്, h1, h2, h3, h4, h5, h6, noframes, ol, p, ul, centre, dir, hr, മെനു, പ്രീ (പ്രദർശനം: ബ്ലോക്ക്; യൂണികോഡ്-ബിഡി: ഉൾച്ചേർക്കുക) ലി (ഡിസ്‌പ്ലേ: ലിസ്റ്റ്-ഇനം) തല (ഡിസ്‌പ്ലേ: ഒന്നുമില്ല) പട്ടിക (പ്രദർശനം: പട്ടിക) ടിആർ (ഡിസ്‌പ്ലേ: ടേബിൾ-റോ) തേഡ് (ഡിസ്‌പ്ലേ: ടേബിൾ-ഹെഡർ- ഗ്രൂപ്പ് ) tbody ( display: table-row-group ) tfoot ( display: table-footer-group ) col ( display: table-column ) colgroup ( display: table-column-group ) td, th ( display: table-cell ) അടിക്കുറിപ്പ് (ഡിസ്‌പ്ലേ: പട്ടിക-അടിക്കുറിപ്പ്) th (ഫോണ്ട്-ഭാരം: ബോൾഡർ; ടെക്‌സ്‌റ്റ്-അലൈൻ: മധ്യഭാഗം) അടിക്കുറിപ്പ് (ടെക്‌സ്റ്റ്-അലൈൻ: മധ്യഭാഗം) ബോഡി (മാർജിൻ: 8px) h1 (ഫോണ്ട് വലുപ്പം: 2എം; മാർജിൻ: .67എം 0) h2 (അക്ഷര വലുപ്പം: 1.5em; മാർജിൻ: .75em 0 ) h3 (ഫോണ്ട്-വലിപ്പം: 1.17em; മാർജിൻ: .83em 0 ) h4, p, blockquote, ul, fieldset, form, ol, dl, dir, menu ( മാർജിൻ: 1.12em 0 ) h5 (അക്ഷര വലുപ്പം: .83em; മാർജിൻ: 1.5em 0 ) h6 (ഫോണ്ട് വലുപ്പം: .75em; മാർജിൻ: 1.67em 0 ) h1, h2, h3, h4, h5, h6, b, ശക്തമായ (ഫോണ്ട്-വെയ്റ്റ്: ബോൾഡർ) ബ്ലോക്ക്ക്വോട്ട് (മാർജിൻ-ഇടത്: 40px; മാർജിൻ-വലത്: 40px ) i, cite, em, var, വിലാസം (ഫോണ്ട്-സ്റ്റൈൽ: ഇറ്റാലിക് ) പ്രീ, tt, കോഡ്, kbd, സാമ്പ് (ഫോണ്ട്-ഫാമിലി: മോണോസ്‌പേസ് ) പ്രീ (വൈറ്റ്-സ്‌പെയ്‌സ്: പ്രി ) ബട്ടൺ, ടെക്‌സ്‌റ്റേറിയ, ഇൻപുട്ട്, തിരഞ്ഞെടുക്കുക (ഡിസ്‌പ്ലേ: ഇൻലൈൻ-ബ്ലോക്ക്) വലുത് (ഫോണ്ട്-വലിപ്പം: 1.17എം) ചെറുത്, ഉപ, സപ്പ് (ഫോണ്ട്-വലിപ്പം: .83എം) ഉപ (ലംബ-അലൈൻ: ഉപ ) സപ് (ലംബ-അലൈൻ: സൂപ്പർ ) പട്ടിക ( ബോർഡർ സ്‌പെയ്‌സിംഗ്: 2px; ) thead, tbody, tfoot (ലംബമായി വിന്യസിക്കുക: നടുക്ക് ഇൻസെറ്റ് ) ol, ul, dir, menu, dd (മാർജിൻ-ഇടത്: 40px ) ol ( ലിസ്റ്റ്-സ്റ്റൈൽ-തരം: ദശാംശം ) ol ul, ul ol, ul ul, ol ol (മാർജിൻ-ടോപ്പ്: 0; മാർജിൻ-ബോട്ടം: 0 ) u, ins (text-decoration: underline ) br:before (content: "\A"; white-space: pre-line ) centre (text-align: centre ) :link, :visited (text-decoration: underline ) :ഫോക്കസ് (ഔട്ട്‌ലൈൻ: നേർത്ത ഡോട്ടഡ് ഇൻവെർട്ട്) /* ദ്വിദിശ ക്രമീകരണങ്ങൾ ആരംഭിക്കുക (മാറ്റരുത്) */ BDO (ദിശ: ltr; unicode-bidi: bidi-override ) BDO ( ദിശ: rtl; unicode-bidi: bidi-override ) * ( ദിശ: ltr; unicode-bidi: embed ) * ( ദിശ: rtl; unicode-bidi: embed ) @ media print ( h1 ( പേജ്-ബ്രേക്ക്-മുമ്പ്: എപ്പോഴും ) h1, h2, h3, h4, h5, h6 ( പേജ്-ബ്രേക്ക്-ശേഷം: ഒഴിവാക്കുക ) ul, ol, dl ( page-break-before: avoid ) )

രചയിതാവിൽ നിന്ന്:ഇൻ്റർനെറ്റിൽ വെബ്‌സൈറ്റ് നിർമ്മാണം മണലിൽ പണിയുന്നത് പോലെയാകാം. ബ്രൗസറുകൾ ഒരേ കാര്യം തന്നെ ചെയ്യുന്നു, എന്നാൽ കാലാകാലങ്ങളിൽ അവ അലോസരപ്പെടുത്തുന്ന പ്രവചനാതീതമായ വ്യത്യാസങ്ങൾ ഉണ്ടാക്കുന്നു. ഉദാഹരണത്തിന്, എല്ലാ ബ്രൗസറുകൾക്കും "ഉപയോക്തൃ ഏജൻ്റ് സ്റ്റൈൽ ഷീറ്റുകൾ" ഉണ്ട് - നിങ്ങൾ പേജ്1-ലേക്ക് ശൈലികൾ അസൈൻ ചെയ്യുന്നതിന് മുമ്പുതന്നെ, തലക്കെട്ട് ഒരു തലക്കെട്ട് പോലെയുള്ളതാക്കാനുള്ള CSS ശൈലികളുടെ ഒരു ഡിഫോൾട്ട് സെറ്റ്. തീർച്ചയായും, ഓരോ ബ്രൗസർ എഞ്ചിനും അല്പം വ്യത്യസ്തമായ ഡിഫോൾട്ട് സെറ്റുകൾ ഉപയോഗിക്കുന്നു.

ഒരു ഉദാഹരണം ഡിഫോൾട്ട് ലിസ്റ്റ് ശൈലികളാണ്, ഇൻ്റർനെറ്റ് എക്സ്പ്ലോററിൻ്റെയും ഓപ്പറയുടെയും ഡിഫോൾട്ട് ബ്രൗസർ സ്റ്റൈൽ ഷീറ്റുകൾക്ക് തുടക്കത്തിൽ ലിസ്റ്റ് പാഡിംഗ് മാർജിൻ-ലെഫ്റ്റ്: 30pt;, അതേസമയം ഫയർഫോക്സും കെഎച്ച്ടിഎംഎല്ലും പാഡിംഗ്-ലെഫ്റ്റ്: 40px; ul (പാഡിംഗ്-ഇടത്: 0;) നിർവചിച്ച് ഡിഫോൾട്ട് പാഡിംഗ് മാറ്റാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഇത് ബ്രൗസറുകളിൽ വളരെ വ്യത്യസ്തമായ ഫലങ്ങൾ നൽകും.

CSS ക്രമീകരണങ്ങൾ പുനഃസജ്ജമാക്കുക

ഒരു ചെറിയ സ്ഥിരത കൈവരിക്കുന്നതിന്, ചില ഡെവലപ്പർമാർ ഒരു യൂണിവേഴ്സൽ സെലക്ടർ ഉപയോഗിച്ച് എല്ലാ മാർജിനുകളും പാഡിംഗും പുനഃസജ്ജമാക്കുന്നു:

* (മാർജിൻ: 0; പാഡിംഗ്: 0;)

* (മാർജിൻ: 0; പാഡിംഗ്: 0;)

ലിസ്റ്റിൻ്റെ ഇൻഡൻ്റേഷൻ നിർവചിക്കുകയും അവിടെ നിങ്ങളുടെ സ്റ്റൈൽഷീറ്റ് ആരംഭിക്കുകയും ചെയ്യുന്നതിലൂടെ, നിങ്ങൾ പ്രതീക്ഷിക്കുന്നത് നിങ്ങൾക്ക് ലഭിക്കും. എന്നിരുന്നാലും, * ഉപയോഗിക്കുന്നത് അർത്ഥമാക്കുന്നത് എല്ലാ ഘടകങ്ങൾക്കും ഡിഫോൾട്ട് മാർജിനും പാഡിംഗും തകരാറിലാകുന്നു, നിങ്ങൾ ഒരു ഫോം ഘടകം ചേർത്തയുടനെ കാര്യങ്ങൾ വളരെ മോശമായി.

നിങ്ങൾക്ക് കഴിയുന്നതെല്ലാം പുനഃസജ്ജമാക്കുക എന്നതാണ് ഒരു പുനഃസജ്ജീകരണത്തിൻ്റെ ഉദ്ദേശ്യം... [ഒപ്പം] നിങ്ങളുടെ സ്വന്തം അടിസ്ഥാന ശൈലികൾക്കുള്ള ഒരു ആരംഭ പോയിൻ്റായി വർത്തിക്കുന്നു- എറിക് മേയർ

html, ബോഡി, ഡിവി, സ്പാൻ, ആപ്‌ലെറ്റ്, ഒബ്‌ജക്റ്റ്, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ചുരുക്കെഴുത്ത്, വിലാസം, വലുത്, ഉദ്ധരണി, കോഡ്, del, dfn, em, img, ins, kbd, q, s, samp, ചെറിയ, സ്ട്രൈക്ക്, ശക്തമായ, സബ്, sup, tt, var, b, u, i, centre, dl, dt, dd, ol, ul, li, ഫീൽഡ്സെറ്റ് ഫോം, ലേബൽ, ലെജൻഡ്, ടേബിൾ, അടിക്കുറിപ്പ്, tbody, tfoot, thead, tr, th, td, article, Aside, Canvas, details, embed, Figure, figcaption, അടിക്കുറിപ്പ്, തലക്കെട്ട്, hgroup, മെനു, nav, ഔട്ട്പുട്ട്, റൂബി വിഭാഗം, സംഗ്രഹം, സമയം, അടയാളം, ഓഡിയോ, വീഡിയോ (മാർജിൻ: 0; പാഡിംഗ്: 0; ബോർഡർ: 0; ഫോണ്ട്-സൈസ്: 100%; ഫോണ്ട്: ഇൻഹെറിറ്റ്; ലംബ-അലൈൻ: അടിസ്ഥാനരേഖ; )

html, ബോഡി, ഡിവി, സ്പാൻ, ആപ്ലെറ്റ്, ഒബ്ജക്റ്റ്, ഐഫ്രെയിം,

h1, h2, h3, h4, h5, h6, p, blockquote, pre,

a, abbr, ചുരുക്കെഴുത്ത്, വിലാസം, വലുത്, ഉദ്ധരണി, കോഡ്,

del, dfn, em, img, ins, kbd, q, s, samp,

ചെറുത്, സ്ട്രൈക്ക്, ശക്തമായ, ഉപ, sup, tt, var,

ബി, യു, ഐ, സെൻ്റർ,

dl, dt, dd, ol, ul, li,

ഫീൽഡ് സെറ്റ്, ഫോം, ലേബൽ, ലെജൻഡ്,

പട്ടിക, അടിക്കുറിപ്പ്, tbody, tfoot, thead, tr, th, td,

ലേഖനം, മാറ്റിനിർത്തുക, ക്യാൻവാസ്, വിശദാംശങ്ങൾ, ഉൾച്ചേർക്കുക,

ചിത്രം, ഫിഗ്‌ക്യാപ്‌ഷൻ, അടിക്കുറിപ്പ്, തലക്കെട്ട്, എച്ച്ഗ്രൂപ്പ്,

മെനു, നാവ്, ഔട്ട്പുട്ട്, മാണിക്യം, വിഭാഗം, സംഗ്രഹം,

സമയം, അടയാളം, ഓഡിയോ, വീഡിയോ (

മാർജിൻ: 0;

പാഡിംഗ്: 0;

അതിർത്തി: 0;

ഫോണ്ട് വലുപ്പം: 100%;

ഫോണ്ട്: പാരമ്പര്യം;

ലംബ - വിന്യസിക്കുക: അടിസ്ഥാനരേഖ;

ഇത് പല (എല്ലാം അല്ല) മൂലകങ്ങളുടെ ചില ഗുണങ്ങളെ പ്ലെയിൻ ടെക്‌സ്‌റ്റ് തുല്യതയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു. പൊരുത്തപ്പെടുന്ന ഘടകങ്ങൾ മാത്രം പുനഃസജ്ജമാക്കിയതിനാൽ, ഇത് ചില പ്രശ്നങ്ങൾ ഒഴിവാക്കുന്നു * (മാർജിൻ: 0; പാഡിംഗ്: 0;). ഈ നിരസിച്ച "സ്റ്റൈൽ ചെയ്യാത്ത" പ്രോപ്പർട്ടികൾക്കായി നമുക്ക് സ്റ്റൈലുകൾ നിർവചിക്കാം, ഞങ്ങൾ ഒരു സ്ഥിരതയുള്ള ക്രോസ്-ബ്രൗസർ അടിത്തറയിലാണ് നിർമ്മിക്കുന്നതെന്ന് ആത്മവിശ്വാസത്തോടെ. ഈ ഘടകങ്ങൾക്ക് അനുയോജ്യമായ ശൈലികൾ ബോധപൂർവ്വം സജ്ജീകരിക്കേണ്ടതിൻ്റെ ആവശ്യകതയുടെ സൂചനയായി ഈ ശൈലി അസൈൻമെൻ്റ് പ്രവർത്തിക്കുന്നു.

CSS ക്രമീകരണങ്ങൾ പുനഃസജ്ജമാക്കുന്നതിൽ പ്രശ്നങ്ങൾ

CSS റീസെറ്റുകൾ ഒരു ലൈഫ് സേവർ ആയിരുന്നു, എന്നാൽ ഇപ്പോൾ, പ്രത്യേകിച്ച് വയർഫ്രെയിമുകളുടെ ഉയർച്ചയോടെ, അവ പലപ്പോഴും ഉപയോഗിക്കാറുണ്ട്. ഉദാഹരണത്തിന്, മറ്റ് ഡെവലപ്പർമാർ തൻ്റെ നിർദ്ദിഷ്ട റീസെറ്റ് ശൈലികൾക്ക് ചുറ്റും സൈറ്റുകൾ നിർമ്മിക്കാൻ തുടങ്ങുമെന്ന് എറിക് അനുമാനിച്ചു, അതിനനുസരിച്ച് അവയെ അസാധുവാക്കുന്നു, കൂടാതെ മേയർ റീസെറ്റിൻ്റെ ആദ്യ പതിപ്പിൽ ഈ നിയമം താൽക്കാലികമായി ഉൾപ്പെടുത്തിയിട്ടുണ്ട്:

/* ഫോക്കസ് ശൈലികൾ നിർവചിക്കാൻ ഓർക്കുക! */ :ഫോക്കസ് ( ഔട്ട്ലൈൻ: 0; )

നിർഭാഗ്യവശാൽ, എല്ലാവരും യഥാർത്ഥത്തിൽ ഫോക്കസ് ശൈലികൾ നിർവചിച്ചില്ല, എറിക് അത് രണ്ടാമത്തെ പതിപ്പിൽ നിന്ന് നീക്കം ചെയ്തു.

റീസെറ്റുകൾ ഉപയോഗിക്കുന്നത് നിങ്ങളെ ഒരു വികൃതക്കാരനായി തോന്നും. ബ്രൗസർ ഡിഫോൾട്ട് ശൈലികൾ പുനഃസജ്ജമാക്കുന്നത്, ഓരോ ഘടകങ്ങളും എങ്ങനെ പ്രദർശിപ്പിക്കണം എന്നതിനെക്കുറിച്ച് ചിന്തിക്കാൻ നിങ്ങളെ പ്രേരിപ്പിക്കുന്നു, ഡിഫോൾട്ട് ശൈലികളേക്കാൾ സെമാൻ്റിക്‌സിനെ അടിസ്ഥാനമാക്കിയാണ് ഘടകങ്ങൾ പ്രയോഗിക്കുന്നതെന്ന് ഉറപ്പാക്കാൻ സഹായിക്കുന്നു. എന്നാൽ i, em പോലുള്ള ഘടകങ്ങൾക്ക് മിക്കവാറും എല്ലായ്‌പ്പോഴും ഒരു ഡിഫോൾട്ട് ബ്രൗസർ ശൈലിയുണ്ട്. മറ്റ് ബ്രൗസർ ഡിഫോൾട്ട് ശൈലികൾ, ഒരു കാലത്ത് പരിഹാസ്യമായി വലിയ തലക്കെട്ട് ടെക്‌സ്‌റ്റ് വലുപ്പം പോലെ, മാറിയിരിക്കുന്നു, ഇപ്പോൾ സ്ഥിരസ്ഥിതിയായി സഹനീയമാണ്. അസൈൻ ചെയ്‌ത "സ്റ്റൈൽ ചെയ്യാത്ത" റീസെറ്റ് ശൈലികൾ മാത്രം ഉപയോഗിച്ച് ആരെങ്കിലും ഒരു റീസെറ്റ് HTML ഘടകം പോസ്റ്റ്-പാസ് ചെയ്യാൻ ആഗ്രഹിക്കുമ്പോഴാണ് പ്രശ്നങ്ങൾ ആരംഭിക്കുന്നത്.

എന്നെ സംബന്ധിച്ചിടത്തോളം, റീസെറ്റുകളിലെ ഏറ്റവും വലിയ പ്രശ്നം അനന്തരാവകാശമാണ്, ഇത് ബ്രൗസർ ടൂളുകളിൽ സ്പാമിലേക്ക് നയിക്കുന്നു. മറ്റൊരാളുടെ കോഡിൽ ആഴത്തിലുള്ള നെസ്റ്റഡ് എലമെൻ്റ് CSS പ്രശ്നം ട്രാക്ക് ചെയ്യാൻ ശ്രമിക്കുമ്പോൾ, ഇത് സഹായിക്കില്ല:

അനന്തരാവകാശം കാരണം CSS റീസെറ്റ് നിയമങ്ങൾ ആവർത്തിച്ചു

NORMALIZE.CSS

Nicholas Gallagher ഉം Jonathan Neal ഉം Normalize.css-നൊപ്പം വ്യത്യസ്തമായ ഒരു സമീപനം സ്വീകരിച്ചു, "HTML ഘടകങ്ങളുടെ ഡിഫോൾട്ട് സ്റ്റൈലിംഗിൽ മികച്ച ക്രോസ്-ബ്രൗസർ സ്ഥിരത ഉറപ്പാക്കുന്ന ഒരു ചെറിയ CSS ഫയൽ." CSS റീസെറ്റുകൾ പോലെ, ഇത് ഞങ്ങൾക്ക് ശക്തമായ ഒരു ക്രോസ്-ബ്രൗസർ ആരംഭ പോയിൻ്റ് നൽകുന്നു - ആദ്യം ഒരു റീസെറ്റ് ഉപയോഗിക്കുന്നതിനുള്ള പ്രധാന കാരണം - എന്നാൽ രണ്ട് സമീപനങ്ങളും തത്വശാസ്ത്രപരമായി വ്യത്യസ്തമാണ്.

CSS പുനഃക്രമീകരിക്കുന്നു ഉപയോക്തൃ ഏജൻ്റ് ശൈലികൾ അസാധുവാക്കുകയും പല ഘടകങ്ങളും അവയുടെ "സ്റ്റൈൽ ചെയ്യാത്ത" അവസ്ഥയിലേക്ക് തിരികെ നൽകുകയും ചെയ്യുന്നു, സുരക്ഷിതമായി നിർമ്മിക്കാനുള്ള ചില ലെവൽ ഗ്രൗണ്ട്. എന്നിരുന്നാലും, മിക്ക ഘടകങ്ങളും ഉപയോഗിച്ച് നിർമ്മിക്കുന്നതിന് മുമ്പ് നമ്മൾ സ്റ്റൈൽ ചെയ്യേണ്ടതുണ്ട്. പകരം, Normalize.css ഉപയോക്തൃ ഏജൻ്റ് ശൈലിയിലെ പൊരുത്തക്കേടുകൾ മാത്രമേ പരിഹരിക്കൂ, വ്യത്യാസം വരുത്തുന്നതിന് ഏറ്റവും അനുയോജ്യമായ ഡിഫോൾട്ട് ക്രമീകരണങ്ങൾ തിരഞ്ഞെടുക്കുന്നു. ഇവിടെയും നമുക്ക് ഒരു ക്രോസ്-ബ്രൗസർ സുരക്ഷിത അടിത്തറ ലഭിക്കുന്നു, എന്നാൽ ഉപയോഗിക്കുന്നതിന് തയ്യാറുള്ള അടിസ്ഥാന നിർമ്മാണ ബ്ലോക്കുകളായി നോർമലൈസ് ചെയ്ത ഉപയോക്തൃ ഏജൻ്റ് ശൈലികൾ ഉൾപ്പെടുന്നു. ഇത് അടിസ്ഥാനപരമായി ഡിഫോൾട്ട് CSS 2.1 സ്റ്റൈൽഷീറ്റിൻ്റെ അനുയോജ്യമായ ഒരു ക്രോസ്-ബ്രൗസർ പതിപ്പ് പോലെയാണ്. രണ്ട് സാഹചര്യങ്ങളിലും, ഇമേജ് സൃഷ്‌ടിക്കുന്നതിന് ഞങ്ങൾ ഞങ്ങളുടെ സ്വന്തം ശൈലികൾ ചേർക്കേണ്ടതുണ്ട്, എന്നാൽ Normalize.css-ലെ ഡിഫോൾട്ട് ബ്രൗസർ ക്രമീകരണങ്ങൾ നിലനിൽക്കുന്നതിനാൽ, മൊത്തത്തിൽ ചേർക്കാൻ കുറച്ച് ശൈലികൾ മാത്രമേയുള്ളൂ.

Normalize.css-ലെ മാറ്റങ്ങൾ കൂടുതൽ ടാർഗെറ്റുചെയ്‌തിരിക്കുന്നതിനാൽ, നിങ്ങളുടെ ബ്രൗസർ ഡെവലപ്‌മെൻ്റ് ടൂളുകളിൽ മാറ്റിയെഴുതിയ നിയമങ്ങളുടെ അനന്തരാവകാശത്തിൻ്റെ കാസ്‌കേഡ് ഇല്ല. Meyer Reset, Normalize.css പതിപ്പുകൾ 1, 2 എന്നിവ ഉപയോഗിച്ച് പൊളിച്ചെഴുതിയ ഒരു ലളിതമായ ഉൽ: ഇതാ:

ഓർഡർ ചെയ്യാത്ത ലിസ്റ്റിൻ്റെ "സ്റ്റൈൽ ചെയ്യാത്ത" ഘടകം

മേയർ റീസെറ്റ് പ്രയോഗിക്കുന്നു

Normalize.css പ്രയോഗിക്കുക v1

Normalize.css പ്രയോഗിക്കുന്നു v2

മെയർ റീസെറ്റ് ഉദാഹരണം മാർജിനുകളോ ഇൻഡൻ്റേഷനോ ബുള്ളറ്റുകളോ ഇല്ലാതെ പ്ലെയിൻ ടെക്‌സ്‌റ്റിൻ്റെ രണ്ട് വരികളായി ദൃശ്യമാകുമ്പോൾ തത്ത്വചിന്തയിൽ വ്യക്തമായ വ്യത്യാസമുണ്ട്, എന്നാൽ Normalize.css ഉദാഹരണങ്ങൾ സ്ഥിരസ്ഥിതി ശൈലികൾ പോലെയാണ്. ഈ ഉല്പന്നത്തിൽ പ്രയോഗിക്കുന്ന ശൈലികളിലെ വ്യത്യാസവും എളുപ്പത്തിൽ ശ്രദ്ധിക്കാവുന്നതാണ്.

എന്നിരുന്നാലും, ഇവയെല്ലാം ul-ന് പ്രയോഗിക്കുന്ന ശൈലികളല്ല. താരതമ്യത്തിനായി, ഫയർഫോക്സ് 21-ലും ഓപ്പറ നെക്സ്റ്റ് 15-ലും കാണുന്ന അതേ "സ്റ്റൈൽ ചെയ്യാത്ത" സ്ക്രീൻഷോട്ട് ഇവിടെയുണ്ട്.