সিএসএস ক্লাসকে অবজেক্ট ওরিয়েন্টেড ক্লাস হিসাবে ভাবেন না, এটিকে এইচটিএমএল উপাদানটি কোন বৈশিষ্ট্য শ্রেণীর দ্বারা স্টাইল করা হয়েছে তা নির্দিষ্ট করার জন্য অন্যান্য নির্বাচকদের মধ্যে কেবল একটি হাতিয়ার হিসাবে ভাবেন । ধনুর্বন্ধকের মধ্যবর্তী সবকিছুকে অ্যাট্রিবিউট শ্রেণি হিসাবে ভাবুন এবং বাম দিকে নির্বাচকরা বৈশিষ্ট্য শ্রেণি থেকে বৈশিষ্ট্যগুলি উত্তরাধিকারী করতে যে উপাদানগুলি নির্বাচন করেছেন তা বলুন । উদাহরণ:
.foo, .bar { font-weight : bold; font-size : 2em; /* attribute class A */}
.foo { color : green; /* attribute class B */}
যখন কোনও উপাদানকে অ্যাট্রিবিউট দেওয়া হয় class="foo"
, তখন এটিকে শ্রেণীর কাছ থেকে উত্তরাধিকারসূচক গুণাবলী হিসাবে নয় .foo
, তবে গুণাবলী A এবং গুণাবলী বি দ্বারা গুণ করা যায় । অর্থাৎ, উত্তরাধিকারের গ্রাফটি এক স্তরের গভীর, বৈশিষ্ট্য শ্রেণি থেকে প্রাপ্ত উপাদানগুলির সাথে এবং নির্বাচকরা প্রান্তগুলি কোথায় যায় তা নির্দিষ্ট করে এবং প্রতিযোগী বৈশিষ্ট্যগুলি (পদ্ধতি সমাধানের ক্রমের অনুরূপ) যখন প্রাধান্য নির্ধারণ করে তা নির্ধারণ করে।
প্রোগ্রামিংয়ের ব্যবহারিক নিহিততা এটি। আপনি উপরের দেওয়া শৈলী পত্রক আছে বলুন, এবং একটি নতুন শ্রেণী যোগ করতে চান .baz
, যেখানে এটি একই থাকতে হবে font-size
যেমন .foo
। নিষ্পাপ সমাধানটি হ'ল:
.foo, .bar { font-weight : bold; font-size : 2em; /* attribute class A */}
.foo { color : green; /* attribute class B */}
.baz { font-size : 2em; /* attribute class C, hidden dependency! */}
যে কোনও সময় আমাকে দু'বার টাইপ করতে হবে আমি এত পাগল হয়ে যাই! আমাকে কেবল এটি দুবারই লিখতে হবে না, এখন আমার কাছে প্রগতিগতভাবে এটি নির্দেশ করার কোনও উপায় নেই .foo
এবং .baz
এটি একই হওয়া উচিত font-size
এবং আমি একটি গোপন নির্ভরতা তৈরি করেছি ! আমার উপরের দৃষ্টান্তটি সুপারিশ করবে যে আমার এট্রিবিউট ক্লাস এfont-size
থেকে গুণটি বিমূর্ত করা উচিত :
.foo, .bar, .baz { font-size : 2em; /* attribute base class for A */}
.foo, .bar { font-weight : bold; /* attribute class A */}
.foo { color : green; /* attribute class B */}
এখানে মূল অভিযোগটি হ'ল এখন আমাকে এট্রিবিউট ক্লাস এ থেকে প্রত্যেক নির্বাচককে পুনরায় টাইপ করতে হবে যাতে তারা যে উপাদানগুলি নির্বাচন করতে হবে সেগুলিও বৈশিষ্ট্য বেস শ্রেণির গুণাবলী উত্তরাধিকারী হওয়া উচিত । তবুও, বিকল্পগুলি হ'ল প্রতিটি অ্যাট্রিবিউট শ্রেণি সম্পাদনা করতে হবে যেখানে প্রতিবার কিছু পরিবর্তন হয় লুকানো নির্ভরতা থাকে বা তৃতীয় পক্ষের সরঞ্জাম ব্যবহার করতে হয়। প্রথম বিকল্পটি godশ্বরকে হাসায়, দ্বিতীয়টি আমাকে নিজেকে হত্যা করতে চায়।