নয়: প্রথম সন্তানের নির্বাচক


810

আমার divবেশ কয়েকটি ulট্যাগ সমন্বিত একটি ট্যাগ রয়েছে ।

আমি ulকেবল প্রথম ট্যাগের জন্য সিএসএসের বৈশিষ্ট্যগুলি সেট করতে সক্ষম হয়েছি :

div ul:first-child {
    background-color: #900;
}

যাইহোক, ulপ্রথমটি কাজ না করে বাদে একে অপরের ট্যাগের জন্য CSS বৈশিষ্ট্য নির্ধারণের জন্য আমার নিম্নলিখিত প্রচেষ্টাগুলি :

div ul:not:first-child {
    background-color: #900;
}

div ul:not(:first-child) {
    background-color: #900;
}

div ul:first-child:after {
    background-color: #900;
}

আমি কীভাবে সিএসএসে লিখতে পারি: "প্রতিটি উপাদান প্রথমটি বাদে"?

উত্তর:


1413

সংস্করণ আপনি পোস্ট এক আসলে কাজ করে সব আধুনিক ব্রাউজারে (যেখানে জন্য CSS সিলেক্টর স্তর 3 করছে সমর্থিত ):

div ul:not(:first-child) {
    background-color: #900;
}

যদি আপনার লিগ্যাসি ব্রাউজারগুলি সমর্থন করতে হয় বা আপনি যদি :notনির্বাচকের সীমাবদ্ধতার দ্বারা বাধা পান (এটি কেবল একটি সাধারণ নির্বাচককে তর্ক হিসাবে স্বীকৃতি দেয় ) তবে আপনি অন্য কৌশলটি ব্যবহার করতে পারেন:

কোনও নিয়ম সংজ্ঞায়িত করুন যা আপনি যা চান তার চেয়ে বেশি সুযোগ রয়েছে এবং তারপরে এটি আপনি কী চান তা সীমাবদ্ধ রেখে শর্তাধীন "বাতিল" করুন:

div ul {
    background-color: #900;  /* applies to every ul */
}

div ul:first-child {
    background-color: transparent; /* limits the scope of the previous rule */
}

সুযোগ সীমাবদ্ধ করার সময় আপনি যে সিএসএস অ্যাট্রিবিউটটি সেট করছেন তার জন্য ডিফল্ট মানটি ব্যবহার করুন ।


আপনি কি জানেন ঠিক কোন সংস্করণে এটি সমর্থিত নয়?
— সাইমন_উইভার

9
@ সিমন_উইভার: অনুশীলনে সমস্ত কিছু ছাড়া আই <9 এটি সমর্থন করে। এই জাতীয় তথ্য পেতে একটি দুর্দান্ত সংস্থান হ'ল caniuse.com ।
— জন

2
হুম .. প্রথম সমাধানের বিধিনিষেধের দিকে নজর রাখুন : ক্যানিউজ :: #feat=css-not-sel-list দ্বিতীয়টি আমার পক্ষে আরও যুক্তিসঙ্গত বলে মনে হয়েছিল। ধন্যবাদ!
— ইওরাহ

@ ওরিরাহ আপনার ক্যানিউজ লিঙ্কটি নির্বাচকদের তালিকার জন্য, এবং হ্যাঁ, সমর্থনটি এখনও খুব সীমিত। ওপি নির্বাচকদের একটি তালিকা ব্যবহার করছে না। সুতরাং আমি মনে করি যে আইই 8 এর দিনগুলি ছাড়িয়ে https://caniuse.com/#feat=css-sel3 দুর্দান্ত সমর্থন সহ আরও উপযুক্ত।
— 13:48

এটি ক্রোমের শুরুতে ডিভ উপাদান ছাড়াই কাজ করে।
— আছরাফ জেদাই

157

এই সিএসএস 2 সমাধান ("একের ulপর এক ul" )ও কাজ করে এবং আরও ব্রাউজার দ্বারা সমর্থিত।

div ul + ul {
  background-color: #900;
}

এর বিপরীতে :notএবং :nth-sibling, সংলগ্ন ভাই-বোন নির্বাচনকারী আইআই + + দ্বারা সমর্থিত।

পৃষ্ঠাটি লোড হওয়ার পরে আপনার যদি জাভাস্ক্রিপ্ট এই বৈশিষ্ট্যগুলি পরিবর্তন করে থাকে তবে আপনার এটির আই 7 এবং আই 88 বাস্তবায়নের কয়েকটি জ্ঞাত বাগ দেখতে হবে । এই লিঙ্কটি দেখুন ।

যে কোনও স্থির ওয়েব পৃষ্ঠার জন্য, এটি পুরোপুরি কার্যকর হওয়া উচিত।


4
@ লেভেন: এই মাতাল লিংকটি বলছে এটি আই 7-তে কাজ করা উচিত, তবে কেবল স্থিতিশীলভাবে। যদি আপনার জেএস এর সামনে অন্য উপাদান রাখে তবে এটি সঠিকভাবে আপডেট করা যাবে না। আপনি কি এই ইস্যুটি দেখেছেন?
— অ্যালেক্স কুইন

লক্ষণীয় যে ul ul div ulএই জাতীয় উপাদানগুলির ক্রম অনুসারে: (যেখানে এই উপাদানগুলি সহোদর হয়), কেবলমাত্র দ্বিতীয় উলটি নির্বাচন করা হবে, যেহেতু ul
— ব্রায়ান এইচ

79

যেহেতু আই 6-8:not দ্বারা গৃহীত হয় না , তাই আমি আপনাকে এটি প্রস্তাব করব:

div ul:nth-child(n+2) {
    background-color: #900;
}

সুতরাং আপনি প্রথমটি বাদেul প্রতিটিটিকে তার মূল উপাদানটিতে বেছে নিন ।

ক্রিস Coyer এর পড়ুন : "n তম সন্তান রেসিপি দরকারী" আরো জন্য নিবন্ধ nth-child উদাহরণ ।


কে এখনও 2019 সালে এখনও IE6-8 ব্যবহার করে?
— oldboy

14
উত্তর বিবেচনা 2013 থেকে ছিল?
— আসুকুকসুকি


14

not(:first-child)আর কাজ করবে বলে মনে হচ্ছে না। কমপক্ষে Chrome এবং ফায়ারফক্সের আরও সাম্প্রতিক সংস্করণগুলির সাথে।

পরিবর্তে, এটি চেষ্টা করুন:

ul:not(:first-of-type) {}

6
তারা উভয়ই কাজ করে তবে তাদের অর্থ আলাদা। ul:not(:first-child)আক্ষরিক অর্থে "এমন কোনও ulউপাদান যা তার পিতামাতার প্রথম সন্তানের নয়", তাই এটি ulঅন্য উপাদান ( p, শিরোনাম ইত্যাদি) এর আগে থাকলে এটি 1 ম এর সাথেও মেলে না । বিপরীতে, এর ul:not(:first-of-type)অর্থ " পাত্রে ul1 ম ব্যতীত অন্য কোনও উপাদান ul"। আপনি ঠিক বলেছেন যে ওপি সম্ভবত সম্ভবত পরবর্তী আচরণের প্রয়োজন ছিল, তবে আপনার ব্যাখ্যাটি বিভ্রান্তিকর।
— ইলিয়া স্ট্রেলটসিন

9

আপনি যে কোনও নির্বাচকের সাথে ব্যবহার করতে পারেন not

p:not(:first-child){}
p:not(:first-of-type){}
p:not(:checked){}
p:not(:last-child){}
p:not(:last-of-type){}
p:not(:first-of-type){}
p:not(:nth-last-of-type(2)){}
p:not(nth-last-child(2)){}
p:not(:nth-child(2)){}

4

উপরের কিছুটির সাথে আমার ভাগ্য হয়নি,

এটি কেবলমাত্র আমার জন্য কাজ করেছিল

ul:not(:first-of-type) {}

এটি যখন আমার পৃষ্ঠায় প্রদর্শিত প্রথম বোতামটি মার্জিন-বাম বিকল্প দ্বারা প্রভাবিত না করার চেষ্টা করা হয়েছিল তখন আমার পক্ষে কাজ হয়েছিল।

এই বিকল্পটি আমি প্রথমে চেষ্টা করেছিলাম কিন্তু এটি কার্যকর হয়নি

ul:not(:first-child)


4

আপনি আপনার নির্বাচককে :notপছন্দ মতো বেলো দিয়ে ব্যবহার করতে পারেন আপনি এর মধ্যে যে কোনও নির্বাচক ব্যবহার করতে পারেন:not()

any_CSS_selector:not(any_other_CSS_selector){
    /*YOUR STYLE*/
}

আপনি :notপিতামাতা নির্বাচক ছাড়াও ব্যবহার করতে পারেন ।

   :not(:nth-child(2)){
        /*YOUR STYLE*/
   }

আরও উদাহরণ

any_CSS_selector:not(:first-child){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:first-of-type){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:checked){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:last-child){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:last-of-type){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:first-of-type){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:nth-last-of-type(2)){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:nth-last-child(2)){
    /*YOUR STYLE*/
}
any_CSS_selector:not(:nth-child(2)){
    /*YOUR STYLE*/
}

0

আমি ul:not(:first-child)যেমন ব্যবহার করেছি তেমনি একটি নিখুঁত সমাধান।

div ul:not(:first-child) {
    background-color: #900;
}

কেন এটি নিখুঁত কারণ ব্যবহার করে ul:not(:first-child)আমরা অভ্যন্তরীণ উপাদানগুলিতে সিএসএস প্রয়োগ করতে পারি। li, img, span, aট্যাগ ইত্যাদির মতো

কিন্তু যখন অন্যদের সমাধানগুলি ব্যবহার করা হয়:

div ul + ul {
  background-color: #900;
}

এবং

div li~li {
    color: red;
}

এবং

ul:not(:first-of-type) {}

এবং

div ul:nth-child(n+2) {
    background-color: #900;
}

এগুলি কেবল উল স্তরের সিএসএসকে সীমাবদ্ধ করে। মনে করুন আমরা সিএসএসকে li'ডিভ উল + উল লি' হিসাবে প্রয়োগ করতে পারি না ।

অভ্যন্তরীণ স্তরের উপাদানগুলির জন্য প্রথম সমাধানটি পুরোপুরি কার্যকর হয়।

div ul:not(:first-child) li{
        background-color: #900;
    }

এবং তাই ...

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