আমি কোনও উপাদানটির সমস্ত বাচ্চার জন্য কীভাবে একটি স্টাইল প্রয়োগ করব


102

আমার সাথে একটি উপাদান রয়েছে class='myTestClass'। এই উপাদানগুলির সমস্ত বাচ্চাদের জন্য আমি কীভাবে CSS স্টাইল প্রয়োগ করব? আমি কেবল উপাদান বাচ্চাদের স্টাইলটি প্রয়োগ করতে চাই। এর গ্র্যান্ড বাচ্চারা নয়।

আমি ব্যবহার করতে পারে

.myTestClass > div {
  margin: 0 20px;
}

যা সমস্ত divবাচ্চার পক্ষে কাজ করে তবে আমি এমন একটি সমাধান চাই যা সমস্ত শিশুদের জন্য কাজ করে। আমি ভেবেছিলাম আমি ব্যবহার করতে পারি *, কিন্তু

.myTestClass > * {
  margin: 0 20px;
} 

কাজ করে না.

সম্পাদনা করুন

.myTestClass > *নির্বাচক ফায়ারফক্স 26 এর মধ্যে নিয়ম প্রযোজ্য নয়, এবং Firebug অনুযায়ী মার্জিন জন্য অন্য কোন নিয়ম নেই। এবং এটা যদি আমি প্রতিস্থাপন কাজ করে *দিয়ে div।


4
কীভাবে এটি 'কাজ করে না'? মনে রাখবেন যে এই শিশু উপাদানগুলির বংশধররা (সম্ভবত) সেই শিশু উপাদানগুলির জন্য নির্ধারিত বেশিরভাগ শৈলীর উত্তরাধিকারী হবে।
— ডেভিড বলছেন মনিকাকে

এটিকে পরিদর্শকের সাথে ডিবাগ করুন এবং দেখুন যে কোনও নিয়ম এটি গ্রহণ করছে কিনা
— ব্রেওয়াল

উত্তর:


147

ডেভিড থমাসের মন্তব্য অনুসারে , এই শিশু উপাদানগুলির বংশধররা (সম্ভবত) সেই শিশু উপাদানগুলির জন্য নির্ধারিত বেশিরভাগ শৈলীর উত্তরাধিকারী হবেন।

আপনাকে .myTestClassকোনও উপাদানটির অভ্যন্তরে আবৃত করতে হবে এবং .wrapper * বংশধর নির্বাচক যুক্ত করে বংশধরদের কাছে শৈলীগুলি প্রয়োগ করতে হবে । তারপরে, উপাদান বাচ্চাদের নয়, শিশুদের উপাদানগুলিতে স্টাইলটি প্রয়োগ করতে .myTestClass > * শিশু নির্বাচনকারীকে যুক্ত করুন । উদাহরণস্বরূপ:

জেএসফিডাল - ডেমো

.wrapper * {
    color: blue;
    margin: 0 100px; /* Only for demo */
}
.myTestClass > * {
    color:red;
    margin: 0 20px;
}
<div class="wrapper">
    <div class="myTestClass">Text 0
        <div>Text 1</div>
        <span>Text 1</span>
        <div>Text 1
            <p>Text 2</p>
            <div>Text 2</div>
        </div>
        <p>Text 1</p>
    </div>
    <div>Text 0</div>
</div>


4
সর্বজনীন নির্বাচক কখনও ব্যবহার করবেন না। এটি রেন্ডারিংয়ে একটি বৃহত পারফরম্যান্স প্রভাব ফেলে।
— হ্যা ইকান

4
@ আইজাইন: ঠিক আছে তা জেনে রাখা ভাল .... আপনার কাছে এমন কোনও বিকল্প সমাধান আছে যা সর্বজনীন নির্বাচককে ব্যবহার করে না?
— ম্যাথু নিকোলস

8
সর্বজনীন নির্বাচকের অভিনয় আধুনিক ব্রাউজারগুলিতে তেমন খারাপ নয়। এখানে একটি উল্লেখ আছে । কর্মক্ষেত্রে আমার নিজের অভিজ্ঞতা এই লেখকের উপসংহারকে সমর্থন করে।
— নাথান

-2

*নির্বাচকের পরিবর্তে আপনি নির্বাচকটির :not(selector)সাথে এটি ব্যবহার করতে পারেন >এবং এমন কিছু সেট করতে পারেন যা অবশ্যই সন্তানের মতো হবে না।

সম্পাদনা: আমি ভেবেছিলাম এটি দ্রুত হবে তবে এটি আমার ভুল ছিল I অবজ্ঞা করুন।

উদাহরণ:

.container > :not(marquee){
        color:red;
    }


<div class="container">
    <p></p>
    <span></span>
<div>

4
এটি করার সুবিধা কী?
— উইলসন বিগস 18

4
@ উইলসনবিগস - এটি "সর্বজনীন নির্বাচককে ব্যবহার না করার" একটি বিভ্রান্ত প্রচেষ্টা বলে মনে হচ্ছে। তবে এটি অবশ্যই একটি খারাপ ধারণা, যেমন এটি "সর্বজনীন" কাছাকাছি, তবুও একটি অতিরিক্ত পরীক্ষার প্রয়োজন - সুতরাং এটি সর্বজনীন নির্বাচক হিসাবে সমস্ত কাজ করতে হবে এবং তারপরে অতিরিক্ত কাজ করতে হবে।
— টুলমেকারস্টেভ

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