: আছে একজন ক্ষমাহীন নির্বাচক

: আছে একজন ক্ষমাহীন নির্বাচক

:has একজন ক্ষমাহীন নির্বাচক PlatoBlockchain ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.

প্রকাশের পথে একটা ছোট্ট ঘটনা ঘটে গেল সিএসএস :has() নির্বাচক ওল' অ্যালমানাকের কাছে। আমি মূলত বর্ণনা করেছিলাম :has() একজন "ক্ষমাকারী" নির্বাচক হিসাবে, ধারণাটি হচ্ছে যে তার যুক্তিতে যেকোন কিছুর মূল্যায়ন করা হয়, এমনকি যদি এক বা একাধিক আইটেম অবৈধ হয়।

/* Example: Do not use! */
article:has(h2, ul, ::-scoobydoo) { }

দেখ ::scoobydoo সেখানে? এটা সম্পূর্ণ অবৈধ। একটি ক্ষমাশীল নির্বাচক তালিকা সেই বোগাস নির্বাচককে উপেক্ষা করে এবং বাকি আইটেমগুলিকে মূল্যায়ন করতে এগিয়ে যায় যেন এটি এভাবে লেখা হয়েছে:

article:has(h2, ul) { }

:has() সত্যিই একজন ক্ষমাশীল নির্বাচক ছিলেন 7 মে, 2022 তারিখের পূর্ববর্তী খসড়ায়. কিন্তু সেটা বদলে গেল একটি সমস্যা রিপোর্ট করার পরে যে ক্ষমাশীল প্রকৃতি jQuery এর সাথে দ্বন্দ্ব যখন :has() একটি জটিল নির্বাচক রয়েছে (যেমন header h2 + p) W3C একটি রেজোলিউশন অবতরণ করা :has() একজন "ক্ষমাহীন" নির্বাচক মাত্র কয়েক সপ্তাহ আগে।

তাই, আমাদের আগের উদাহরণ? সম্পূর্ণ নির্বাচক তালিকাটি অবৈধ কারণ বোগাস নির্বাচকটি অবৈধ। কিন্তু অন্য দুই ক্ষমাশীল নির্বাচক, :is() এবং :where(), অপরিবর্তিত রাখা হয়।

এর জন্য কিছুটা সমাধান আছে। মনে রেখো, :is() এবং :where()ক্ষমাশীল, এমনকি যদি :has() এটি না. তার মানে আমরা সেই নির্বাচকদের মধ্যে যে কোনো একটিকে নেস্ট করতে পারি :has() আরো ক্ষমাশীল আচরণ পেতে:

article:has(:where(h2, ul, ::-scoobydoo)) { }

কোনটি আপনি ব্যবহার করতে পারেন কারণ এর নির্দিষ্টতা :is() তার তালিকার সবচেয়ে নির্দিষ্ট আইটেম দ্বারা নির্ধারিত হয়। সুতরাং, আপনার যদি কম নির্দিষ্ট কিছুর প্রয়োজন হয় তবে আপনি আরও ভালভাবে পৌঁছাতে পারবেন :where() যেহেতু এটি নির্দিষ্টতা স্কোরে যোগ করে না।

/* Specificity: (0,0,1) */
article:has(:where(h2, ul, ::-scoobydoo)) { } /* Specificity: (0,0,2) */
article:has(:is(h2, ul, ::-scoobydoo)) { }

সর্বশেষ তথ্য প্রতিফলিত করতে আমরা আমাদের কয়েকটি পোস্ট আপডেট করেছি। আমি বন্যের মধ্যে প্রচুর অন্যদের দেখছি যেগুলিকে আপডেট করা দরকার, তাই যাদের একই কাজ করতে হবে তাদের জন্য সামান্য পিএসএ।

সময় স্ট্যাম্প:

থেকে আরো সিএসএস কৌশল