ترفندهای حرفه ای CSS ProTips (جلسه ۴) : nth-child منفی و لینکهای بدون متن

در این مطلب با ادامه ترفندهای حرفه ای CSS ProTips در خدمتتون هستیم.css protips

انتخاب آیتمها با استفاده از nth-child منفی

همونطور که میدونین با استفاده از قدرت nth-child میتونین المنتهای مورد نظرتون رو انتخاب کرده و استایل مورد نظرتون رو بهشون بدید. مثلا اگر بخاید آیتمهای فرد انتخاب بشن، باید ۲n+1 قرار بدین و اگر بخواید آیتمهای زوج انتخاب بشن، باید ۲n رو قرار بدین. کد HTML زیر رو در نظر بگیرید:

  • Happy
  • Dopey
  • Grumpy
  • Sleepy
  • Sneezy
  • Bashful
  • Doc

حالا اگر بخایم همه المنتها رو مخفی کنیم و فقط المنتهای فرد رو نمایش بدیم، بصورت زیر عمل میکنیم:

body {
  font-family: "Roboto", sans-serif;
  line-height: 1.75;
}
li {
  display: none;
}
li:nth-child(2n+1) {
  display: block;
}

خروجی در مرورگر بصورت زیر هست:

Happy
Grumpy
Sneezy
Doc

میبینید که li هایی که فرد بودن نمایش داده شدن. حالا با استفاده از nth-child و قرار دادن مقدار منفی درون اون میتونین المنتها رو بصورت حرفه ای انتخاب کنید. فرض کنید که فقط میخاید المنتهای ۱ تا ۴ رو نمایش بدین. برای اینکار به چه صورت عمل میکنید؟

روشی که در اینجا از اون استفاده میکنیم قرار دادن -n+4 درون nth-child هست. با اینکار المنتهای ۱ و ۲ و ۳ و ۴ انتخاب میشن و استایل مورد نظر براشون نمایش داده میشن. کد CSS بصورت زیر میشه:

body {
  font-family: "Roboto", sans-serif;
  line-height: 1.75;
}
li {
  display: none;
}
li:nth-child(-n+4) {
  display: block;
}

خروجی در مرورگر هم بصورت زیر خواهد شد:

Happy
Dopey
Grumpy
Sleepy

بهمین راحتی ۴ li اول رو نمایش دادیم. مثلا اگر بخایم بجای ۴ تای اول، ۲ تای اول رو نمایش بدین، بجای -n+4، عبارت -n+2 رو قرار میدیم. بهمین راحتی. در اینجا هم میتونین دموی اون رو مشاهده کنید.

استایل مناسب برای لینکهای بدون متن

بعضی مواقع هست که لینکهایی که قرار میدید، متنی درونشون قرار نداره ولی یک آدرس درون href اونا وجود داره. با استفاده از روشی که در اینجا در اختیارتون قرار میگیره، میتونین استایل مناسبی برای این موارد در نظر بگیرید و با استفاده از CSS، لینک رو بصورت زیبا به کاربران نمایش بدین. کد زیر رو در نظر بگیرید:

CSS Protips

کد CSS زیر رو براش قرار میدیم:

a {
  color: #1c86ee;
  font-size: 1.5em;
  overflow-wrap: break-word;
  word-break: break-word;
  word-wrap: break-word;
}

خروجی بصورت زیر خواهد شد:css links

این لینک یه لینک عادی بود و متن و آدرس داشت. حالا اگر لینک ما متن نداشته باشه، هیچی در خروجی نمایش داده نمیشه. لینک زیر رو در نظر بگیرید:

همونطوری که میبینید، لینک بالا متنی درونش قرار نداره و فقط آدرس داره. برای این مورد استایل زیر رو قرار میدیم:

a {
  color: #1c86ee;
  font-size: 1.5em;
  overflow-wrap: break-word;
  word-break: break-word;
  word-wrap: break-word;
}
a[href]:empty::before {
  content: attr(href);
}

خروجی در مرورگر بصورت زیر خواهد شد:css links 2

همونطور که دیدید گفتیم که اون a هایی که href رو دارن و خالی هستن و متنی درونشون قرار نداره رو انتخاب کن و برای کلاس کاذب before اونا یک content قرار بده. چیزی که درون content قرار میگیره همون متن ویژگی href هست که با استفاده از attr دریافت شده. بهمین راحتی. در اینجا هم میتونین دموی اون رو مشاهده کنید.

در جلسات بعدی با ادامه ترفندها در خدمتتون هستیم.

امیدوارم از این جلسه خوشتون اومده باشه.

موفق و پیروز باشید.

یا علی

Source

چه امتیازی به این مقاله می دید؟











نویسنده
محمد اسفندیاری

بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.

نظر دهید

پاسخ دهید

Logo
بازیابی رمز عبور
مقایسه موارد
  • کل (0)
مقایسه
0