সিএসএসে * এবং * | * এর মধ্যে পার্থক্য কী?


211

সিএসএসে, *কোনও উপাদান মিলবে will

প্রায়শই, সমস্ত উপাদান মেলে *|*পরিবর্তে ব্যবহৃত হয় *। এটি সাধারণত পরীক্ষার উদ্দেশ্যে ব্যবহৃত হয়।

সিএসএস *এবং এর *|*মধ্যে পার্থক্য কী ?


উত্তর:


215

অনুযায়ী W3C এর নির্বাচক ফটকা খেলা :

সর্বজনীন নির্বাচনকারী একটি alচ্ছিক নেমস্পেস উপাদানটিকে অনুমতি দেয়। এটি নিম্নলিখিত হিসাবে ব্যবহৃত হয়:

ns|*
নেমস্পেস এনএসের সমস্ত উপাদান

*|*
সমস্ত উপাদান

|*
একটি নেমস্পেস ছাড়া সমস্ত উপাদান

*
যদি কোনও ডিফল্ট নেমস্পেস নির্দিষ্ট না করা থাকে তবে এটি * | * এর সমান। অন্যথায় এটি এনএস | * এর সমতুল্য যেখানে এনএস হ'ল ডিফল্ট নেমস্পেস।

সুতরাং, না *এবং *|*সর্বদা এক হয় না। যদি কোনও ডিফল্ট নামের স্থান সরবরাহ করা হয় তবে *কেবলমাত্র সেই উপাদানগুলির জন্য নির্বাচন করা হবে যা সেই নামের জায়গার অংশ।


নীচের দুটি স্নিপেট ব্যবহার করে আপনি পার্থক্যটি দৃশ্যত দেখতে পাচ্ছেন। প্রথমটিতে, একটি ডিফল্ট নেমস্পেস সংজ্ঞায়িত করা হয় এবং তাই *নির্বাচক বেইজ রঙের পটভূমিটি কেবলমাত্র সেই উপাদানটির সাথে প্রয়োগ করেন যা সেই নামসপেসের অংশ যেখানে *|*সমস্ত উপাদানগুলিতে সীমানা প্রয়োগ করে।

@namespace "http://www.w3.org/2000/svg";

* {
  background: beige;
}
*|* {
  border: 1px solid;
}
<a href="#">This is some link</a>

<svg xmlns="http://www.w3.org/2000/svg">
  <a xlink:href="#">
    <text x="20" y="20">This is some link</text>
  </a>
</svg>

নীচের স্নিপেটে কোনও ডিফল্ট নেমস্পেস সংজ্ঞায়িত করা হয় নি এবং তাই উভয়ই *এবং *|*সমস্ত উপাদানগুলির জন্য প্রযোজ্য এবং তাই তারা সবাই বেইজ পটভূমি এবং কালো সীমানা উভয়ই পান। অন্য কথায়, কোনও ডিফল্ট নেমস্পেস নির্দিষ্ট না করা হলে তারা একইভাবে কাজ করে।

* {
  background: beige;
}
*|* {
  border: 1px solid;
}
<a href="#">This is some link</a>

<svg xmlns="http://www.w3.org/2000/svg">
  <a xlink:href="#">
    <text x="20" y="20">This is some link</text>
  </a>
</svg>


যেহেতু বোল্টক্লক মন্তব্যগুলিতে উল্লেখ করেছে ( 1 , 2 ), প্রাথমিকভাবে নেমস্পেসগুলি কেবল এক্সএমএল ভিত্তিক ভাষায় যেমন এক্সএইচটিএমএল, এসভিজি ইত্যাদিতে প্রয়োগ করা হয়েছিল তবে সর্বশেষ চশমা অনুসারে সমস্ত এইচটিএমএল উপাদান (যা এইচটিএমএল নেমস্পেসে থাকা উপাদানগুলি) নামের সাথে গতিযুক্ত http://www.w3.org/1999/xhtml। ফায়ারফক্স এই আচরণটি অনুসরণ করে এবং এটি সমস্ত HTML5 ব্যবহারকারী এজেন্টগুলির সাথে সামঞ্জস্যপূর্ণ। আপনি এই উত্তরে আরও তথ্য পেতে পারেন ।


4
নেমস্পেসগুলি কি কেবল এক্সএইচটিএমএল বা এইচটিএমএল-তেও প্রযোজ্য?
ফ্লিমে

8
@ ফ্লিম: কেবল এক্সএমএল-ভিত্তিক ভাষা যেমন এক্সএইচটিএমএল এবং এসভিজি। তবে লক্ষ্য করুন যে ফায়ারফক্সের মতো কিছু ব্রাউজার (অন্যদের সম্পর্কে নিশ্চিত নয়), সিএসএসের উদ্দেশ্যে XHTML নেমস্পেস এমনকি পাঠ / html তে প্রয়োগ করে। উদাহরণস্বরূপ jsfiddle.net/BoltClock/5ta6yvvc এবং আরও তথ্যের জন্য এই উত্তরটি দেখুন
BoltClock

3
সংযোজন - ফায়ারফক্সের আচরণ বৈশিষ্ট অনুসারে এবং সমস্ত এইচটিএমএল 5 ব্যবহারকারী এজেন্টের সাথে সামঞ্জস্যপূর্ণ। সকল HTML উপাদানগুলি (অর্থাৎ উপাদান এইচটিএমএল নামস্থান ) এর namespaced হয়http://www.w3.org/1999/xhtml
BoltClock

44

*|*"যে কোনও নেমস্পেসের সমস্ত উপাদান" এর নির্বাচককে উপস্থাপন করে। ডাব্লু 3 সি এর মতে , নির্বাচককে বিভক্ত করা হয়েছে:

NS | ই

যেখানে এনএস হ'ল নামস্থান এবং ই উপাদান the ডিফল্টরূপে, কোনও নাম স্থান ঘোষণা করা হয় না। সুতরাং যদি না কোনও নামস্থান স্পষ্টভাবে ঘোষণা না করা হয় *|*এবং *একই উপাদানগুলি নির্বাচন করবে।


-3

সিএসএসে, * কোনও উপাদানের সাথে মিলবে।

| নির্দিষ্ট নির্দিষ্ট উপাদানগুলির সাথে মেলে ব্যবহৃত হয় । উভয়ই আমাদের পরীক্ষার উদ্দেশ্যে ব্যবহৃত নির্বাচক


2
আপনি একটি উদাহরণ প্রদান করতে পারেন?
বেন লেগিগিরো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.