डायनॅमिक स्टाइलिंग - JavaScript सह CSS नियंत्रण. CSS HTML ला कसे प्रभावित करते

इतर मॉडेल 18.03.2019
चेरचर

इतर मॉडेल JavaScript इंटरऑप

कॅस्केडिंग टेबलशैली (कॅस्केडिंग शैली पत्रके - सीएसएस) - हे मानक आहे व्हिज्युअल प्रतिनिधित्व HTML दस्तऐवज. कॅस्केडिंग स्टाईल शीट्स डिझायनर्सद्वारे वापरण्यासाठी डिझाइन केल्या आहेत: ते आपल्याला फॉन्ट, रंग, समास, संरेखन, सीमा पर्याय आणि दस्तऐवजातील घटकांचे निर्देशांक अचूकपणे परिभाषित करण्याची परवानगी देतात.

परंतु ते क्लायंट-साइडमध्ये लिहिणाऱ्या प्रोग्रामरसाठी देखील स्वारस्य आहेत JavaScript, कारण ते तुम्हाला ॲनिमेटेड इफेक्ट्सचे पुनरुत्पादन करण्याची परवानगी देतात, जसे की उजव्या काठाच्या मागील बाजूस दस्तऐवज सामग्रीचे गुळगुळीत स्वरूप, उदाहरणार्थ, किंवा सूची कोसळणे आणि विस्तृत करणे, वापरकर्त्यास प्रदर्शित माहितीचे प्रमाण नियंत्रित करण्यास अनुमती देते.

इनलाइन शैली व्यवस्थापित करणे

CSS शैली नियंत्रित करण्याचा सर्वात सोपा मार्ग म्हणजे शैली गुणधर्म हाताळणे वैयक्तिक घटकदस्तऐवज. बऱ्याच एचटीएमएल विशेषतांप्रमाणे, शैली विशेषता एलिमेंट ऑब्जेक्टवरील समान नावाच्या गुणधर्माशी संबंधित आहे आणि JavaScript स्क्रिप्टमध्ये हाताळली जाऊ शकते. तथापि शैली मालमत्ताएक आहे विशिष्ट वैशिष्ट्य: त्याचे मूल्य स्ट्रिंग नसून CSSStyleDeclaration ऑब्जेक्ट आहे. या ऑब्जेक्टचे गुणधर्म HTML शैली विशेषता मध्ये परिभाषित केलेल्या CSS गुणधर्मांचे प्रतिनिधित्व करतात.

उदाहरणार्थ, सामग्री प्रदर्शित करण्यासाठी मजकूर घटक e मोठ्या, ठळक निळ्या फॉन्टमध्ये, करता येते पुढील ऑपरेशन्सशैली गुणधर्म फॉन्ट-आकार, फॉन्ट-वजन आणि रंगाशी संबंधित गुणधर्मांवर इच्छित मूल्ये लिहिण्यासाठी:

E.style.fontSize = "24px"; e.style.fontWeight = "ठळक"; e.style.color = "निळा";

CSSStyleDeclaration ऑब्जेक्टच्या शैली गुणधर्मांसह कार्य करताना, लक्षात ठेवा की सर्व मूल्ये स्ट्रिंग म्हणून निर्दिष्ट करणे आवश्यक आहे. स्टाईल शीट किंवा स्टाईल विशेषता मध्ये तुम्ही लिहू शकता:

स्थिती: निरपेक्ष; फॉन्ट-फॅमिली: sans-serif; पार्श्वभूमी-रंग: #ffffff;

JavaScript मधील e घटकासाठी असेच करण्यासाठी, तुम्हाला सर्व मूल्ये अवतरणांमध्ये संलग्न करणे आवश्यक आहे:

E.style.position = "निरपेक्ष"; e.style.fontFamily = "sans-serif"; e.style.backgroundColor = "#ffffff";

लक्षात घ्या की स्ट्रिंग व्हॅल्यूमध्ये अर्धविराम समाविष्ट नाहीत. हे JavaScript सिंटॅक्समध्ये वापरलेले अर्धविराम आहेत. टेबलमध्ये वापरलेले अर्धविराम CSS शैली, मध्ये आवश्यक नाही स्ट्रिंग मूल्ये, सह स्थापित JavaScript वापरून.

तसेच, लक्षात ठेवा की सर्व पोझिशनिंग गुणधर्मांमध्ये मोजमापाची एकके समाविष्ट असणे आवश्यक आहे. म्हणजे:

E.style.left = 300; // चुकीचे: ही संख्या आहे, स्ट्रिंग नाही e.style.left = "300"; // चुकीचे: missing units e.style.left = "300px"; // बरोबर

JavaScript मध्ये शैली गुणधर्म सेट करताना युनिट्स आवश्यक असतात - स्टाइल शीटमध्ये शैली गुणधर्म सेट करताना सारखेच.

अनेक CSS शैली गुणधर्म, जसे की फॉन्ट-आकार, त्यांच्या नावांमध्ये हायफन असते. JavaScript हायफनचा वजा चिन्ह म्हणून अर्थ लावते, त्यामुळे खालील अभिव्यक्ती लिहिता येत नाही:

E.style.font-size = "24px"; // वाक्यरचना त्रुटी!

अशा प्रकारे, CSSStyleDeclaration ऑब्जेक्टच्या गुणधर्मांची नावे वास्तविक CSS गुणधर्मांच्या नावांपेक्षा थोडी वेगळी आहेत. CSS प्रॉपर्टीच्या नावामध्ये हायफन असल्यास, CSSStyleDeclaration ऑब्जेक्टचे गुणधर्म नाव हायफन काढून टाकून आणि प्रत्येकाच्या नंतर लगेच अक्षर कॅपिटल करून तयार केले जाते. दुसऱ्या शब्दांत, बॉर्डर-डावी-रुंदी CSS प्रॉपर्टी बॉर्डर-लेफ्ट-विड्थ प्रॉपर्टीद्वारे ऍक्सेस केली जाते आणि फॉन्ट-फॅमिली सीएसएस प्रॉपर्टी फॉन्ट फॅमिली प्रॉपर्टीद्वारे ऍक्सेस केली जाऊ शकते.

याव्यतिरिक्त, जेव्हा फ्लोट सारख्या CSS प्रॉपर्टीमध्ये JavaScript राखीव शब्दाशी जुळणारे नाव असते, तेव्हा वैध CSSStyleDeclaration ऑब्जेक्ट प्रॉपर्टी नाव तयार करण्यासाठी नावाचा उपसर्ग "css" लावला जातो. म्हणजेच, घटकाच्या CSS फ्लोट प्रॉपर्टीचे मूल्य वाचण्यासाठी किंवा बदलण्यासाठी, तुम्ही CSSStyleDeclaration ऑब्जेक्टची cssFloat प्रॉपर्टी वापरली पाहिजे.

एचटीएमएल घटकाची शैली गुणधर्म ही त्याची इनलाइन शैली आहे आणि ते कोणत्याही शैलीचे नियम ओव्हरराइड करते CSS टेबल. इनलाइन शैली सामान्यतः शैली मूल्ये सेट करण्यासाठी वापरण्यास सोयीस्कर असतात आणि वरील सर्व उदाहरणांमध्ये ही पद्धत वापरली जाते. स्क्रिप्ट्स CSSStyleDeclaration ऑब्जेक्टचे गुणधर्म वाचू शकतात जे इनलाइन शैलीचे प्रतिनिधित्व करतात, परंतु ते केवळ JavaScript स्क्रिप्टद्वारे सेट केलेले असल्यास किंवा HTML घटकामध्ये इच्छित गुणधर्म सेट करणारी इनलाइन शैली विशेषता असल्यासच ती अर्थपूर्ण मूल्ये परत करतात.

उदाहरणार्थ, एखाद्या दस्तऐवजात स्टाईल शीटचा समावेश असू शकतो जो सर्व परिच्छेदांसाठी डावा समास 30 पिक्सेलवर सेट करतो, परंतु जर तुम्ही त्या घटकांपैकी एकाचा लेफ्ट मार्जिन गुणधर्म वाचला तर तुम्हाला मिळेल रिकामी स्ट्रिंग, जोपर्यंत या परिच्छेदामध्ये मूल्य ओव्हरराइड करणारी शैली विशेषता नाही, टेबलद्वारे स्थापितशैली

घटकांची इनलाइन शैली वाचणे विशेषतः आव्हानात्मक असते जेव्हा शैली गुणधर्म वाचताना ज्यामध्ये युनिट्स आणि शॉर्टहँड नोटेशन गुणधर्म असतात: स्क्रिप्टमध्ये एकापेक्षा जास्त समाविष्ट असणे आवश्यक आहे साधी अंमलबजावणीएक्सट्रॅक्शन आणि पुढील वापरमूल्ये सर्वसाधारणपणे, इनलाइन घटक शैली केवळ शैली सेट करण्यासाठी वापरण्यास सोयीस्कर आहे.

कधीकधी CSSStyleDeclaration ऑब्जेक्टमध्ये प्रवेश करण्यापेक्षा घटकाच्या इनलाइन शैलीमध्ये एकच ओळ वाचणे किंवा लिहिणे सोपे असते. हे करण्यासाठी, तुम्ही घटक ऑब्जेक्टच्या getAttribute() आणि setAttribute() पद्धती किंवा CSSStyleDeclaration ऑब्जेक्टची cssText गुणधर्म वापरू शकता:

// खालील दोन्ही विधाने स्ट्रिंग s: e.setAttribute("style", s) मधील घटक e चे शैली विशेषता // सेट करतात; e.style.cssText = s; // खालील दोन्ही विधानांना e घटकाच्या शैली गुणधर्माचे मूल्य // स्ट्रिंग म्हणून मिळते: s = e.getAttribute("style"); s = e.style.cssText;

निर्मिती ॲनिमेशन प्रभाव CSS वापरून

सर्वात वैशिष्ट्यपूर्ण क्षेत्रांपैकी एक CSS लागू करत आहेव्हिज्युअल ॲनिमेशन प्रभावांचे पुनरुत्पादन आहे. तुम्ही त्यांना सेटटाइमआउट() किंवा सेटइंटरवल() पद्धती वापरून अंमलात आणू शकता, त्यांचा वापर करून घटकाची इनलाइन शैली बदलणाऱ्या फंक्शनवर अनेक कॉल्स आयोजित करू शकता.

// घटक e तुलनेने स्थितीयोग्य बनवते आणि डावीकडे आणि उजवीकडे हलवते. // पहिला युक्तिवाद घटक ऑब्जेक्ट किंवा // इच्छित घटकाच्या id विशेषताचे मूल्य असू शकते. जर तुम्ही एखादे फंक्शन दुसरे वितर्क म्हणून पास केले, तर ॲनिमेशन प्ले झाल्यावर त्याला e // वितर्क म्हणून कॉल केले जाईल. तिसरा युक्तिवाद // घटक e चे ऑफसेट मूल्य निर्धारित करतो. डीफॉल्ट 5 पिक्सेल. // चौथा युक्तिवाद निर्धारित करतो की प्रभाव किती काळ चालला पाहिजे. // डीफॉल्टनुसार प्रभाव 500ms टिकतो. फंक्शन शेक(ई, पूर्ण, अंतर, वेळ) ( // प्रक्रिया वितर्क जर (typeof e === "स्ट्रिंग") e = document.getElementByld(e); if (!time) वेळ = 500; असल्यास (!distance) अंतर = 5; var originalStyle = e.style.position = "रिलेटिव्ह" // ते सापेक्ष बनवा () ॲनिमेशनची सुरुवात लक्षात ठेवा (); // ॲनिमेशन सुरू करा // हे फंक्शन गेलेली वेळ तपासते आणि e चे निर्देशांक बदलते घटक e. अन्यथा, ते e चे निर्देशांक बदलते आणि त्याचे पुढील कॉल animate() ( var now = (new Date()).getTime(); // Get वर्तमान वेळ var elapsed = now-start; // सुरुवातीपासून किती वेळ निघून गेला आहे?

shake() आणि fadeOut() दोन्ही पर्यायी कॉलबॅक फंक्शन त्यांचा दुसरा वितर्क म्हणून घेतात. हे फंक्शन निर्दिष्ट केले असल्यास, ॲनिमेशन इफेक्ट प्ले करणे समाप्त झाल्यावर ते कॉल केले जाईल. ॲनिमेशन इफेक्ट लागू केलेला घटक कॉलबॅक फंक्शनला वितर्क म्हणून पास केला जाईल. खालील एचटीएमएल मार्कअप एक बटण तयार करते जे क्लिक केल्यावर शेक इफेक्ट आणि नंतर विरघळणारे प्रभाव निर्माण करते:

मला क्लिक करा!

shake() आणि fadeOut() फंक्शन्स एकमेकांशी किती समान आहेत ते पहा. ते दोन्ही CSS गुणधर्म वापरून समान ॲनिमेशन प्रभाव लागू करण्यासाठी टेम्पलेट म्हणून काम करू शकतात.

गणना केलेल्या शैली

घटकाची शैली गुणधर्म घटकाची इनलाइन शैली निर्दिष्ट करते. सर्व स्टाईल शीटवर त्याचा फायदा आहे आणि घटकाचे दृश्य स्वरूप बदलण्यासाठी CSS गुणधर्म सेट करण्यासाठी यशस्वीरित्या वापरले जाऊ शकते. तथापि, मध्ये सामान्य केसजेव्हा तुम्हाला एखाद्या घटकावर लागू केलेल्या वास्तविक शैली शोधण्याची आवश्यकता असते तेव्हा त्याला कॉल करण्यात काही अर्थ नाही. या प्रकरणात जे आवश्यक आहे त्याला गणना शैली म्हणतात.

घटकाची गणना केलेली शैली ही गुणधर्म मूल्यांचा संच आहे जी ब्राउझरने इनलाइन शैलीमधून प्राप्त केली आहे (किंवा गणना केली आहे) आणि घटकाला लागू होणाऱ्या सर्व शैली पत्रकांमधुन सर्व नियम आहेत: हे रेंडर करताना प्रत्यक्षात वापरल्या जाणाऱ्या गुणधर्मांचा संच आहे. घटक इनलाइन शैलींप्रमाणे, गणना केलेल्या शैली CSSStyleDeclaration ऑब्जेक्टद्वारे दर्शविल्या जातात. तथापि, इनलाइन शैलींच्या विपरीत, गणना केलेल्या शैली केवळ वाचनीय आहेत. या शैली बदलल्या जाऊ शकत नाहीत, परंतु संगणकीय CSSStyleDeclaration ऑब्जेक्ट आपल्याला संबंधित घटक प्रस्तुत करताना ब्राउझरने वापरलेल्या शैली गुणधर्मांची नेमकी मूल्ये जाणून घेण्यास अनुमती देते.

विंडो ऑब्जेक्टची getComputedStyle() पद्धत वापरून तुम्ही घटकाची गणना केलेली शैली मिळवू शकता. या पद्धतीचा पहिला युक्तिवाद हा घटक आहे ज्याची गणना केलेली शैली तुम्हाला परत करायची आहे. दुसरा युक्तिवाद आवश्यक आहे आणि सामान्यतः शून्य किंवा रिक्त स्ट्रिंग पास करतो, परंतु ते CSS स्यूडो-एलिमेंट नावासह स्ट्रिंग देखील पास करू शकते जसे की "::पूर्वी", "::नंतर", ":पहिली-ओळ" किंवा " :पहिले अक्षर":

Var शीर्षक = document.getElementById("section1title"); var शीर्षक शैली = window.getComputedStyle(घटक, शून्य);

getComputedStyle() पद्धतीचे रिटर्न व्हॅल्यू हे CSSStyleDeclaration ऑब्जेक्ट आहे जे निर्दिष्ट घटक (किंवा स्यूडो-एलिमेंट) वर लागू केलेल्या सर्व शैलींचे प्रतिनिधित्व करते. CSSStyleDeclaration ऑब्जेक्ट्समध्ये अनेक महत्त्वपूर्ण फरक आहेत जे इनलाइन शैली आणि गणना केलेल्या शैलींचे प्रतिनिधित्व करतात:

    संगणित शैली गुणधर्म केवळ वाचनीय आहेत.

    गणना केलेल्या शैली गुणधर्म आहेत परिपूर्ण मूल्ये: टक्केवारी आणि बिंदू यासारख्या मोजमापाची सापेक्ष एकके निरपेक्ष मूल्यांमध्ये रूपांतरित केली जातात. आकार निर्दिष्ट करणारी कोणतीही मालमत्ता (जसे की समासाची रुंदी किंवा फॉन्ट आकार) पिक्सेलमध्ये व्यक्त केलेले मूल्य असेल. म्हणजेच, त्याचे मूल्य "px" प्रत्यय असलेली एक स्ट्रिंग असेल, त्यामुळे तुम्हाला ते लागू करावे लागेल पार्सिंग, परंतु तुम्हाला मोजमापाची एकके परिभाषित आणि रूपांतरित करण्याबद्दल काळजी करण्याची गरज नाही. रंग परिभाषित करणारी मालमत्ता मूल्ये "rgb(#,#,#)" किंवा "rgba(#,#,#,#)" स्वरूपात परत केली जातील.

    गुणधर्म जे आहेत लहान फॉर्मरेकॉर्ड्सची गणना केली जात नाही - फक्त मूलभूत गुणधर्म ज्यावर ते आधारित आहेत. उदाहरणार्थ, आपण मूल्य मिळविण्याचा प्रयत्न करू नये मार्जिन गुणधर्म, त्याऐवजी तुम्हाला marginLeft, marginTop इत्यादी गुणधर्मांमध्ये प्रवेश करणे आवश्यक आहे.

    गणना केलेल्या शैलीची cssText गुणधर्म परिभाषित केलेली नाही.

संगणित शैलींसह कार्य करणे खूप अवघड असू शकते आणि त्यामध्ये प्रवेश करणे नेहमीच तुम्हाला अपेक्षित असलेली माहिती परत करू शकत नाही. उदाहरण म्हणून फॉन्ट-फॅमिली प्रॉपर्टीचा विचार करा: ते सुसंगततेसाठी फॉन्ट कुटुंबाच्या नावांची स्वल्पविरामाने विभक्त केलेली सूची स्वीकारते. गणना केलेल्या शैलीचा फॉन्ट फॅमिली गुणधर्म वाचताना, तुम्ही घटकावर लागू केलेल्या सर्वात विशिष्ट फॉन्ट-फॅमिली शैलीच्या मूल्याची वाट पाहत आहात. आणि या प्रकरणात, "एरियल, हेल्वेटिका, सॅन्स-सेरिफ" सारखे मूल्य परत केले जाऊ शकते, जे वापरलेल्या वास्तविक फॉन्टच्या टाइपफेसबद्दल काहीही सांगत नाही.

शैली पत्रके व्यवस्थापित करणे

आतापर्यंत आम्ही CSS शैली गुणधर्म मूल्ये आणि वैयक्तिक घटक वर्ग कसे सेट करायचे आणि कसे मिळवायचे ते पाहिले आहे. तथापि, CSS शैली पत्रके स्वतः हाताळण्याची देखील शक्यता आहे. हे सहसा आवश्यक नसते, परंतु ते कधीकधी उपयुक्त ठरू शकते आणि हा विभाग संभाव्य तंत्रांची थोडक्यात रूपरेषा देईल.

स्टाईल शीटसह कार्य करताना, आपल्याला दोन प्रकारच्या ऑब्जेक्ट्सचा सामना करावा लागेल. पहिला प्रकार म्हणजे एलिमेंट ऑब्जेक्ट्स, जे घटकांचे प्रतिनिधित्व करतात आणि त्यात शैली पत्रके असतात किंवा संदर्भित करतात. हे सामान्य दस्तऐवज घटक आहेत आणि जर तुम्ही त्यांच्यावर आयडी विशेषता परिभाषित केली असेल, तर तुम्ही document.getElementById() पद्धत वापरून त्यांची निवड करू शकता.

ऑब्जेक्टचा दुसरा प्रकार म्हणजे CSSStyleSheet ऑब्जेक्ट्स, जे स्वतः स्टाइल शीट्सचे प्रतिनिधित्व करतात. document.styleSheets गुणधर्म दस्तऐवजाच्या स्टाईल शीटचे प्रतिनिधित्व करणाऱ्या CSSStyleSheet ऑब्जेक्ट्स असलेले केवळ-वाचनीय ॲरे-सारखे ऑब्जेक्ट मिळवते. स्टाईल शीट परिभाषित किंवा संदर्भ देत असलेल्या घटकामध्ये असल्यास, परिभाषित करा शीर्षक विशेषता, हे ऑब्जेक्ट CSSStyleSheet ऑब्जेक्टची गुणधर्म म्हणून शीर्षक विशेषतामध्ये निर्दिष्ट केलेल्या नावासह उपलब्ध असेल.

खालील विभाग या घटकांवर आणि स्टाईलशीट ऑब्जेक्ट्सवर कोणती ऑपरेशन्स करता येतील याचे वर्णन करतात.

शैली पत्रके चालू किंवा बंद करणे

स्टाईल शीटसह काम करण्यासाठी सर्वात सोपी तंत्र देखील सर्वात पोर्टेबल आणि विश्वासार्ह आहे. एलिमेंट्स आणि CSSStyleSheet ऑब्जेक्ट्स एक अक्षम केलेली मालमत्ता परिभाषित करतात जी JavaScript स्क्रिप्टद्वारे वाचली आणि लिहिली जाऊ शकते. त्याच्या नावाप्रमाणे, अक्षम केलेली मालमत्ता सत्य वर सेट केल्यास, स्टाईलशीट अक्षम केली जाईल आणि ब्राउझरद्वारे दुर्लक्ष केले जाईल.

हे खाली disableStylesheet() फंक्शनद्वारे स्पष्टपणे दाखवले आहे. तुम्ही याला क्रमांक दिल्यास, ते document.styleSheets ॲरेमधील अनुक्रमणिका म्हणून त्याचा अर्थ लावेल. तुम्ही स्ट्रिंग पास केल्यास, ते त्याचा अर्थ लावेल CSS निवडकर्ता, ते document.querySelectorAll() पद्धतीवर पास करणे आणि प्राप्त झालेल्या सर्व घटकांची अक्षम केलेली मालमत्ता सत्यावर सेट करणे:

फंक्शन disableStylesheet(ss) ( if (typeof ss === "number") document.styleSheets.disabled = true; else ( var sheets = document.querySelectorAll(ss); for(var i = 0; i

स्टाईल शीटमधून नियम मिळवणे, घालणे आणि काढणे

स्टाइल शीट्स सक्षम किंवा अक्षम करण्याच्या क्षमतेव्यतिरिक्त, CSSStyleSheet ऑब्जेक्ट स्टाईल शीटमधून शैली नियम पुनर्प्राप्त करण्यासाठी, घालण्यासाठी आणि काढण्यासाठी API देखील परिभाषित करते. IE8 आणि पूर्वीच्या आवृत्त्या इतर ब्राउझरद्वारे लागू केलेल्या मानकापेक्षा थोड्या वेगळ्या API लागू करतात.

सर्वसाधारणपणे, शैली पत्रके थेट हाताळणे क्वचितच उपयुक्त आहे. स्टाईल शीटमध्ये नवीन नियम जोडण्याऐवजी, त्यांना स्थिर ठेवून घटकाच्या className गुणधर्मासह कार्य करणे सामान्यतः चांगले असते. त्याच वेळी, वापरकर्त्यास संधी प्रदान करणे आवश्यक असल्यास पूर्ण नियंत्रणवेब पृष्ठ शैली पत्रके, तुम्हाला डायनॅमिक टेबल हाताळणीची व्यवस्था करावी लागेल.

CSSStyleSheet ऑब्जेक्ट्स document.styleSheets ॲरेमध्ये संग्रहित केले जातात. CSSStyle शीट ऑब्जेक्टमध्ये cssRules प्रॉपर्टी आहे जी शैली नियमांची श्रेणी संग्रहित करते:

Var firstRule = document.styleSheets.cssRules;

IE मध्ये या गुणधर्माला नियम म्हणतात, cssRules नाही.

cssRules किंवा नियम ॲरेचे घटक CSSRule ऑब्जेक्ट्स आहेत. मानक मध्ये API ऑब्जेक्ट CSSRule @-नियम जसे की @import आणि @page निर्देशांसह कोणत्याही प्रकारच्या CSS नियमांचे प्रतिनिधित्व करू शकते. तथापि, IE मध्ये, नियम ॲरेमध्ये फक्त वास्तविक स्टाइलशीट नियम असू शकतात.

CSSRule ऑब्जेक्टमध्ये दोन गुणधर्म आहेत जे पोर्टेबल मार्गाने वापरले जाऊ शकतात. (स्टँडर्ड API मध्ये, शैली नसलेल्या नियमांमध्ये हे गुणधर्म नसतात, त्यामुळे तुम्हाला स्टाईल शीटमधून मार्गक्रमण करताना ते वगळावे लागेल.) SelectorText गुणधर्म हे CSS निवडक आहे या नियमाचा, आणि शैली गुणधर्म हा लेखन करण्यायोग्य CSSStyleDeclaration ऑब्जेक्टचा संदर्भ आहे जो या निवडकाशी संबंधित शैलींचे वर्णन करतो. स्मरणपत्र म्हणून, CSSStyleDeclaration हा समान प्रकार आहे जो इनलाइन आणि संगणित शैली दर्शवण्यासाठी वापरला जातो.

CSSStyleDeclaration ऑब्जेक्ट विद्यमान वाचण्यासाठी किंवा नियमांमध्ये नवीन शैली तयार करण्यासाठी वापरला जाऊ शकतो. बऱ्याचदा, स्टाईल शीटवरून जाताना, नियमाचा मजकूर स्वारस्यपूर्ण असतो, त्याचे विश्लेषण केलेले प्रतिनिधित्व नाही. या प्रकरणात, तुम्ही CSSStyleDeclaration ऑब्जेक्टची cssText प्रॉपर्टी वापरू शकता, ज्यामध्ये मजकूर प्रस्तुतीकरणातील नियम आहेत.

विद्यमान शैली पत्रक नियम पुनर्प्राप्त आणि सुधारित करण्याच्या क्षमतेव्यतिरिक्त, आपल्याकडे स्टाईल शीटमध्ये नियम जोडण्याची आणि नियम काढण्याची क्षमता आहे. मानक ऍप्लिकेशन इंटरफेस insertRule() आणि deleteRule() पद्धती परिभाषित करतो जे तुम्हाला नियम जोडण्याची आणि काढण्याची परवानगी देतात:

Document.styleSheets.insertRule("H1 ( मजकूर-वजन: ठळक; )", 0);

IE ब्राउझर insertRule() आणि deleteRule() पद्धतींना समर्थन देत नाही, परंतु ते addRule() आणि removeRule() फंक्शन्स परिभाषित करते जे त्यांच्या जवळपास समतुल्य आहेत. एकमेव महत्त्वाचा फरक (फंक्शनच्या नावांव्यतिरिक्त) हा आहे की addRule() दोन स्वतंत्र वितर्कांमध्ये मजकूर म्हणून निवडकर्ता आणि शैली प्राप्त करण्याची अपेक्षा करते.

नवीन शैली पत्रके तयार करणे

शेवटी, तुम्ही पूर्णपणे नवीन शैली पत्रके तयार करू शकता आणि त्यांना तुमच्या दस्तऐवजात जोडू शकता. बहुतेक ब्राउझरमध्ये हे ऑपरेशन वापरून केले जाते मानक तंत्र DOM मध्ये लागू: विभागातील दस्तऐवजात एक नवीन घटक तयार केला जातो आणि समाविष्ट केला जातो, नंतर innerHTML गुणधर्म वापरून शैली पत्रकाची सामग्री जोडली जाते. तथापि, IE8 मध्ये आणि नंतर पूर्वीच्या आवृत्त्यावापरून नवीन CSSStyleSheet ऑब्जेक्ट तयार करणे आवश्यक आहे मानक नसलेली पद्धत document.createStyleSheet(), आणि cssText गुणधर्म वापरून शैली पत्रक मजकूर जोडा.

खाली दिलेले उदाहरण नवीन टेबल्सची निर्मिती दर्शवते:

// दस्तऐवजात एक शैली पत्रक जोडते आणि ते निर्दिष्ट शैलींनी भरते. // शैली युक्तिवाद स्ट्रिंग किंवा ऑब्जेक्ट असू शकतो. जर ती स्ट्रिंग असेल, // ती स्टाइलशीट मजकूर म्हणून समजली जाते. जर ते ऑब्जेक्ट असेल, तर त्यातील प्रत्येक // गुणधर्माने टेबलमध्ये जोडण्यासाठी शैली नियम परिभाषित करणे आवश्यक आहे. // मालमत्तेची नावे निवडक आहेत आणि त्यांची मूल्ये संबंधित शैली फंक्शन addStylesheet(styles) आहेत ( // प्रथम तुम्हाला नवीन स्टाइल शीट var styleElt, styleSheet; if (document.createStyleSheet) ( // जर एक IE API परिभाषित केले आहे, ते वापरा styleSheet = document .createStyleSheet(); ) इतर ( var head = document.getElementsByTagName("head"); styleElt = document.createElement("style"); // नवीन घटक head.appendChild(styleElt); // आता // मध्ये पेस्ट करा नवीन टेबलॲरेच्या शेवटी आहे styleSheet = document.styleSheets; ) // टेबलमध्ये शैली घाला जर (typeof शैली === "स्ट्रिंग") ( // युक्तिवाद समाविष्टीत आहेमजकूर व्याख्या

स्टाइलशीट्स जर (styleElt) styleElt.innerHTML = शैली;

else styleSheet.cssText = शैली; // IE API ) इतर (// var i = 0 साठी नियमांसह युक्तिवाद ऑब्जेक्ट; साठी(शैलींमध्ये निवडक) ( if (styleSheet.insertRule) ( var नियम = निवडकर्ता + " (" + शैली + ")"; स्टाइलशीट .insertRule(नियम, i++); बाकी ( styleSheet.addRule(निवडक, शैली, i++); ) ) )

शुभ दिवस, प्रिय सदस्यांनो!

एचटीएमएलमध्ये, एखादी वस्तू दृश्यमान किंवा अदृश्य करण्याचा पर्याय आहे आणि विविध पर्याय आहेत आणि ते सामग्री वेगळ्या पद्धतीने प्रदर्शित करतात.

तर चला सुरुवात करूया.

आमच्या ब्लॉकसाठी, आम्ही व्हॅल्यू स्क्रोलसह ओव्हरफ्लो गुणधर्म सेट करतो. ब्लॉक आम्हाला आवश्यक आकाराचा बनतो, सर्व सामग्री त्यात बसते आणि स्क्रोल बार दिसतात.

ओव्हरफ्लो गुणधर्म मूल्ये खाली दिली आहेत:

ओव्हरफ्लो - एखाद्या वस्तूची सामग्री पूर्णपणे दर्शविली जाऊ शकत नसल्यास त्याचा आकार नियंत्रित करा.

मूल्ये:

स्वयं - ब्राउझरद्वारे निर्धारित.

दृश्यमान - आकार इतका ताणलेला आहे की सर्व सामग्री दृश्यमान आहे.

लपवलेले - घटकाच्या सीमांच्या पलीकडे जाणारे काहीही प्रदर्शित केले जात नाही.

स्क्रोल - सर्व सामग्री प्रदर्शित केली जाते आणि स्क्रोल बार दिसतात.

आमच्या विशिष्ट प्रकरणासाठी, एक उदाहरणः

XHTML

#st1( ओव्हरफ्लो: स्क्रोल; रुंदी:200px; उंची:300px; ) मजकुराचा बराच मोठा तुकडा

अशी एक मालमत्ता आहे जी आपल्याला घटकाच्या सामग्रीची दृश्यमानता नियंत्रित करण्यास अनुमती देते.

दृश्यमानता - CSS मध्ये घटकाच्या सामग्रीची दृश्यमानता नियंत्रित करते.

मूल्ये:

XHTML

या शीर्षलेखाची सामग्री प्रदर्शित केली जाणार नाही

पुढील गुणधर्म जी तुम्हाला ब्लॉकची दृश्यमानता नियंत्रित करण्यास अनुमती देते ते प्रदर्शन आहे.

डिस्प्ले - घटक कसा प्रदर्शित केला जाईल हे निर्धारित करते

मूल्ये:

काहीही नाही - घटक प्रदर्शित होत नाही

ब्लॉक - घटकाच्या आधी आणि नंतरची ओळ खंडित करते (म्हणजे घटक इतर घटकांप्रमाणे समान ओळीवर असू शकत नाही)

इनलाइन - ओळ खंडित करत नाही

ही मालमत्ता कशी वापरायची?

समजा आमच्याकडे मजकूर आहे, या मजकुरात एक टॅग आहे किंवा तो एक दुवा असू शकतो, आणि आम्हाला या टॅगची सामग्री किंवा दुवा प्रदर्शित करणे आवश्यक आहे स्वतंत्र ओळ, नंतर त्यांच्यासाठी आम्ही डिस्प्ले गुणधर्म ब्लॉक करण्यासाठी सेट करू. आणि त्याउलट, आवश्यक असल्यास, टॅग चालू नाही असे म्हणूया स्वतंत्र टर्म, आणि मजकूर प्रमाणेच, आम्ही त्याची डिस्प्ले प्रॉपर्टी इनलाइन मूल्यासह सेट करतो.

XHTML

वेगळ्या ओळीवर प्रदर्शित केलेल्या मजकुरासह समान ओळीवर असेल

विशेष लक्ष. जर आम्ही डिस्प्ले गुणधर्म कोणत्याही घटकावर सेट केले ज्यामध्ये कोणतेही मूल्य नाही, तर हा घटक प्रदर्शित होणार नाही. शिवाय, लपविलेल्या मूल्यासह दृश्यमानता गुणधर्माच्या विपरीत, हा घटक पूर्णपणे प्रदर्शित केला जाणार नाही (लपलेल्या मूल्यासह दृश्यमानता गुणधर्म घटकाची सामग्री प्रदर्शित करणार नाही आणि घटक स्वतः पृष्ठावर त्याचे स्थान घेईल).

आणि त्याच दिवशी, शास्त्रज्ञांनी गुरुत्वाकर्षणाची चिंता केली. योगायोग? अन्यथा नाही.

मागील लेखातील नमुना मल्टी-स्टेज सीएसएस लोडिंगच्या 90% प्रकरणांचा समावेश करते आणि त्याची साधेपणा अगदी स्पष्ट आहे. परंतु तुम्हाला अशा पॅटर्नबद्दल ऐकायला आवडेल जे ~100% वेळ काम करते आणि हास्यास्पदरीत्या क्लिष्ट देखील आहे? मग मी तुम्हाला माझ्यासोबत पुढील परिच्छेदात जाण्यासाठी आमंत्रित करतो...

10% गहाळ

CSS लोड होत असताना, पार्सर अवरोधित करत आहे, याचा अर्थ त्यानंतरच्या सर्व सामग्रीसाठी प्रस्तुतीकरण अवरोधित केले आहे. वर नमूद केलेल्या लेखातील डेमो पृष्ठानुसार, प्रस्तुतीकरण खालील टप्प्यात विभागले गेले आहे.

मोबाईल फोन संगणक

मोबाइलवर हे उत्तम आहे, जेथे प्रत्येक विभागासाठी CSS स्वतःला आणि त्यानंतरच्या सर्व विभागांना ब्लॉक करते, परंतु डेस्कटॉपवर, मुख्य आणि डाव्या स्तंभातील टिप्पण्यांसाठी CSS उजव्या स्तंभात रेंडर होण्यापासून-माझ्याला ब्लॉक करते, जरी CSS साठी बद्दल-मी प्रथम लोड केले आहे. याचे कारण असे की लॉक ऑर्डर स्त्रोत कोडमधील ऑर्डरद्वारे निर्धारित केला जातो, परंतु या डिझाइनसाठी ते असणे चांगले होईल उजवा स्तंभडाव्या समोर हजर झाले.

आम्हाला एक अवलंबित्व वृक्ष तयार करण्याची आवश्यकता आहे जिथे प्रत्येक घटकाचे प्रस्तुतीकरण इतर विशिष्ट घटकांच्या प्रस्तुतीपूर्वी अवरोधित केले जाते. तसेच, जेव्हा व्ह्यूपोर्टची रुंदी बदलते तेव्हा अवलंबित्व बदलण्यास सक्षम असावे. मोहक वाटतं, नाही का?

हे वापरून करता येते सानुकूल गुणधर्म CSS...

सानुकूल CSS गुणधर्म

पण आज आमच्या संभाषणासाठी हे जाणून घेणे पुरेसे आहे...

एचटीएमएल (पार्श्वभूमी: var(--ग्लूप, लाल);)

येथे आम्ही पृष्ठ पार्श्वभूमीला --gloop कस्टम प्रॉपर्टी मधील व्हॅल्यूवर सेट करतो आणि जर त्यात एक नसेल, तर फॉलबॅक म्हणून लाल वर सेट करा. परिणामी, पार्श्वभूमी लाल होईल. परंतु आपण जोडल्यास:

: रूट ( --gloop: हिरवा;)

...आम्ही --gloop कस्टम प्रॉपर्टी ग्रीन वर सेट केली, त्यामुळे पेज आता हिरवे आहे. परंतु आपण जोडल्यास:

: रूट ( --gloop: आरंभिक; )

प्रारंभिक मूल्य येथे एक विशेष प्रकारे हाताळले जाते. ते प्रत्यक्षात --gloop ओव्हरराइड करते जेणेकरून पृष्ठ पार्श्वभूमी आता पुन्हा लाल होईल.

कस्टम CSS गुणधर्म वापरून रेंडरिंग डिपेंडन्सी ट्री तयार करणे

हे शीर्षक पूर्ण करताना, मी किती हुशार आहे याचा मला आधीच आनंद झाला होता.

HTML [ "/main.css", "/comments.css", "/about-me.css", "/footer.css" ].map(url => ( const link = document.createElement("link" link.rel = "stylesheet"; link.href = document.head.appendChild(link));

त्यामुळे तुम्ही /initial.css वापरून लोड करू शकता किंवा एम्बेड करू शकता, कारण ते अजूनही रेंडरिंग ब्लॉक करते. परंतु आम्ही इतर सर्व स्टाईलशीट्स असिंक्रोनस लोड करतो.

initial.css मुख्य, .comments, .about-me, तळटीप (प्रदर्शन: काहीही नाही; ) :रूट ( --मुख्य-ब्लॉकर: काहीही नाही; --टिप्पण्या-ब्लॉकर: काहीही नाही; --बद्दल-मी-ब्लॉकर: काहीही नाही; - -फूटर-ब्लॉकर: काहीही नाही; ) /* इतर प्रारंभिक शैली... */

आम्ही अद्याप प्रदर्शित करण्यासाठी तयार नसलेले विभाग लपवतो आणि नंतर प्रत्येक विभागासाठी आम्ही सानुकूल "ब्लॉकर" गुणधर्म तयार करतो.

main.css : रूट ( --मुख्य-ब्लॉकर: आरंभिक; ) मुख्य ( प्रदर्शन: var(--मुख्य-ब्लॉकर, ब्लॉक); ) /* इतर मुख्य सामग्री शैली... */

मुख्य सामग्रीमध्ये कोणतेही प्रदर्शन अवलंबित्व नाही. CSS लोड झाल्यावर, त्याचा ब्लॉकर रद्द केला जातो (प्रारंभिक सह) आणि प्रस्तुत केला जातो.

टिप्पणी

टिप्पण्या मुख्य सामग्रीच्या आधी प्रदर्शित केल्या जाऊ नयेत, म्हणून टिप्पणी अवरोधक --main-blocker शी संबंधित आहे. हे CSS लोड होताच आणि --main-blocker रद्द केल्यावर Block.comments दृश्यमान होतात

about-me.css : root ( --about-me-blocker: var(--comments-blocker); ) .about-me ( प्रदर्शन: var(--बद्दल-मी-ब्लॉकर, ब्लॉक); )

वरील कोड प्रमाणेच, .about-me त्याच्या CSS आणि टिप्पण्यांवर अवलंबून आहे. परंतु जेव्हा पृष्ठ विस्तृत होते, तेव्हा ते दोन स्तंभांमध्ये प्रस्तुत केले जाते, त्यामुळे आम्हाला यापुढे प्रदर्शनासाठी टिप्पण्यांवर अवलंबून राहण्यासाठी .about-me ची आवश्यकता नाही:

@media (किमान-रुंदी: 600px) ( :root ( --about-me-blocker: आरंभिक; ) ) /* about-me साठी इतर शैली... */

तयार! जेव्हा व्ह्यूपोर्टची रुंदी 600px पेक्षा जास्त असते, तेव्हा .about-me चे CSS लोड झाल्यानंतर लगेच रेंडर केले जाते.

footer.css : root ( --footer-blocker: var(--main-blocker, var(--about-me-blocker)); ) फूटर ( प्रदर्शन: var(--footer-blocker, block); ) / *इतर शैली...*/

मुख्य सामग्री आणि माझ्याबद्दल विभाग दिसल्यानंतर तळटीप दिसली पाहिजे. हे करण्यासाठी, --footer-blocker त्याचे मूल्य --main-blocker वरून घेते, परंतु --main-blocker --footer-blocker रद्द केल्यानंतर लगेच --about-me-blocker वरून घेतलेल्या मूल्यावर परत येते.

डेमो

आवश्यक आहे क्रोम कॅनरीकिंवा फायरफॉक्स.

या डेमोमध्ये, CSS असिंक्रोनस लोड केले जाते, प्रत्येक फाइल लोड करण्यासाठी अंदाजे 0-5 सेकंद लागतात. असे असूनही, पृष्ठ कधीही व्यवस्थित दिसणार नाही आणि ब्राउझरच्या रुंदीनुसार प्रत्येक विभाग शक्य तितक्या लवकर दिसून येईल.

पण... हे व्यावहारिक आहे का?

ही पद्धत अधिक क्लिष्ट आहे, कमीत कमी फायदे आणि मोठ्या पाठीमागे अनुकूलता समस्यांसह. परंतु हे सानुकूल CSS गुणधर्मांचे सामर्थ्य प्रदर्शित करते जे Sass compile-time variables सारखे उपाय करू शकत नाहीत.

जर तुम्हाला आज खरोखरच असेच काही करायचे असेल तर तुम्ही मोठ्या प्रमाणात काम करू शकता असिंक्रोनस लोडिंग loadCSS वापरून CSS, आणि काही शैली लोड झाल्यावर वर्ग जोडणे (), जरी यामुळे हॅकद्वारे अनेक विशिष्ट समस्यांचे निराकरण होईल.

मला वाटते की हा लेख एक "मजेदार उदाहरण" मानला जाऊ शकतो, परंतु आम्ही CSS सानुकूल गुणधर्मांची शक्ती शोधण्यास सुरुवात केली आहे.

दुरुस्तीसाठी रेमी शार्पचे आभार. मी कधीही न एक लेख असेल शुद्धलेखनाच्या चुका? निडोकगाह.

गोषवारा: शैली पत्रके प्रवेश. शैली पत्रक गुणधर्म. नियम जोडणे आणि काढणे. घटक शैली बदलणे. घटक वर्गांची नावे.

चला एक नजर टाकूया (मध्ये या क्षणी) सैद्धांतिक उदाहरण - एक वेबसाइट असू द्या जिथे तांत्रिक लेखांची मालिका सादर केली जाईल. आम्हाला यापैकी काही लेख छान ॲनिमेटेड कॅरोसेलसह हायलाइट करायचे आहेत, परंतु काही कारणास्तव JavaScript सक्षम नसलेल्या वापरकर्त्यांचे काय? बिनधास्त JavaScript बद्दल आम्ही काय शिकलो ते आठवून, आम्हाला वेब साइटची कार्यक्षमता त्या वापरकर्त्यांसाठी देखील कार्य करायची आहे, परंतु आम्ही त्या वापरकर्त्यांसाठी साइट वेगळ्या पद्धतीने डिझाइन करू इच्छितो जेणेकरून ते कॅरोसेलशिवाय देखील साइट आरामात वापरू शकतील.

जर तुम्हाला हा नियम हटवायचा असेल, तर तुम्ही stylesheet.deleteRule(index) फंक्शनला कॉल करू शकता, जेथे इंडेक्स हा नियम हटवला जाईल.

लेखांचे प्रात्यक्षिक करण्याच्या उदाहरणामध्ये, तुम्ही एक नियम तयार करू शकता जो HTML आणि JavaScript बद्दलच्या सर्व लेखांसाठी डिस्प्ले गुणधर्म एकही नाही - कॅरोसेल उदाहरण पहा (http://dev.opera.com/articles/view/dynamic- style-css-javascript/carousel .html) कृतीत पाहण्यासाठी.

टीप: IE मानकांनुसार नियम लागू करत नाही. हे cssRules विशेषता ऐवजी नियम वापरते. IE देखील deleteRule ऐवजी removeRule आणि insertRule ऐवजी addRule (selector, rule, index) वापरते.

घटक शैली बदलणे

पृष्ठाशी संबंधित स्टाईल शीट्स कसे संपादित करावे आणि त्यामध्ये CSS नियम कसे तयार करावे आणि सुधारित करावे हे आपण आता समजून घेतले पाहिजे. तुम्हाला DOM मधील विशिष्ट घटक बदलायचा असेल तर? DOM API वापरून तुम्ही प्रवेश करू शकता काही घटकपृष्ठे कॅरोसेल उदाहरणाकडे परत आल्यावर, तुम्ही पाहू शकता की फंक्शन्स अशा प्रकारे परिभाषित केल्या आहेत की जेव्हा तुम्ही एखाद्या लेखावर क्लिक करता तेव्हा तो लेख हायलाइट केला जातो, तर लेखाचा मुख्य मजकूर खाली प्रदर्शित होतो.

DOM वापरून, आम्ही स्टाईल ऑब्जेक्टमध्ये प्रवेश करतो, जे दस्तऐवजाच्या शैलीचे वर्णन करते. या शैली ऑब्जेक्टला CSSStyleDeclaration म्हणून परिभाषित केले आहे; तपशीलवार स्पष्टीकरणहे CSSStyleDeclaration इंटरफेस (http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration) साठी W3C दस्तऐवजीकरणामध्ये आढळू शकते. स्टाइल ऑब्जेक्ट HTML घटकावर परिभाषित केलेल्या इतर गुणधर्मांप्रमाणेच कार्य करत नाही. element.href किंवा element.id च्या विपरीत जे स्ट्रिंग परत करतात, element.style ऑब्जेक्ट परत करते. याचा अर्थ element.style ला स्ट्रिंग नियुक्त करून शैली सेट करणे शक्य नाही.

शैली ऑब्जेक्टमध्ये भिन्नतेशी संबंधित गुणधर्म आहेत दिलेले गुणधर्म CSS. उदाहरणार्थ, style.color घटकावर निर्दिष्ट केलेला रंग परत करतो. element.style.color = "लाल" करणे;

आपण गतिशीलपणे शैली बदलू शकता. खाली एक फंक्शन आहे जे घटकाचा आयडी पास केल्यावर घटकाचा रंग लाल करते.

फंक्शन colorElementRed(id) ( var el = document.getElementById(id); el.style.color = "लाल"; )

तुम्ही घटकाला शैली देण्यासाठी setAttribute(की, मूल्य) देखील वापरू शकता. उदाहरणार्थ, element.setAttribute("style", "color: red"); कॉल करून घटकाचा रंग लाल वर सेट करा; , परंतु सावधगिरी बाळगा कारण हे शैली ऑब्जेक्टमध्ये केलेले कोणतेही बदल काढून टाकते.

जेव्हा एखाद्या घटकाची शैली अशा प्रकारे निर्दिष्ट केली जाते, तेव्हा ती HTML घटकाच्या शैली गुणधर्माची घोषणा म्हणून निर्दिष्ट केल्याप्रमाणेच असते. ही शैली केवळ तेव्हाच लागू केली जाईल जेव्हा नियमाचे महत्त्व आणि विशिष्टता घटकावर लागू केलेल्या इतर नियमांपेक्षा जास्त असेल (विशिष्टता CSS इनहेरिटन्स आणि कॅस्केडिंगवरील अध्याय 28 मध्ये स्पष्ट केली आहे).

तुमच्यापैकी काहीजण कदाचित विचार करत असतील की मालमत्ता सेट केल्यावर काय होते

वापरकर्त्याला दस्तऐवज सादर करणे म्हणजे वापरकर्त्याला समजू शकेल अशा फॉर्ममध्ये रूपांतरित करणे. फायरफॉक्स, क्रोम किंवा इंटरनेट एक्सप्लोरर सारखे ब्राउझर, दस्तऐवज दृश्यमानपणे सादर करण्यासाठी डिझाइन केलेले आहेत, जसे की संगणक स्क्रीन, प्रोजेक्टर किंवा प्रिंटरवर.

CSS चा HTML वर कसा परिणाम होतो?

  • ब्राउझर दस्तऐवज कसे प्रदर्शित केले जाईल याचे वर्णन करण्यासाठी CSS नियम लागू करतो. CSS नियम यापासून तयार केले जातात: गुणधर्मांचा एक संच ज्यामध्ये मूल्ये आहेत जे निर्दिष्ट करतात की सामग्री (HTML) कशी रेंडर केली जाईल, उदाहरणार्थ मला घटकाची रुंदी रुंदीच्या 50% हवी आहेमूळ घटक.
  • , आणि त्याची पार्श्वभूमी लाल होती निवडकर्ता जो निवडतोनिवडते) घटक/घटक ज्यावर तुम्ही बदललेली मूल्ये लागू करू इच्छिता. उदाहरणार्थ,.

स्टाईलशीटमध्ये असलेल्या CSS नियमांचा संच वेब पृष्ठ कसे दिसावे हे परिभाषित करतो. बद्दल अधिक तपशील CSS वाक्यरचनाआपण मॉड्यूलच्या पुढील लेखात शोधू शकाल -.

संक्षिप्त CSS उदाहरण

वर दिलेली वर्णने कदाचित स्पष्ट नसतील, म्हणून थिअरीचा थोडासा बॅकअप घेऊ या व्यावहारिक उदाहरण. सर्व प्रथम, एक साधा HTML दस्तऐवज पाहू ज्यामध्ये आणि

(लक्षात ठेवा की शैली पत्रक घटक वापरून HTML वर लागू केले आहे):

CSS सह माझा प्रयोग हॅलो वर्ल्ड!

हे माझे पहिले CSS उदाहरण आहे

आता दोन नियम असलेले एक अतिशय साधे CSS उदाहरण पाहू:

पहिला नियम h1 सिलेक्टरने सुरू होतो, याचा अर्थ तो घटकावर लागू केला जाईल. यात तीन गुणधर्म आणि तीन मूल्ये आहेत (प्रत्येक मालमत्ता/मूल्य जोडीला घोषणा म्हणतात):

  • पहिली जाहिरात मजकूराचा रंग निळ्या रंगात बदलते.
  • दुसरा मजकूरासाठी पिवळी पार्श्वभूमी सेट करतो.
  • तिसरा मजकुराभोवती एक बॉर्डर तयार करतो जी 1 पिक्सेल रुंद, घन (डॉटेड किंवा डॉटेड नाही) आणि रंगीत काळा आहे.
  • दुसरा नियम p निवडक ने सुरू होतो, याचा अर्थ तो घटकाला लागू होईल

    . यात एक जाहिरात आहे जी मजकूराचा रंग लाल रंगात बदलते.

    वरील कोड ब्राउझरमध्ये याप्रमाणे दिसेल:

    हे खूप सुंदर नाही, परंतु ते CSS कसे कार्य करते हे दर्शवते.

    सक्रिय शिक्षण: आमचे पहिले CSS लेखन

    आता आम्ही तुम्हाला तुमचा पहिला CSS लिहिण्याची संधी देऊ. तुम्ही खालील इनपुट फील्ड वापरून हे करू शकता आणि ते थेट संपादन करण्यायोग्य उदाहरणामध्ये पाहू शकता. आमच्याकडे काही साधे आहेत HTML घटक, तसेच काही CSS गुणधर्म. वरीलप्रमाणेच, HTML शैली परिभाषित करण्यासाठी CSS मध्ये सोपी घोषणा जोडण्याचा प्रयत्न करा.

    आपण चूक केल्यास, आपण नेहमी बटण वापरून रीसेट करू शकता रीसेट करा.तुम्हाला अडकल्यासारखे वाटत असल्यास, तुम्ही उपाय पाहण्यासाठी "सोल्यूशन दाखवा" वर क्लिक करू शकता.

    प्ले करण्यायोग्य कोड HTML इनपुट हॅलो वर्ल्ड!

    हा एक परिच्छेद आहे.

    • हे आहे
    • एक यादी
    CSS इनपुट h1 ( ) p ( ) li ( ) आउटपुट var htmlInput = document.querySelector(."html-input"); var cssInput = document.querySelector(."css-input"); var reset = document.getElementById("रीसेट"); var htmlCode = htmlInput.value; var cssCode = cssInput.value; var आउटपुट = document.querySelector("output"); var उपाय = document.getElementById("सोल्यूशन"); var styleElem = document.createElement("style"); var headElem = document.querySelector("head"); headElem.appendChild(styleElem); फंक्शन drawOutput() ( output.innerHTML = htmlInput.value; styleElem.textContent = cssInput.value; ) reset.addEventListener("क्लिक", function() ( htmlInput.value = htmlCode; cssInput.value = cssCode; drawOutput(); )); solution.addEventListener("क्लिक", function() ( htmlInput.value = htmlCode; cssInput.value = "h1 (\n रंग: निळा;\n पार्श्वभूमी-रंग: पिवळा;\n सीमा: 1px घन काळा ;\n)\n\np (\n रंग: लाल;\n)\n\nli (\n मजकूर-छाया: 2px 2px 3px जांभळा;\n)"; drawOutput(); }); htmlInput.addEventListener("input", drawOutput); cssInput.addEventListener("input", drawOutput); window.addEventListener("load", drawOutput); Как на самом деле работает CSS? !}

    जेव्हा ब्राउझर दस्तऐवज प्रस्तुत करतो, तेव्हा ते दस्तऐवजाची सामग्री स्टाइलिंग माहितीसह एकत्र करते. हे दस्तऐवज दोन टप्प्यात प्रक्रिया करते:

  • ब्राउझर HTML आणि CSS ला DOM मध्ये रूपांतरित करतो. दस्तऐवज ऑब्जेक्ट मॉडेल). DOM संगणकाच्या मेमरीमध्ये दस्तऐवजाचे प्रतिनिधित्व करते आणि सामग्रीवर शैली लागू करते.
  • ब्राउझर DOM ची सामग्री रेंडर करतो.
  • DOM बद्दल

    DOM मध्ये झाडाची रचना आहे. मार्कअप भाषेतील प्रत्येक घटक, विशेषता आणि मजकूराचा तुकडा या संरचनेत DOM नोड म्हणून दर्शविला जातो. नोड्स इतर DOM नोड्सशी त्यांच्या संबंधानुसार परिभाषित केले जातात. घटकांना मुले असू शकतात आणि मुलांना भावंड घटक असू शकतात.

    DOM समजून घेतल्याने तुमचा CSS डिझाईन, डीबग आणि देखरेख करण्यात मदत होईल कारण DOM जेथे CSS दस्तऐवज सामग्री पूर्ण करते.

    DOM प्रतिनिधित्व

    लांब आणि कंटाळवाण्या स्पष्टीकरणाऐवजी, DOM आणि CSS एकत्र कसे कार्य करतात हे दर्शवेल असे उदाहरण पाहू.

    चला प्रदान केलेला HTML कोड पाहू:

    DOM मध्ये, घटकाशी संबंधित नोड

    पालक आहे. त्याची मुले मजकूर नोड्स आहेत आणि घटकाशी संबंधित आहेत. SPAN नोड देखील पालक आहेत आणि त्यांची मुले मजकूर घटक आहेत:

    P ├─ "चला" वापरू:" ├─ SPAN | └─ "कॅस्केडिंग" ├─ SPAN | └─ "शैली" └─ SPAN └─ "पत्रके"

    ब्राउझरद्वारे डीओएम ट्रीचा अर्थ लावल्यानंतर, आम्हाला आउटपुट मिळते:

    DOM वर CSS लागू करत आहे

    चला वापरु: कॅस्केडिंग स्टाईल शीट्स

    आम्ही त्यावर हे CSS लागू करू:

    स्पॅन (सीमा: 1px घन काळा; पार्श्वभूमी-रंग: चुना;)

    ब्राउझर HTML पार्स करेल आणि त्यातून एक DOM तयार करेल आणि नंतर CSS शी व्यवहार करेल. आमच्याकडे स्पॅन सिलेक्टरचे वर्णन करणारा फक्त एक नियम असल्याने, तो त्या सिलेक्टरसह सर्व दस्तऐवज नोड्सवर लागू केला जाईल. याचा परिणाम म्हणून आपल्याला हेच मिळते.

    तुमचा सीएसएस तुमच्या HTML वर कसा लागू करायचा

    तीन आहेत विविध पर्याय HTML दस्तऐवजावर CSS लागू करणे, जे सर्वात सामान्य आहेत. येथे आपण त्या प्रत्येकाकडे पाहू.

    बाह्य शैली पत्रक

    आपण या लेखात आधीच बाह्य शैली पत्रक पाहिले आहे, परंतु आपण त्यास कॉल केला नाही. बाह्य शैली पत्रक आहे स्वतंत्र फाइल.css विस्तारासह, जिथे CSS संग्रहित केला जातो. आपण वापरून HTML वरून त्याचा संदर्भ घ्या. HTML असे दिसते:

    माझा CSS प्रयोग हॅलो वर्ल्ड!

    हे माझे पहिले CSS उदाहरण आहे

    CSS फाइल जोडूया:

    H1 (रंग: निळा; पार्श्वभूमी-रंग: पिवळा; सीमा: 1px घन काळा; ) p (रंग: लाल;)

    ही पद्धत कदाचित सर्वोत्कृष्ट आहे कारण आपण एकाधिक दस्तऐवजांसाठी एक शैली पत्रक वापरू शकता. शैली अपडेट करण्यासाठी, तुम्हाला फक्त एका CSS फाइलमध्ये बदल करावे लागतील.

    अंतर्गत शैली पत्रक

    अंतर्गत शैली पत्रक घटकामध्ये समाविष्ट आहे आणि त्याला कनेक्शनची आवश्यकता नाही बाह्य फाइल्स. HTML हेड टॅगमध्ये समाविष्ट आहे. समान शैली कनेक्शन पद्धतीसह HTML असे दिसते:

    माझा CSS प्रयोग h1 (रंग: निळा; पार्श्वभूमी-रंग: पिवळा; सीमा: 1px घन काळा; ) p (रंग: लाल; ) हॅलो वर्ल्ड!

    हे माझे पहिले CSS उदाहरण आहे

    हे काही परिस्थितींमध्ये उपयुक्त ठरू शकते (कदाचित तुम्ही सामग्री व्यवस्थापन प्रणालीसह काम करत आहात जिथे तुम्ही थेट CSS फाइल बदलू शकत नाही), परंतु ते तितके कार्यक्षम नाही बाह्य सारण्याशैली एकापेक्षा जास्त पृष्ठ असल्याच्या साइटमध्ये, प्रत्येक पृष्ठावर CSS ची पुनरावृत्ती करावी लागेल आणि जर शैली बदलली तर ती अनेक ठिकाणी संपादित करावी लागेल.

    अंगभूत शैली

    इनलाइन शैली ही एक CSS घोषणा आहे जी फक्त एका घटकाला लागू होते आणि शैली विशेषतामध्ये समाविष्ट असते:

    माझा CSS प्रयोग हॅलो वर्ल्ड!

    हे माझे पहिले CSS उदाहरण आहे

    कृपया अगदी आवश्यक असल्याशिवाय हे करू नका! हे देखरेखीसाठी खूप वाईट आहे (तुम्हाला तीच माहिती एका दस्तऐवजात अनेक वेळा अपडेट करावी लागेल). CSS आणि HTML मिक्स केल्याने कोड वाचता येत नाही. HTML आणि शैली विभक्त करून, आपण भविष्यात आपल्यासाठी आणि आपल्या सहकाऱ्यांसाठी गोष्टी सुलभ कराल.

    तुम्हाला इनलाइन शैली वापरण्याचा अवलंब करावा लागेल तेव्हाच तुमच्या कामाचे वातावरणनिर्बंध सेट करते (उदाहरणार्थ, तुमचे CMS फक्त HTML संपादनास अनुमती देते)

    पुढे काय

    या टप्प्यावर, CSS कसे कार्य करते आणि ब्राउझर त्याच्यासह कसे कार्य करतात हे आपल्याला समजले असेल. पुढे, आपण याबद्दल शिकाल



    आम्ही वाचण्याची शिफारस करतो

    वर