ऑटो उपसर्ग - अंतिम सीएसएस उपसर्ग समाधान

Autoprefixer CSS 3 से प्रायोगिक गुणों में उपसर्ग जोड़ने के लिए एक नई पीढ़ी की उपयोगिता है। यह कैन I के साथ ब्राउज़र उपसर्गों और लोकप्रियता के नवीनतम डेटा का उपयोग करता है, आपकी स्टाइलशीट पढ़ता है, उन गुणों और मूल्यों को पाता है जिन्हें वास्तव में उपसर्गों की आवश्यकता होती है और उन्हें जोड़ता है।

आप बस सादे सीएसएस लिखते हैं:
a { transition: transform 1s } 


स्वतः-उपसर्गकर्ता स्वयं आवश्यक (और केवल आवश्यक) गुणों और मूल्यों को बदल देगा (ध्यान दें -webkit-transform ):
 a { -webkit-transition: -webkit-transform 1s; -o-transition: -o-transform 1s; transition: -ms-transform 1s; transition: transform 1s } 


यह उपयोगिता सर्वर पर साइट को बिछाने के दौरान काम करती है (और विकास के दौरान प्रोग्रामर की मशीन पर), इसलिए यह ग्राहकों के लिए ध्यान देने योग्य नहीं है और ब्राउज़र से किसी भी समर्थन की आवश्यकता नहीं है।

समस्या


दुर्भाग्य से, वर्तमान उपकरण समस्या को अच्छी तरह से हल नहीं करते हैं:

यह स्पष्ट है कि प्रीप्रोसेसर्स की भाषाएं समस्या को पूरी तरह से हल करने की अनुमति नहीं देती हैं, एक मौलिक रूप से नए उपकरण की आवश्यकता थी।

स्टाइलस डेवलपर टीजे होलोवैचुक ने भी इसे समझा, इसलिए उन्होंने एक नई पीढ़ी के प्रीप्रोसेसर, Rework का विकास शुरू किया। यह एक अलग भाषा नहीं है जो CSS (जैसे Sass या स्टाइलस) में संकलित की गई है, बल्कि एक सीएसएस ट्री प्रीप्रोसेसर है:


नतीजतन, नया टूल बहुत अधिक लचीला था - आप सीएसएस के साथ वास्तव में कुछ भी कर सकते थे। इसलिए, यह Rework था जिसने AutoPrefixer के आधार का गठन किया।

लाभ


आपको एक नई भाषा सीखने की आवश्यकता नहीं है

स्वतः-उपसर्गकर्ता नियमित सीएसएस के शीर्ष पर काम करता है - इसलिए आपको पूरी टीम के साथ एक नई भाषा में प्रवास करने की आवश्यकता नहीं है। हालांकि, यह अन्य भाषाओं जैसे कि सैस और स्टाइलस के साथ संगत है - आपको इसे सीएसएस को संकलित करने के बाद ही चलाने की आवश्यकता है।

आपको यह सोचने की ज़रूरत नहीं है कि यहां अशुद्धता की आवश्यकता है या नहीं - आप उपसर्गों के बारे में पूरी तरह से भूल सकते हैं। स्वतः-उपसर्गकर्ता को स्वयं पता चलेगा कि क्या बदलने की आवश्यकता है - आप सामान्य गुणों और मूल्यों के साथ सादे सीएसएस लिखते हैं।

मानों के लिए उपसर्ग

Rework के लचीलेपन के कारण, AutoPrefixer @keyframes और values @keyframes लिए उपसर्ग जोड़ सकता है। उदाहरण के लिए, कम्पास में, सीएसएस 3 से गुणों के लिए एक transition एनीमेशन निर्दिष्ट करना बहुत मुश्किल है, जैसे कि अशुद्धियों को निर्दिष्ट नहीं किया जा सकता है और आपको transform लिए सभी संभावित उपसर्गों को सूचीबद्ध करना होगा।

हमेशा अप-टू-डेट डेटा

सबसे पहले, लेखकों के खाली समय पर निर्भर न होने के लिए, ऑटोप्रिफ़िशर डेटाबेस को कैन आई यूज़ से स्वचालित स्क्रिप्ट के साथ अपडेट किया जाता है , ताकि डेटा हमेशा ताज़ा बना रहे।

दूसरे, आप उन ब्राउज़रों के संस्करणों को निर्दिष्ट करते हैं जिन्हें आप समर्थन करते हैं (डिफ़ॉल्ट रूप से, Google में, प्रत्येक ब्राउज़र के अंतिम 2 संस्करण लिए गए हैं) - आप वैश्विक उपयोग के आंकड़ों के अनुसार भी संकेत कर सकते हैं, उदाहरण के लिए, "1% से अधिक"।

नतीजतन, सीएसएस में वास्तव में केवल आवश्यक उपसर्ग होंगे, फाइलें साफ-सुथरी होंगी और उन्हें वेब ब्राउज़र निरीक्षक में देखना आसान होगा।

के उपयोग



रूबी ऑन रेल्स

रेल के लिए एक " ऑटोप्रिफ़िशर-रेल " मणि है - आपको केवल मणि कनेक्ट करने की आवश्यकता है और उपसर्गों को आपके सीएसएस फ़ाइलों से app/assets/ और lib/assets स्वयं जोड़ा जाएगा। बस Gemfile जोड़ें और नियमित CSS लिखना जारी रखें:
 gem "autoprefixer-rails" 

एसेट्स पाइपलाइन के लचीलेपन के लिए धन्यवाद, उपसर्ग आपके सास और स्टाइलस दोनों शैलियों में जोड़े जाएंगे। ब्राउज़रों को config/autoprefixer.yml में निर्दिष्ट किया जा सकता है:
 browsers: - "last 1 version" - "> 1%" - "ie 8" 

आप पता लगा सकते हैं कि rake autoprefixer:inspect का उपयोग करके कौन से उपसर्ग जोड़े rake autoprefixer:inspect कार्य rake autoprefixer:inspect

गहरे लाल रंग का

यदि आप Sprockets का उपयोग रेल के बिना करते हैं (उदाहरण के लिए, सिनात्रा के साथ), तो आप इसमें ऑटो उपसर्ग कनेक्ट कर सकते हैं:
 AutoprefixerRails.install(sprockets_env) 

आप CSS को बिना Sprockets के संभाल सकते हैं:
 prefixed = AutoprefixerRails.compile(css)) 


जावास्क्रिप्ट

नोड.जेएस में संकलित करने के लिए, आप npm के साथ पैकेज का उपयोग कर सकते हैं:
 var autoprefixer = require('autoprefixer'); var prefixed = autoprefixer.compile(css); 

यदि आपको ब्राउज़र में CSS को संभालने की आवश्यकता है, तो आप स्क्रिप्ट का एक विशेष निर्माण कर सकते हैं।

यदि आप पहले से ही Rework का उपयोग कर रहे हैं, तो आप Auto Prefixer का एक अलग फ़िल्टर कनेक्ट कर सकते हैं:
 rework(css). use( autoprefixer.rework(['> 1%', 'opera 12.5']) ). use( rework.references() ). toString(); 


अन्य

ऑटो-उपसर्गकर्ता को एक अलग एप्लिकेशन का उपयोग करके अन्य भाषाओं और प्रणालियों के साथ एकीकृत किया जा सकता है:
 sudo npm install --global autoprefixer autoprefixer *.css 


संदर्भ


Source: https://habr.com/ru/post/In176909/


All Articles