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


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.