: প্রথম সন্তান প্রত্যাশার মতো কাজ করছে না


99

আমি একটি ক্লাস নামে h1একটি divসঙ্গে প্রথম নির্বাচন করার চেষ্টা করছি detail_container। এটি এর মধ্যে যদি h1প্রথম উপাদান হয় তবে এটি কাজ করে div, তবে এটি যদি পরে আসে তবে এটি ulকাজ করবে না।

<style type="text/css">
.detail_container h1:first-child
{
color:blue;
} 
</style>
</head>
<body>
<div class="detail_container">
    <ul>
    <li></li>
    <li></li>
    </ul>
    <h1>First H1</h1>
    <h1>Second H1</h1>
</div>
</body>
</html>

আমি এই ছাপে ছিলাম যে সিএসএস আমার কাছে আছে h1এটি যেখানেই থাকুক না কেন প্রথম নির্বাচন করবে div। আমি কীভাবে এটি কাজ করতে পারি?


4
সিএসএস যা কিছু করতে পারে না, জাভাস্ক্রিপ্ট করতে পারে।
JCOC611

11
এটি CSS3 এর সাথে আপনি কিছু করতে পারেন তবে :)
বোল্টক্লক

উত্তর:


222

h1:first-childনির্বাচক উপায়ে


যদি এটির h1উপাদান থাকে তবে কেবল তার পিতামাতার প্রথম সন্তানের নির্বাচন করুন ।

এখানকার :first-childধারকটি হ'ল ulএবং এগুলি সন্তুষ্ট করতে পারে না h1:first-child

:first-of-typeআপনার ক্ষেত্রে সিএসএস 3 রয়েছে :

.detail_container h1:first-of-type
{
    color: blue;
} 

তবে ব্রাউজারের সামঞ্জস্যতা হ'ল এবং কী নয়, আপনি প্রথম h1শ্রেণি দেওয়ার চেয়ে ভাল

.detail_container h1.first
{
    color: blue;
}

4
আমি এখনই বুঝতে পারি, যদিও আমি মনে করি যে তারা যখন স্ট্যান্ডার্ড তৈরি করেছিল তখন তাদের উভয় সংস্করণ প্রয়োগ করা উচিত ছিল।
মাফিন ম্যান

আই 9 রিলিজে কাজ করছেন না। ডেভেলপার টুল অজানা: এরা বলছে H1
সিনে


4
নবীনতর সামঞ্জস্য তালিকা এর :first-of-type। পুরানো লিঙ্কটি ভুল।
BadHorsie

আমার দৃষ্টিতে, শব্দটি :first-childবুঝতে স্পষ্ট নয়, কারণ আপনি আইটিএসটি সিএসএস নির্বাচক হিসাবে সংজ্ঞায়িত করেছেন, বলুন h1এবং তারপরে আপনি পরে বেছে বেছে ডিওএম স্তরের সকলের "প্রথম সন্তান গ্রহণ করুন" বলে মনে করেন। আমি এটি বহুবার ভুল ব্যবহার করেছি ... আমাদের :first-of-typeনির্বাচকটির অভ্যস্ত হতে হবে এবং এর ধরণের প্রথম সন্তানের কথা চিন্তা করতে হবে ।
কাই Noack

15

:first-childপ্রথমটি নির্বাচন করে h1 যদি এবং কেবলমাত্র যদি এটির প্যারেন্ট উপাদানগুলির প্রথম সন্তান। আপনার উদাহরণে, এর ulপ্রথম সন্তান div

সিউডো-ক্লাসের নামটি কিছুটা বিভ্রান্তিকর, তবে এটি বেশ স্পষ্টভাবে এখানে বর্ণিত হয়েছে

jQuery এর :firstনির্বাচক আপনি যা খুঁজছেন তা আপনাকে দেয়। তুমি এটি করতে পারো:

$('.detail_container h1:first').css("color", "blue");


আপনার অধিকার এটি বিভ্রান্তিমূলক, আমি সাধারণত বিভ্রান্ত হয়ে পড়েছি কারণ আমি এর আগে jQuery ব্যবহার করেছি।
মাফিন ম্যান

9

নির্দিষ্ট ক্ষেত্রে আপনি ব্যবহার করতে পারেন:

.detail_container > ul + h1{ 
    color: blue; 
}

তবে অনেক ক্ষেত্রে যদি আপনার একই নির্বাচকের প্রয়োজন হয়, তবে বোল্টক্লক যেমন বলেছিল, তাদের জন্য আপনার একটি ক্লাস থাকা উচিত।


আপনার কোনও সমস্যা হওয়া উচিত নয়। এখানে রেফ w3.org/TR/CSS2/selector.html#child-setectors
গ্রেজz

6

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

.detail_container h1:nth-of-type(1)

অন্য কোনও সংখ্যা দ্বারা 1 নম্বর পরিবর্তন করে আপনি অন্য কোনও এইচ 1 আইটেম নির্বাচন করতে পারেন।


1

আপনি নিজের h1ট্যাগগুলিকে অন্যটিতে মোড়াতে পারেন divএবং তারপরে প্রথমটি হ'ল first-child। এটি divএমনকি শৈলী প্রয়োজন হয় না। এই শিশুদের আলাদা করার একমাত্র উপায়।

<div class="h1-holder">
    <h1>Title 1</h1>
    <h1>Title 2</h1>
</div>

0

উপাদানটি <body>ট্যাগ থেকে সরাসরি উত্তরাধিকারী হতে পারে না । আপনি এটি একটি <dir style="padding-left:0px;"></dir>ট্যাগ লাগানোর চেষ্টা করতে পারেন ।

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