ਬੁਨਿਆਦੀ CSS ਦੇ ਸਿਧਾਂਤਾਂ ਨੂੰ ਸਿੱਖਣ ਵੇਲੇ, ਕਿਸੇ ਨੂੰ ਸਾਂਭ-ਸੰਭਾਲ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮਾਡਿਊਲਰ, ਮੁੜ ਵਰਤੋਂ ਯੋਗ, ਅਤੇ ਵਰਣਨਯੋਗ ਸ਼ੈਲੀਆਂ ਲਿਖਣਾ ਸਿਖਾਇਆ ਜਾਂਦਾ ਹੈ। ਪਰ ਜਦੋਂ ਡਿਵੈਲਪਰ ਅਸਲ-ਸੰਸਾਰ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਇਹ ਅਕਸਰ ਅਣਇੱਛਤ ਖੇਤਰਾਂ ਵਿੱਚ ਲੀਕ ਹੋਣ ਵਾਲੀਆਂ ਸ਼ੈਲੀਆਂ ਤੋਂ ਬਿਨਾਂ UI ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਜੋੜਨਾ ਅਸੰਭਵ ਮਹਿਸੂਸ ਕਰਦਾ ਹੈ। ਇਹ ਮੁੱਦਾ ਅਕਸਰ ਇੱਕ ਸਵੈ-ਪੂਰਤੀ ਲੂਪ ਵਿੱਚ ਬਰਫ਼ਬਾਰੀ ਕਰਦਾ ਹੈ; ਸਟਾਈਲ ਜੋ ਸਿਧਾਂਤਕ ਤੌਰ 'ਤੇ ਇੱਕ ਤੱਤ ਜਾਂ ਕਲਾਸ ਤੱਕ ਦਾਇਰੇ ਵਿੱਚ ਹਨ, ਉੱਥੇ ਦਿਖਾਈ ਦੇਣ ਲੱਗਦੀਆਂ ਹਨ ਜਿੱਥੇ ਉਹ ਸਬੰਧਤ ਨਹੀਂ ਹਨ। ਇਹ ਡਿਵੈਲਪਰ ਨੂੰ ਲੀਕ ਕੀਤੀਆਂ ਸ਼ੈਲੀਆਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ ਹੋਰ ਵੀ ਖਾਸ ਚੋਣਕਾਰ ਬਣਾਉਣ ਲਈ ਮਜ਼ਬੂਰ ਕਰਦਾ ਹੈ, ਜੋ ਫਿਰ ਅਚਾਨਕ ਗਲੋਬਲ ਸਟਾਈਲ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰ ਦਿੰਦੇ ਹਨ, ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਹੀ। ਸਖ਼ਤ ਕਲਾਸ ਨਾਮ ਸੰਮੇਲਨ, ਜਿਵੇਂ ਕਿ BEM, ਇਸ ਮੁੱਦੇ ਦਾ ਇੱਕ ਸਿਧਾਂਤਕ ਹੱਲ ਹੈ। BEM (ਬਲਾਕ, ਐਲੀਮੈਂਟ, ਮੋਡੀਫਾਇਰ) ਵਿਧੀ CSS ਫਾਈਲਾਂ ਦੇ ਅੰਦਰ ਮੁੜ ਵਰਤੋਂਯੋਗਤਾ ਅਤੇ ਬਣਤਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ CSS ਕਲਾਸਾਂ ਨੂੰ ਨਾਮ ਦੇਣ ਦਾ ਇੱਕ ਯੋਜਨਾਬੱਧ ਤਰੀਕਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਨਾਮਕਰਨ ਸੰਮੇਲਨ ਤੱਤਾਂ ਅਤੇ ਉਹਨਾਂ ਦੀ ਸਥਿਤੀ ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਡੋਮੇਨ ਭਾਸ਼ਾ ਦਾ ਲਾਭ ਲੈ ਕੇ ਬੋਧਾਤਮਕ ਲੋਡ ਨੂੰ ਘਟਾ ਸਕਦੇ ਹਨ, ਅਤੇ ਜੇਕਰ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਵੱਡੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਸਟਾਈਲ ਬਣਾਈ ਰੱਖਣਾ ਆਸਾਨ ਹੋ ਸਕਦਾ ਹੈ। ਅਸਲ ਸੰਸਾਰ ਵਿੱਚ, ਹਾਲਾਂਕਿ, ਇਹ ਹਮੇਸ਼ਾ ਇਸ ਤਰ੍ਹਾਂ ਕੰਮ ਨਹੀਂ ਕਰਦਾ. ਤਰਜੀਹਾਂ ਬਦਲ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਤਬਦੀਲੀ ਨਾਲ, ਲਾਗੂ ਕਰਨਾ ਅਸੰਗਤ ਹੋ ਜਾਂਦਾ ਹੈ। HTML ਢਾਂਚੇ ਵਿੱਚ ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ ਲਈ ਬਹੁਤ ਸਾਰੇ CSS ਕਲਾਸ ਨਾਮ ਸੰਸ਼ੋਧਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਬਹੁਤ ਜ਼ਿਆਦਾ ਇੰਟਰਐਕਟਿਵ ਫਰੰਟ-ਐਂਡ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਨਾਲ, ਬੀਈਐਮ ਪੈਟਰਨ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋਏ ਕਲਾਸ ਦੇ ਨਾਮ ਲੰਬੇ ਅਤੇ ਬੇਲੋੜੇ ਹੋ ਸਕਦੇ ਹਨ (ਉਦਾਹਰਨ ਲਈ, ਐਪ-ਯੂਜ਼ਰ-ਓਵਰਵਿਊ__ਸਟੇਟਸ--ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ), ਅਤੇ ਨਾਮਕਰਨ ਨਿਯਮਾਂ ਦੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪਾਲਣਾ ਨਾ ਕਰਨਾ ਸਿਸਟਮ ਦੀ ਬਣਤਰ ਨੂੰ ਤੋੜਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਸਦੇ ਲਾਭਾਂ ਨੂੰ ਨਕਾਰਿਆ ਜਾਂਦਾ ਹੈ। ਇਹਨਾਂ ਚੁਣੌਤੀਆਂ ਦੇ ਮੱਦੇਨਜ਼ਰ, ਇਹ ਕੋਈ ਹੈਰਾਨੀ ਦੀ ਗੱਲ ਨਹੀਂ ਹੈ ਕਿ ਡਿਵੈਲਪਰ ਫਰੇਮਵਰਕ ਵੱਲ ਮੁੜ ਗਏ ਹਨ, ਟੇਲਵਿੰਡ ਸਭ ਤੋਂ ਪ੍ਰਸਿੱਧ CSS ਫਰੇਮਵਰਕ ਹੈ। ਸਟਾਈਲ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਅਜਿੱਤ ਵਿਸ਼ੇਸ਼ਤਾ ਯੁੱਧ ਦੀ ਤਰ੍ਹਾਂ ਲੜਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਬਜਾਏ, CSS ਕੈਸਕੇਡ ਨੂੰ ਛੱਡਣਾ ਅਤੇ ਉਹਨਾਂ ਸਾਧਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਆਸਾਨ ਹੈ ਜੋ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਲੱਗ-ਥਲੱਗ ਹੋਣ ਦੀ ਗਾਰੰਟੀ ਦਿੰਦੇ ਹਨ। ਡਿਵੈਲਪਰ ਉਪਯੋਗਤਾਵਾਂ 'ਤੇ ਵਧੇਰੇ ਝੁਕਦੇ ਹਨ ਅਸੀਂ ਕਿਵੇਂ ਜਾਣਦੇ ਹਾਂ ਕਿ ਕੁਝ ਡਿਵੈਲਪਰ ਕੈਸਕੇਡਡ ਸਟਾਈਲ ਤੋਂ ਬਚਣ ਦੇ ਚਾਹਵਾਨ ਹਨ? ਇਹ "ਆਧੁਨਿਕ" ਫਰੰਟ-ਐਂਡ ਟੂਲਿੰਗ ਦਾ ਉਭਾਰ ਹੈ - ਜਿਵੇਂ ਕਿ CSS-in-JS ਫਰੇਮਵਰਕ - ਖਾਸ ਤੌਰ 'ਤੇ ਉਸ ਉਦੇਸ਼ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਅਲੱਗ-ਥਲੱਗ ਸਟਾਈਲ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨਾ ਜੋ ਖਾਸ ਹਿੱਸਿਆਂ ਲਈ ਕੱਸ ਕੇ ਘੇਰੇ ਹੋਏ ਹਨ, ਤਾਜ਼ੀ ਹਵਾ ਦੇ ਸਾਹ ਵਾਂਗ ਜਾਪਦਾ ਹੈ। ਇਹ ਚੀਜ਼ਾਂ ਨੂੰ ਨਾਮ ਦੇਣ ਦੀ ਜ਼ਰੂਰਤ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ - ਅਜੇ ਵੀ ਸਭ ਤੋਂ ਵੱਧ ਘਿਣਾਉਣੇ ਅਤੇ ਸਮਾਂ ਬਰਬਾਦ ਕਰਨ ਵਾਲੇ ਫਰੰਟ-ਐਂਡ ਕਾਰਜਾਂ ਵਿੱਚੋਂ ਇੱਕ - ਅਤੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ CSS ਵਿਰਾਸਤ ਦੇ ਲਾਭਾਂ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਝੇ ਜਾਂ ਲਾਭ ਉਠਾਏ ਬਿਨਾਂ ਲਾਭਕਾਰੀ ਬਣਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਪਰ CSS ਕੈਸਕੇਡ ਨੂੰ ਖੋਦਣ ਨਾਲ ਆਪਣੀਆਂ ਸਮੱਸਿਆਵਾਂ ਆਉਂਦੀਆਂ ਹਨ. ਉਦਾਹਰਨ ਲਈ, JavaScript ਵਿੱਚ ਕੰਪੋਜ਼ ਕਰਨ ਵਾਲੀਆਂ ਸ਼ੈਲੀਆਂ ਲਈ ਭਾਰੀ ਬਿਲਡ ਕੌਂਫਿਗਰੇਸ਼ਨਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਅਤੇ ਅਕਸਰ ਸ਼ੈਲੀਆਂ ਨੂੰ ਕੰਪੋਨੈਂਟ ਮਾਰਕਅੱਪ ਜਾਂ HTML ਨਾਲ ਅਜੀਬ ਢੰਗ ਨਾਲ ਮਿਲਾਉਂਦੀਆਂ ਹਨ। ਨਾਮਕਰਨ ਪ੍ਰੰਪਰਾਵਾਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਵਿਚਾਰਨ ਦੀ ਬਜਾਏ, ਅਸੀਂ ਆਪਣੇ ਲਈ ਚੋਣਕਾਰਾਂ ਅਤੇ ਪਛਾਣਕਰਤਾਵਾਂ (ਜਿਵੇਂ ਕਿ, .jsx-3130221066) ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਨ ਲਈ ਬਿਲਡ ਟੂਲਸ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਾਂ, ਜਿਸ ਲਈ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇੱਕ ਹੋਰ ਸੂਡੋ-ਭਾਸ਼ਾ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। (ਜਿਵੇਂ ਕਿ ਇਹ ਸਮਝਣ ਦਾ ਬੋਧਿਕ ਬੋਝ ਕਿ ਤੁਹਾਡੇ ਸਾਰੇ ਭਾਗਾਂ ਦੇ ਪ੍ਰਭਾਵ ਕੀ ਕਰਦੇ ਹਨ ਪਹਿਲਾਂ ਹੀ ਕਾਫ਼ੀ ਨਹੀਂ ਸਨ!) ਟੂਲਿੰਗ ਲਈ ਕਲਾਸਾਂ ਦੇ ਨਾਮਕਰਨ ਦੇ ਕੰਮ ਨੂੰ ਹੋਰ ਸੰਖੇਪ ਕਰਨ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਬੁਨਿਆਦੀ ਡੀਬਗਿੰਗ ਅਕਸਰ ਵਿਕਾਸ ਲਈ ਕੰਪਾਇਲ ਕੀਤੇ ਵਿਸ਼ੇਸ਼ ਐਪਲੀਕੇਸ਼ਨ ਸੰਸਕਰਣਾਂ ਤੱਕ ਸੀਮਤ ਹੁੰਦੀ ਹੈ, ਨਾ ਕਿ ਲਾਈਵ ਡੀਬੱਗਿੰਗ ਨੂੰ ਸਮਰਥਨ ਦੇਣ ਵਾਲੀਆਂ ਮੂਲ ਬ੍ਰਾਊਜ਼ਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ਜਿਵੇਂ ਕਿ ਡਿਵੈਲਪਰ ਟੂਲਸ। ਇਹ ਲਗਭਗ ਇਸ ਤਰ੍ਹਾਂ ਹੈ ਕਿ ਸਾਨੂੰ ਉਹਨਾਂ ਟੂਲਾਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ ਟੂਲ ਵਿਕਸਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਅਸੀਂ ਵੈੱਬ ਪਹਿਲਾਂ ਹੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ - ਸਭ ਕੁਝ ਮਿਆਰੀ CSS ਲਿਖਣ ਦੇ "ਦਰਦ" ਤੋਂ ਦੂਰ ਭੱਜਣ ਲਈ ਵਰਤ ਰਹੇ ਹਾਂ। ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, ਆਧੁਨਿਕ CSS ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾ ਸਿਰਫ਼ ਮਿਆਰੀ CSS ਨੂੰ ਵਧੇਰੇ ਲਚਕਦਾਰ ਬਣਾਉਂਦੀਆਂ ਹਨ ਬਲਕਿ ਸਾਡੇ ਵਰਗੇ ਵਿਕਾਸਕਾਰਾਂ ਨੂੰ ਕੈਸਕੇਡ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਅਤੇ ਇਸਨੂੰ ਸਾਡੇ ਲਈ ਕੰਮ ਕਰਨ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸ਼ਕਤੀ ਦਿੰਦੀਆਂ ਹਨ। CSS ਕੈਸਕੇਡ ਲੇਅਰਸ ਇੱਕ ਵਧੀਆ ਉਦਾਹਰਨ ਹੈ, ਪਰ ਇੱਕ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ ਜੋ ਧਿਆਨ ਦੀ ਹੈਰਾਨੀਜਨਕ ਘਾਟ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ - ਹਾਲਾਂਕਿ ਇਹ ਹੁਣ ਬਦਲ ਰਿਹਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਹਾਲ ਹੀ ਵਿੱਚ ਬੇਸਲਾਈਨ ਅਨੁਕੂਲ ਬਣ ਗਿਆ ਹੈ. CSS @ਸਕੋਪ ਐਟ-ਰੂਲ ਮੈਂ CSS @scope at-rule ਨੂੰ ਸਾਡੇ ਦੁਆਰਾ ਕਵਰ ਕੀਤੀ ਗਈ ਸ਼ੈਲੀ-ਲੀਕ-ਪ੍ਰੇਰਿਤ ਚਿੰਤਾ ਦਾ ਇੱਕ ਸੰਭਾਵੀ ਇਲਾਜ ਮੰਨਦਾ ਹਾਂ, ਜੋ ਸਾਨੂੰ ਐਬਸਟਰੈਕਸ਼ਨਾਂ ਅਤੇ ਵਾਧੂ ਬਿਲਡ ਟੂਲਿੰਗ ਲਈ ਮੂਲ ਵੈੱਬ ਲਾਭਾਂ ਨਾਲ ਸਮਝੌਤਾ ਕਰਨ ਲਈ ਮਜਬੂਰ ਨਹੀਂ ਕਰਦਾ ਹੈ। “@ਸਕੋਪ CSS ਐਟ-ਰੂਲ ਤੁਹਾਨੂੰ ਖਾਸ DOM ਸਬ-ਟ੍ਰੀਜ਼ ਵਿੱਚ ਐਲੀਮੈਂਟਸ ਦੀ ਚੋਣ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਬਹੁਤ ਜ਼ਿਆਦਾ ਖਾਸ ਚੋਣਕਾਰਾਂ ਨੂੰ ਲਿਖੇ ਬਿਨਾਂ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨਾ ਔਖਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਤੁਹਾਡੇ ਚੋਣਕਾਰਾਂ ਨੂੰ DOM ਢਾਂਚੇ ਨਾਲ ਬਹੁਤ ਮਜ਼ਬੂਤੀ ਨਾਲ ਜੋੜੇ ਬਿਨਾਂ, ਤੱਤ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ।”— MDN

ਦੂਜੇ ਸ਼ਬਦਾਂ ਵਿੱਚ, ਅਸੀਂ ਵਿਰਾਸਤ, ਕੈਸਕੇਡਿੰਗ, ਜਾਂ ਇੱਥੋਂ ਤੱਕ ਕਿ ਸਰੋਕਾਰਾਂ ਦੇ ਮੂਲ ਵਿਛੋੜੇ ਦੀ ਕੁਰਬਾਨੀ ਦਿੱਤੇ ਬਿਨਾਂ ਖਾਸ ਸਥਿਤੀਆਂ ਵਿੱਚ ਅਲੱਗ-ਥਲੱਗ ਸ਼ੈਲੀਆਂ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦੇ ਹਾਂ।ਜੋ ਕਿ ਫਰੰਟ-ਐਂਡ ਵਿਕਾਸ ਦਾ ਲੰਬੇ ਸਮੇਂ ਤੋਂ ਚੱਲ ਰਿਹਾ ਮਾਰਗਦਰਸ਼ਕ ਸਿਧਾਂਤ ਰਿਹਾ ਹੈ। ਨਾਲ ਹੀ, ਇਸ ਵਿੱਚ ਸ਼ਾਨਦਾਰ ਬ੍ਰਾਊਜ਼ਰ ਕਵਰੇਜ ਹੈ। ਅਸਲ ਵਿੱਚ, ਫਾਇਰਫਾਕਸ 146 ਨੇ ਦਸੰਬਰ ਵਿੱਚ @ਸਕੋਪ ਲਈ ਸਮਰਥਨ ਜੋੜਿਆ, ਇਸ ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਬੇਸਲਾਈਨ ਅਨੁਕੂਲ ਬਣਾਇਆ। @ਸਕੋਪ ਨਿਯਮ ਬਨਾਮ BEM ਪੈਟਰਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਬਟਨ ਦੇ ਵਿਚਕਾਰ ਇੱਥੇ ਇੱਕ ਸਧਾਰਨ ਤੁਲਨਾ ਹੈ:

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free