ಕನ್ನಡ

CSS :has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ, ಇದು ಪೇರೆಂಟ್ ಸೆಲೆಕ್ಷನ್‌ಗೆ ಒಂದು ಗೇಮ್-ಚೇಂಜರ್. ನಿಮ್ಮ CSS ಸ್ಟೈಲಿಂಗ್ ಅನ್ನು ಕ್ರಾಂತಿಗೊಳಿಸಲು ಪ್ರಾಯೋಗಿಕ ಅನ್ವಯಗಳು, ಕ್ರಾಸ್-ಬ್ರೌಸರ್ ಹೊಂದಾಣಿಕೆ, ಮತ್ತು ಸುಧಾರಿತ ತಂತ್ರಗಳನ್ನು ಕಲಿಯಿರಿ.

CSS :has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು: ಪೇರೆಂಟ್ ಸೆಲೆಕ್ಷನ್ ಶಕ್ತಿಯನ್ನು ಅನಾವರಣಗೊಳಿಸುವುದು

ವರ್ಷಗಳಿಂದ, CSS ಡೆವಲಪರ್‌ಗಳು ತಮ್ಮ ಮಕ್ಕಳ (children) ಆಧಾರದ ಮೇಲೆ ಪೇರೆಂಟ್ ಎಲಿಮೆಂಟ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸರಳ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಮಾರ್ಗಕ್ಕಾಗಿ ಹಂಬಲಿಸುತ್ತಿದ್ದರು. ಈಗ ಆ ಕಾಯುವಿಕೆ ಮುಗಿದಿದೆ! :has() ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್ ಅಂತಿಮವಾಗಿ ಇಲ್ಲಿದೆ, ಮತ್ತು ಇದು ನಾವು CSS ಬರೆಯುವ ವಿಧಾನವನ್ನು ಕ್ರಾಂತಿಗೊಳಿಸುತ್ತಿದೆ. ಈ ಶಕ್ತಿಯುತ ಸೆಲೆಕ್ಟರ್, ಒಂದು ನಿರ್ದಿಷ್ಟ ಚೈಲ್ಡ್ ಎಲಿಮೆಂಟ್ ಹೊಂದಿದ್ದರೆ ಅದರ ಪೇರೆಂಟ್ ಎಲಿಮೆಂಟ್ ಅನ್ನು ಟಾರ್ಗೆಟ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಡೈನಾಮಿಕ್ ಮತ್ತು ರೆಸ್ಪಾನ್ಸಿವ್ ಸ್ಟೈಲಿಂಗ್‌ಗಾಗಿ ಸಾಧ್ಯತೆಗಳ ಜಗತ್ತನ್ನು ತೆರೆಯುತ್ತದೆ.

:has() ಸೆಲೆಕ್ಟರ್ ಎಂದರೇನು?

:has() ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್ ಒಂದು CSS ರಿಲೇಶನಲ್ ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್ ಆಗಿದ್ದು, ಇದು ಆರ್ಗ್ಯುಮೆಂಟ್ ಆಗಿ ಸೆಲೆಕ್ಟರ್ ಲಿಸ್ಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಸೆಲೆಕ್ಟರ್ ಲಿಸ್ಟ್‌ನಲ್ಲಿರುವ ಯಾವುದೇ ಸೆಲೆಕ್ಟರ್, ಎಲಿಮೆಂಟ್‌ನ ವಂಶಸ್ಥರ (descendants) ಪೈಕಿ ಕನಿಷ್ಠ ಒಂದು ಎಲಿಮೆಂಟ್‌ಗೆ ಹೊಂದಾಣಿಕೆಯಾದರೆ, ಅದು ಆ ಎಲಿಮೆಂಟ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಸರಳವಾಗಿ ಹೇಳುವುದಾದರೆ, ಪೇರೆಂಟ್ ಎಲಿಮೆಂಟ್ ಒಂದು ನಿರ್ದಿಷ್ಟ ಚೈಲ್ಡ್ ಅನ್ನು ಹೊಂದಿದೆಯೇ ಎಂದು ಇದು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಮತ್ತು ಹೊಂದಿದ್ದರೆ, ಪೇರೆಂಟ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ.

ಮೂಲ ಸಿಂಟ್ಯಾಕ್ಸ್ ಹೀಗಿದೆ:

parent:has(child) { /* CSS ನಿಯಮಗಳು */ }

ಇದು ಕನಿಷ್ಠ ಒಂದು child ಎಲಿಮೆಂಟ್ ಅನ್ನು ಹೊಂದಿದ್ದರೆ ಮಾತ್ರ parent ಎಲಿಮೆಂಟ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ.

:has() ಏಕೆ ಅಷ್ಟು ಮುಖ್ಯ?

ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ, CSS ತನ್ನ ಮಕ್ಕಳ ಆಧಾರದ ಮೇಲೆ ಪೇರೆಂಟ್ ಎಲಿಮೆಂಟ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯದಲ್ಲಿ ಸೀಮಿತವಾಗಿತ್ತು. ಈ ಮಿತಿಯು ಡೈನಾಮಿಕ್ ಸ್ಟೈಲಿಂಗ್ ಸಾಧಿಸಲು ಸಂಕೀರ್ಣವಾದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪರಿಹಾರಗಳು ಅಥವಾ ಪರ್ಯಾಯ ಮಾರ್ಗಗಳನ್ನು ಬಳಸುವಂತೆ ಮಾಡುತ್ತಿತ್ತು. :has() ಸೆಲೆಕ್ಟರ್ ಈ ತೊಡಕಿನ ವಿಧಾನಗಳ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಸ್ವಚ್ಛ, ನಿರ್ವಹಿಸಬಲ್ಲ ಮತ್ತು ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯ CSS ಕೋಡ್ ಬರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

:has() ಏಕೆ ಗೇಮ್-ಚೇಂಜರ್ ಎಂಬುದಕ್ಕೆ ಕೆಲವು ಕಾರಣಗಳು ಇಲ್ಲಿವೆ:

:has() ಸೆಲೆಕ್ಟರ್‌ನ ಮೂಲ ಉದಾಹರಣೆಗಳು

:has() ಸೆಲೆಕ್ಟರ್‌ನ ಶಕ್ತಿಯನ್ನು ವಿವರಿಸಲು ಕೆಲವು ಸರಳ ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ.

ಉದಾಹರಣೆ 1: ಚಿತ್ರದ ಉಪಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಪೇರೆಂಟ್ Div ಅನ್ನು ಸ್ಟೈಲ್ ಮಾಡುವುದು

ಒಂದು <div> ಎಲಿಮೆಂಟ್ <img> ಎಲಿಮೆಂಟ್ ಹೊಂದಿದ್ದರೆ ಮಾತ್ರ ಅದಕ್ಕೆ ಬಾರ್ಡರ್ ಸೇರಿಸಲು ನೀವು ಬಯಸುತ್ತೀರಿ ಎಂದು ಭಾವಿಸೋಣ:

div:has(img) { border: 2px solid blue; }

ಈ CSS ನಿಯಮವು ಕನಿಷ್ಠ ಒಂದು <img> ಎಲಿಮೆಂಟ್ ಹೊಂದಿರುವ ಯಾವುದೇ <div> ಗೆ ನೀಲಿ ಬಾರ್ಡರ್ ಅನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ 2: Span ಇರುವಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ಲಿಸ್ಟ್ ಐಟಂ ಅನ್ನು ಸ್ಟೈಲ್ ಮಾಡುವುದು

ನಿಮ್ಮ ಬಳಿ ಐಟಂಗಳ ಪಟ್ಟಿ ಇದೆ ಮತ್ತು ಅದರಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಕ್ಲಾಸ್ ಹೊಂದಿರುವ <span> ಎಲಿಮೆಂಟ್ ಇದ್ದರೆ ಆ ಲಿಸ್ಟ್ ಐಟಂ ಅನ್ನು ಹೈಲೈಟ್ ಮಾಡಲು ನೀವು ಬಯಸುತ್ತೀರಿ ಎಂದುಕೊಳ್ಳಿ:

li:has(span.highlight) { background-color: yellow; }

ಈ CSS ನಿಯಮವು "highlight" ಕ್ಲಾಸ್ ಹೊಂದಿರುವ <span> ಹೊಂದಿರುವ ಯಾವುದೇ <li> ಯ ಹಿನ್ನೆಲೆ ಬಣ್ಣವನ್ನು ಹಳದಿ ಬಣ್ಣಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ 3: ಇನ್‌ಪುಟ್ ಸಿಂಧುತ್ವದ ಆಧಾರದ ಮೇಲೆ ಫಾರ್ಮ್ ಲೇಬಲ್ ಅನ್ನು ಸ್ಟೈಲ್ ಮಾಡುವುದು

ನೀವು :has() ಅನ್ನು ಬಳಸಿ ಅದರ ಸಂಬಂಧಿತ ಇನ್‌ಪುಟ್ ಫೀಲ್ಡ್ ಮಾನ್ಯವಾಗಿದೆಯೇ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆಯೇ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಫಾರ್ಮ್ ಲೇಬಲ್ ಅನ್ನು ಸ್ಟೈಲ್ ಮಾಡಬಹುದು (:invalid ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್ ಜೊತೆಗೆ):

label:has(+ input:invalid) { color: red; font-weight: bold; }

ಇನ್‌ಪುಟ್ ಫೀಲ್ಡ್‌ನ ತಕ್ಷಣದ ನಂತರದ ಲೇಬಲ್ ಅಮಾನ್ಯವಾಗಿದ್ದರೆ, ಇದು ಲೇಬಲ್ ಅನ್ನು ಕೆಂಪು ಮತ್ತು ದಪ್ಪ ಮಾಡುತ್ತದೆ.

:has() ಸೆಲೆಕ್ಟರ್‌ನ ಸುಧಾರಿತ ಬಳಕೆಗಳು

:has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಇತರ CSS ಸೆಲೆಕ್ಟರ್‌ಗಳು ಮತ್ತು ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್‌ಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಿದಾಗ ಅದು ಇನ್ನಷ್ಟು ಶಕ್ತಿಯುತವಾಗುತ್ತದೆ. ಕೆಲವು ಸುಧಾರಿತ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು ಇಲ್ಲಿವೆ:

ಉದಾಹರಣೆ 4: ಖಾಲಿ ಎಲಿಮೆಂಟ್‌ಗಳನ್ನು ಟಾರ್ಗೆಟ್ ಮಾಡುವುದು

ನಿರ್ದಿಷ್ಟ ಚೈಲ್ಡ್ *ಇಲ್ಲದ* ಎಲಿಮೆಂಟ್‌ಗಳನ್ನು ಟಾರ್ಗೆಟ್ ಮಾಡಲು ನೀವು :not() ಸ್ಯೂಡೋ-ಕ್ಲಾಸ್ ಅನ್ನು :has() ಜೊತೆಗೆ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಚಿತ್ರಗಳನ್ನು *ಹೊಂದಿರದ* div ಗಳನ್ನು ಸ್ಟೈಲ್ ಮಾಡಲು:

div:not(:has(img)) { background-color: #f0f0f0; }

ಇದು ಯಾವುದೇ <img> ಎಲಿಮೆಂಟ್ ಹೊಂದಿರದ <div> ಗೆ ತಿಳಿ ಬೂದು ಬಣ್ಣದ ಹಿನ್ನೆಲೆಯನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ 5: ಸಂಕೀರ್ಣ ಲೇಔಟ್‌ಗಳನ್ನು ರಚಿಸುವುದು

ಕಂಟೇನರ್‌ನ ವಿಷಯದ ಆಧಾರದ ಮೇಲೆ ಡೈನಾಮಿಕ್ ಲೇಔಟ್‌ಗಳನ್ನು ರಚಿಸಲು :has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಗ್ರಿಡ್ ಸೆಲ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ರೀತಿಯ ಎಲಿಮೆಂಟ್ ಇರುವಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ನೀವು ಗ್ರಿಡ್‌ನ ಲೇಔಟ್ ಅನ್ನು ಬದಲಾಯಿಸಬಹುದು.

.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); } .grid-item:has(img) { grid-column: span 2; }

ಇದು ಗ್ರಿಡ್ ಐಟಂ ಚಿತ್ರವನ್ನು ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ಎರಡು ಕಾಲಮ್‌ಗಳಷ್ಟು ವಿಸ್ತರಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ 6: ಡೈನಾಮಿಕ್ ಫಾರ್ಮ್ ಸ್ಟೈಲಿಂಗ್

ಫಾರ್ಮ್ ಎಲಿಮೆಂಟ್‌ಗಳ ಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ (ಉದಾಹರಣೆಗೆ, ಅವು ಫೋಕಸ್ ಆಗಿವೆಯೇ, ತುಂಬಿವೆಯೇ, ಅಥವಾ ಮಾನ್ಯವಾಗಿವೆಯೇ) ಅವುಗಳನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಸ್ಟೈಲ್ ಮಾಡಲು ನೀವು :has() ಅನ್ನು ಬಳಸಬಹುದು.

.form-group:has(input:focus) { box-shadow: 0 0 5px rgba(0, 0, 255, 0.5); } .form-group:has(input:valid) { border-color: green; } .form-group:has(input:invalid) { border-color: red; }

ಇನ್‌ಪುಟ್ ಫೋಕಸ್ ಮಾಡಿದಾಗ ನೀಲಿ ಬಾಕ್ಸ್ ಶಾಡೋ, ಇನ್‌ಪುಟ್ ಮಾನ್ಯವಾಗಿದ್ದರೆ ಹಸಿರು ಬಾರ್ಡರ್ ಮತ್ತು ಇನ್‌ಪುಟ್ ಅಮಾನ್ಯವಾಗಿದ್ದರೆ ಕೆಂಪು ಬಾರ್ಡರ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ 7: ಮಕ್ಕಳ ಸಂಖ್ಯೆಯ ಆಧಾರದ ಮೇಲೆ ಸ್ಟೈಲಿಂಗ್

:has() ನೇರವಾಗಿ ಮಕ್ಕಳ ಸಂಖ್ಯೆಯನ್ನು ಎಣಿಸದಿದ್ದರೂ, ಇದೇ ರೀತಿಯ ಪರಿಣಾಮಗಳನ್ನು ಸಾಧಿಸಲು ನೀವು ಅದನ್ನು ಇತರ ಸೆಲೆಕ್ಟರ್‌ಗಳು ಮತ್ತು CSS ಪ್ರಾಪರ್ಟಿಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಒಂದೇ ಮಗು ಹೊಂದಿದ್ದರೆ ಪೇರೆಂಟ್ ಅನ್ನು ಸ್ಟೈಲ್ ಮಾಡಲು ನೀವು :only-child ಬಳಸಬಹುದು.

div:has(> p:only-child) { background-color: lightgreen; }

ಇದು ಕೇವಲ ಒಂದು <p> ಎಲಿಮೆಂಟ್ ಅನ್ನು ತನ್ನ ನೇರ ಮಗುವಾಗಿ ಹೊಂದಿರುವ <div> ಗೆ ತಿಳಿ ಹಸಿರು ಹಿನ್ನೆಲೆಯನ್ನು ಸ್ಟೈಲ್ ಮಾಡುತ್ತದೆ.

ಕ್ರಾಸ್-ಬ್ರೌಸರ್ ಹೊಂದಾಣಿಕೆ ಮತ್ತು ಫಾಲ್‌ಬ್ಯಾಕ್‌ಗಳು

2023 ರ ಅಂತ್ಯದ ವೇಳೆಗೆ, :has() ಸೆಲೆಕ್ಟರ್ Chrome, Firefox, Safari, ಮತ್ತು Edge ಸೇರಿದಂತೆ ಆಧುನಿಕ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಅತ್ಯುತ್ತಮ ಬೆಂಬಲವನ್ನು ಹೊಂದಿದೆ. ಆದಾಗ್ಯೂ, ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಅದನ್ನು ಬಳಸುವ ಮೊದಲು Can I use ನಲ್ಲಿ ಹೊಂದಾಣಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸುವುದು ಬಹಳ ಮುಖ್ಯ, ವಿಶೇಷವಾಗಿ ನೀವು ಹಳೆಯ ಬ್ರೌಸರ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸಬೇಕಾದರೆ.

ಹೊಂದಾಣಿಕೆಯ ಪರಿಗಣನೆಗಳ ವಿಭಜನೆ ಇಲ್ಲಿದೆ:

ಫಾಲ್‌ಬ್ಯಾಕ್‌ಗಳನ್ನು ಒದಗಿಸುವುದು

ನೀವು ಹಳೆಯ ಬ್ರೌಸರ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸಬೇಕಾದರೆ, ನೀವು ಫಾಲ್‌ಬ್ಯಾಕ್‌ಗಳನ್ನು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ. ಕೆಲವು ತಂತ್ರಗಳು ಇಲ್ಲಿವೆ:

ಫೀಚರ್ ಕ್ವೆರಿ ಬಳಸುವ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ:

.parent { /* ಎಲ್ಲಾ ಬ್ರೌಸರ್‌ಗಳಿಗೆ ಮೂಲ ಸ್ಟೈಲಿಂಗ್ */ border: 1px solid black; } @supports selector(:has(img)) { .parent:has(img) { /* :has() ಬೆಂಬಲಿಸುವ ಬ್ರೌಸರ್‌ಗಳಿಗೆ ವರ್ಧಿತ ಸ್ಟೈಲಿಂಗ್ */ border: 3px solid blue; } }

ಈ ಕೋಡ್ ಎಲ್ಲಾ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ .parent ಎಲಿಮೆಂಟ್‌ಗೆ ಕಪ್ಪು ಬಾರ್ಡರ್ ಅನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ. :has() ಅನ್ನು ಬೆಂಬಲಿಸುವ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ, .parent ಎಲಿಮೆಂಟ್ ಚಿತ್ರವನ್ನು ಹೊಂದಿದ್ದರೆ ಅದು ನೀಲಿ ಬಾರ್ಡರ್ ಅನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ.

ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಗಣನೆಗಳು

:has() ಗಮನಾರ್ಹ ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆಯಾದರೂ, ವಿಶೇಷವಾಗಿ ವ್ಯಾಪಕವಾಗಿ ಅಥವಾ ಸಂಕೀರ್ಣ ಸೆಲೆಕ್ಟರ್‌ಗಳೊಂದಿಗೆ ಬಳಸಿದಾಗ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಅದರ ಸಂಭಾವ್ಯ ಪರಿಣಾಮವನ್ನು ಪರಿಗಣಿಸುವುದು ಅತ್ಯಗತ್ಯ. ಬ್ರೌಸರ್‌ಗಳು ಪುಟದ ಪ್ರತಿಯೊಂದು ಎಲಿಮೆಂಟ್‌ಗೂ ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಇದು ಗಣನಾತ್ಮಕವಾಗಿ ದುಬಾರಿಯಾಗಬಹುದು.

:has() ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಕೆಲವು ಸಲಹೆಗಳು ಇಲ್ಲಿವೆ:

ತಪ್ಪಿಸಬೇಕಾದ ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು

:has() ಸೆಲೆಕ್ಟರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಅನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳಿಗೆ ಕಾರಣವಾಗುವ ತಪ್ಪುಗಳನ್ನು ಮಾಡುವುದು ಸುಲಭ. ತಪ್ಪಿಸಬೇಕಾದ ಕೆಲವು ಸಾಮಾನ್ಯ ಅಪಾಯಗಳು ಇಲ್ಲಿವೆ:

:has() ಬಳಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು

:has() ಸೆಲೆಕ್ಟರ್‌ನ ಪ್ರಯೋಜನಗಳನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಲು ಮತ್ತು ಸಂಭಾವ್ಯ ಸಮಸ್ಯೆಗಳನ್ನು ತಪ್ಪಿಸಲು, ಈ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸಿ:

ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಬಳಕೆಯ ಪ್ರಕರಣಗಳು

ಸಾಮಾನ್ಯ ವಿನ್ಯಾಸ ಸವಾಲುಗಳನ್ನು ಪರಿಹರಿಸಲು :has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬುದರ ಕೆಲವು ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳನ್ನು ಅನ್ವೇಷಿಸೋಣ.

ಉದಾಹರಣೆ 8: ರೆಸ್ಪಾನ್ಸಿವ್ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುಗಳನ್ನು ರಚಿಸುವುದು

ನಿರ್ದಿಷ್ಟ ಮೆನು ಐಟಂಗಳ ಉಪಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ವಿಭಿನ್ನ ಪರದೆಯ ಗಾತ್ರಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ರೆಸ್ಪಾನ್ಸಿವ್ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುಗಳನ್ನು ರಚಿಸಲು ನೀವು :has() ಅನ್ನು ಬಳಸಬಹುದು.

ಬಳಕೆದಾರರು ಲಾಗ್ ಇನ್ ಆಗಿದ್ದಾರೆಯೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ಅವಲಂಬಿಸಿ ವಿಭಿನ್ನ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುವನ್ನು ಪ್ರದರ್ಶಿಸಲು ನೀವು ಬಯಸುವ ಸನ್ನಿವೇಶವನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಅವರು ಲಾಗ್ ಇನ್ ಆಗಿದ್ದರೆ ನೀವು ಪ್ರೊಫೈಲ್ ಮತ್ತು ಲಾಗ್‌ಔಟ್ ಕ್ರಿಯೆಗಳನ್ನು ತೋರಿಸಬಹುದು, ಇಲ್ಲದಿದ್ದರೆ ನೀವು ಲಾಗಿನ್/ನೋಂದಣಿ ತೋರಿಸಬಹುದು.

nav:has(.user-profile) { /* ಲಾಗ್-ಇನ್ ಆಗಿರುವ ಬಳಕೆದಾರರಿಗೆ ಸ್ಟೈಲ್‌ಗಳು */ } nav:not(:has(.user-profile)) { /* ಲಾಗ್-ಔಟ್ ಆಗಿರುವ ಬಳಕೆದಾರರಿಗೆ ಸ್ಟೈಲ್‌ಗಳು */ }

ಉದಾಹರಣೆ 9: ಕಾರ್ಡ್ ಕಾಂಪೊನೆಂಟ್‌ಗಳನ್ನು ಸ್ಟೈಲ್ ಮಾಡುವುದು

:has() ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಕಾರ್ಡ್ ಕಾಂಪೊನೆಂಟ್‌ಗಳನ್ನು ಅವುಗಳ ವಿಷಯದ ಆಧಾರದ ಮೇಲೆ ಸ್ಟೈಲ್ ಮಾಡಲು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಕಾರ್ಡ್ ಚಿತ್ರವನ್ನು ಹೊಂದಿದ್ದರೆ ಮಾತ್ರ ನೀವು ಅದಕ್ಕೆ ನೆರಳು ಸೇರಿಸಬಹುದು.

.card:has(img) { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }

ಉದಾಹರಣೆ 10: ಡೈನಾಮಿಕ್ ಥೀಮ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು

ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳು ಅಥವಾ ಸಿಸ್ಟಮ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಡೈನಾಮಿಕ್ ಥೀಮ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನೀವು :has() ಅನ್ನು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರರು ಡಾರ್ಕ್ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆಯೇ ಎಂಬುದನ್ನು ಆಧರಿಸಿ ನೀವು ಪುಟದ ಹಿನ್ನೆಲೆ ಬಣ್ಣವನ್ನು ಬದಲಾಯಿಸಬಹುದು.

body:has(.dark-mode) { background-color: #333; color: #fff; }

ಈ ಉದಾಹರಣೆಗಳು :has() ಸೆಲೆಕ್ಟರ್‌ನ ಬಹುಮುಖತೆಯನ್ನು ಮತ್ತು ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ವಿನ್ಯಾಸ ಸವಾಲುಗಳನ್ನು ಪರಿಹರಿಸುವ ಅದರ ಸಾಮರ್ಥ್ಯವನ್ನು ವಿವರಿಸುತ್ತವೆ.

CSS ನ ಭವಿಷ್ಯ: ಮುಂದೆ ಏನು?

:has() ಸೆಲೆಕ್ಟರ್‌ನ ಪರಿಚಯವು CSS ನ ವಿಕಾಸದಲ್ಲಿ ಒಂದು ಮಹತ್ವದ ಹೆಜ್ಜೆಯನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಇದು ಡೆವಲಪರ್‌ಗಳಿಗೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೇಲೆ ಕಡಿಮೆ ಅವಲಂಬನೆಯೊಂದಿಗೆ ಹೆಚ್ಚು ಡೈನಾಮಿಕ್, ರೆಸ್ಪಾನ್ಸಿವ್ ಮತ್ತು ನಿರ್ವಹಿಸಬಲ್ಲ ಸ್ಟೈಲ್‌ಶೀಟ್‌ಗಳನ್ನು ರಚಿಸಲು ಅಧಿಕಾರ ನೀಡುತ್ತದೆ. :has() ಗಾಗಿ ಬ್ರೌಸರ್ ಬೆಂಬಲವು ಬೆಳೆಯುತ್ತಾ ಹೋದಂತೆ, ಈ ಶಕ್ತಿಯುತ ಸೆಲೆಕ್ಟರ್‌ನ ಇನ್ನಷ್ಟು ನವೀನ ಮತ್ತು ಸೃಜನಾತ್ಮಕ ಉಪಯೋಗಗಳನ್ನು ನಾವು ನಿರೀಕ್ಷಿಸಬಹುದು.

ಮುಂದೆ ನೋಡಿದರೆ, CSS ವರ್ಕಿಂಗ್ ಗ್ರೂಪ್ CSS ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಮತ್ತಷ್ಟು ವಿಸ್ತರಿಸುವ ಇತರ ಅತ್ಯಾಕರ್ಷಕ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ವರ್ಧನೆಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತಿದೆ. ಇವುಗಳಲ್ಲಿ ಸೇರಿವೆ:

ಇತ್ತೀಚಿನ CSS ಬೆಳವಣಿಗೆಗಳೊಂದಿಗೆ ನವೀಕೃತವಾಗಿರುವ ಮೂಲಕ ಮತ್ತು :has() ನಂತಹ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ಡೆವಲಪರ್‌ಗಳು CSS ನ ಸಂಪೂರ್ಣ ಸಾಮರ್ಥ್ಯವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ನಿಜವಾಗಿಯೂ ಅಸಾಧಾರಣ ವೆಬ್ ಅನುಭವಗಳನ್ನು ರಚಿಸಬಹುದು.

ತೀರ್ಮಾನ

:has() ಸೆಲೆಕ್ಟರ್ CSS ಟೂಲ್‌ಬಾಕ್ಸ್‌ಗೆ ಒಂದು ಶಕ್ತಿಯುತ ಸೇರ್ಪಡೆಯಾಗಿದೆ, ಇದು ಪೇರೆಂಟ್ ಸೆಲೆಕ್ಷನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಡೈನಾಮಿಕ್ ಮತ್ತು ರೆಸ್ಪಾನ್ಸಿವ್ ಸ್ಟೈಲಿಂಗ್‌ಗೆ ಹೊಸ ಸಾಧ್ಯತೆಗಳನ್ನು ತೆರೆಯುತ್ತದೆ. ಬ್ರೌಸರ್ ಹೊಂದಾಣಿಕೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಣಾಮಗಳನ್ನು ಪರಿಗಣಿಸುವುದು ನಿರ್ಣಾಯಕವಾಗಿದ್ದರೂ, ಸ್ವಚ್ಛ, ಹೆಚ್ಚು ನಿರ್ವಹಿಸಬಲ್ಲ ಮತ್ತು ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯ CSS ಕೋಡ್‌ಗಾಗಿ :has() ಬಳಸುವ ಪ್ರಯೋಜನಗಳು ನಿರಾಕರಿಸಲಾಗದು. ಈ ಗೇಮ್-ಚೇಂಜಿಂಗ್ ಸೆಲೆಕ್ಟರ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಇಂದು ನಿಮ್ಮ CSS ಸ್ಟೈಲಿಂಗ್ ಅನ್ನು ಕ್ರಾಂತಿಗೊಳಿಸಿ!

ಪ್ರವೇಶಸಾಧ್ಯತೆಯನ್ನು ಪರಿಗಣಿಸಲು ಮತ್ತು ಹಳೆಯ ಬ್ರೌಸರ್‌ಗಳಿಗೆ ಫಾಲ್‌ಬ್ಯಾಕ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒದಗಿಸಲು ಮರೆಯದಿರಿ. ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ವಿವರಿಸಿರುವ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ನೀವು :has() ಸೆಲೆಕ್ಟರ್‌ನ ಸಂಪೂರ್ಣ ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ಪ್ರಪಂಚದಾದ್ಯಂತದ ಬಳಕೆದಾರರಿಗೆ ನಿಜವಾಗಿಯೂ ಅಸಾಧಾರಣ ವೆಬ್ ಅನುಭವಗಳನ್ನು ರಚಿಸಬಹುದು.