সিএসএসের সর্বশেষ সন্তানের নির্বাচক: নির্দিষ্ট শ্রেণির শেষ উপাদানটি নির্বাচন করুন, পিতামাতার অভ্যন্তরে শেষ সন্তানের নয়?


176
<div class="commentList">
   <article class="comment " id="com21"></article>
   <article class="comment " id="com20"></article>
   <article class="comment " id="com19"></article>
   <div class="something"> hello </div>
</div>

আমি নির্বাচন করতে চান #com19?

.comment {
    width:470px;
    border-bottom:1px dotted #f0f0f0;
    margin-bottom:10px;
}

.comment:last-child {
    border-bottom:none;
    margin-bottom:0;
}

div.somethingকমেন্টলিস্টে আমার আসল শেষ সন্তান হিসাবে যতক্ষণ না আমার কাজ হয় ততক্ষণ তা কাজ করে না । এক্ষেত্রে শেষ-শিশু নির্বাচককে সর্বশেষ উপস্থিতি নির্বাচন করা সম্ভব article.comment?

jsFiddle

উত্তর:


229

:last-childকেবলমাত্র তখনই কাজ করে যখন প্রশ্নের মধ্যে থাকা উপাদানটি ধারকটির শেষ সন্তান, নির্দিষ্ট ধরণের উপাদানগুলির শেষ নয়। তার জন্য, আপনি চান:last-of-type

http://jsfiddle.net/C23g6/3/

@ বোল্টক্লকের মন্তব্য অনুসারে, এটি কেবল সর্বশেষ articleউপাদানটির জন্য অনুসন্ধান করছে , শ্রেণীর সাথে শেষ উপাদানটি নয় .comment

body {
  background: black;
}

.comment {
  width: 470px;
  border-bottom: 1px dotted #f0f0f0;
  margin-bottom: 10px;
}

.comment:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
}
<div class="commentList">
  <article class="comment " id="com21"></article>

  <article class="comment " id="com20"></article>

  <article class="comment " id="com19"></article>

  <div class="something"> hello </div>
</div>


146
এটি ক্লাসটির দিকে দেখায় না, কেবল টাইপ, সুতরাং যদি একই ক্লাসে অ-নিবন্ধগুলি ঘটে থাকে তবে আপনি অপ্রত্যাশিত ফলাফল পাবেন।
BoltClock

1
এটি সঠিকভাবে কাজ করে। তবে, শ্রেণি দ্বারা উপাদানগুলি সঙ্কুচিত করার জন্য যদি আমাদের তাদের প্রয়োজন হয়, এটি আবার কাজ করে না। jsfiddle.net/aliemreeee/a4H7f/2
আলী এমরে Çাকামকোয়েলু

12
এই উত্তরগুলির উপর ভিত্তি করে, আমি অনুমান করি যে নির্বাচনের কোনও উপায় নেই last-of-class
তোবুলকেহে

14
যতক্ষণ না CSS সিলেক্টর স্তর 4 গ্রহণ করেন এবং ব্রাউজার, যেখানে আপনি অ্যাক্সেস থাকবে দ্বারা বাস্তবায়িত হয় না :nth-match(selector)এবং :nth-last-match(selector)। আরও তথ্যের জন্য w3.org/TR/selectors4 দেখুন ।
ক্রিস

1
বা বরং, :nth-last-child(An+B of selector)যেমন এর :nth-last-match()অনেক আগে বাদ পড়েছিল, তবে তারা ডাব্লুডিসি হালনাগাদ করার বিষয়ে মাথা ঘামায় না। দেখুন stackoverflow.com/questions/21167159/css-nth-match-doesnt-work/...
BoltClock

6

আপনি যদি উপাদানগুলি ভাসাচ্ছেন তবে আপনি ক্রমটি বিপরীত করতে পারেন

অর্থাত্ float: right;পরিবর্তেfloat: left;

এবং তারপরে কোনও ক্লাসের প্রথম-শিশু নির্বাচন করতে এই পদ্ধতিটি ব্যবহার করুন।

/* 1: Apply style to ALL instances */
#header .some-class {
  padding-right: 0;
}
/* 2: Remove style from ALL instances except FIRST instance */
#header .some-class~.some-class {
  padding-right: 20px;
}

এটি আসলে শেষ ইভেন্টে ক্লাসটি প্রয়োগ করছে কেবল কারণ এটি এখন বিপরীত ক্রমে।

এখানে আপনার জন্য একটি কার্যকারী উদাহরণ:

<!doctype html>
<head><title>CSS Test</title>
<style type="text/css">
.some-class { margin: 0; padding: 0 20px; list-style-type: square; }
.lfloat { float: left; display: block; }
.rfloat { float: right; display: block; }
/* apply style to last instance only */
#header .some-class {
  border: 1px solid red;
  padding-right: 0;
}
#header .some-class~.some-class {
  border: 0;
  padding-right: 20px;
}
</style>
</head>
<body>
<div id="header">
  <img src="some_image" title="Logo" class="lfloat no-border"/>
  <ul class="some-class rfloat">
    <li>List 1-1</li>
    <li>List 1-2</li>
    <li>List 1-3</li>
  </ul>
  <ul class="some-class rfloat">
    <li>List 2-1</li>
    <li>List 2-2</li>
    <li>List 2-3</li>
  </ul>
  <ul class="some-class rfloat">
    <li>List 3-1</li>
    <li>List 3-2</li>
    <li>List 3-3</li>
  </ul>
  <img src="some_other_img" title="Icon" class="rfloat no-border"/>
</div>
</body>
</html>

নোট করুন যদিও ভাসমান উপাদানগুলিকে পরবর্তী লাইনে ধাক্কা দেওয়া হয় না (যেমন, ভাসমান-ডান / বামে যথেষ্ট অনুভূমিক স্থান না)
ওজি

.some-class~.some-classযখন কেবল 2 টি উপাদান পুনরাবৃত্তি করে তখন আমার পক্ষে দুর্দান্ত কাজ করে।
মেলোম্যান

4

আমার অনুমান যে সর্বাধিক সঠিক উত্তরটি: ব্যবহার করুন :nth-child(বা, এই নির্দিষ্ট ক্ষেত্রে এটির সমকক্ষ :nth-last-child)। বেশিরভাগই কেবল এই নির্বাচককে এন দিয়ে গণনার উপর ভিত্তি করে বিভিন্ন আইটেমের দখল করার প্রথম যুক্তি দ্বারা জানেন তবে এটি "[কোনও সিএসএস নির্বাচক]" এর দ্বিতীয় যুক্তিও নিতে পারে।

আপনার পরিস্থিতি এই নির্বাচকটির সাথে সমাধান করা যেতে পারে: .commentList .comment:nth-last-child(1 of .comment)

তবে প্রযুক্তিগতভাবে সঠিক হওয়ার অর্থ এই নয় যে আপনি এটি ব্যবহার করতে পারবেন, যদিও এই নির্বাচকটি এখন পর্যন্ত কেবল সাফারিতেই প্রয়োগ করেছেন।

আরও পড়ার জন্য:


1

আমার মনে হয় এমন কিছু এখানে মন্তব্য করা উচিত যা আমার পক্ষে কাজ করেছে:

:last-childপ্রয়োজনীয় জায়গাগুলিতে একাধিকবার ব্যবহার করুন যাতে এটি সর্বদা শেষের শেষ হয়।

উদাহরণস্বরূপ এটি নিন:

.page.one .page-container .comment:last-child {
  color: red;
}
.page.two .page-container:last-child .comment:last-child {
  color: blue;
}
<p> When you use .comment:last-child </p>
<p> you only get the last comment in both parents </p>

<div class="page one">
  <div class="page-container">
    <p class="comment"> Something </p>
    <p class="comment"> Something </p>
  </div>

  <div class="page-container">
    <p class="comment"> Something </p>
    <p class="comment"> Something </p>
  </div>
</div>

<p> When you use .page-container:last-child .comment:last-child </p>
<p> you get the last page-container's, last comment </p>

<div class="page two">
  <div class="page-container">
    <p class="comment"> Something </p>
    <p class="comment"> Something </p>
  </div>

  <div class="page-container">
    <p class="comment"> Something </p>
    <p class="comment"> Something </p>
  </div>
</div>


0

এই সমাধান সম্পর্কে কি?

div.commentList > article.comment:not(:last-child):last-of-type
{
    color:red; /*or whatever...*/
}

@ এলএসবিএলএসবি, আপনি articleএখানে ব্যবহার করুন, সুতরাং: প্রদত্ত উদাহরণের জন্য (: শেষ-শিশু) নয় not
Масленков Масленков

ক্লাস সহ উপাদানটি somethingমূল এইচটিএমএলে উপস্থিত না থাকলে এবং গতিশীলভাবে sertedোকানো হচ্ছে তবে hoverকী হবে ? এই সমাধান ব্যর্থ হবে না?
Fr0zenFyr

-1

শেষ উপাদান টাইপটি নিবন্ধটিও থাকলে last-of-typeপ্রত্যাশার মতো কাজ করবে না।

সম্ভবত আমি বুঝতে পারি না এটি কীভাবে কাজ করে।

ডেমো

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