فارسی

قدرت تو در تو نویسی در CSS را کشف کنید که سینتکس شبه-Sass را به CSS نیتیو می‌آورد. بیاموزید این ویژگی جدید چگونه استایل‌دهی را ساده، خوانایی کد را بهبود و نگهداری آن را برای توسعه‌دهندگان وب در سراسر جهان ارتقا می‌دهد.

تو در تو نویسی در CSS: سینتکس شبه-Sass در CSS نیتیو برای توسعه‌دهندگان جهانی

سال‌هاست که توسعه‌دهندگان وب برای غلبه بر محدودیت‌های CSS استاندارد، به پیش‌پردازنده‌هایی مانند Sass، Less و Stylus تکیه کرده‌اند. یکی از محبوب‌ترین ویژگی‌های این پیش‌پردازنده‌ها، تو در تو نویسی (nesting) است که به شما امکان می‌دهد قوانین CSS را درون قوانین دیگر بنویسید و ساختاری بصری‌تر و سازمان‌یافته‌تر ایجاد کنید. اکنون، به لطف تکامل استانداردهای CSS، تو در تو نویسی نیتیو در CSS سرانجام از راه رسیده و جایگزین قدرتمندی را بدون نیاز به ابزارهای خارجی ارائه می‌دهد.

تو در تو نویسی در CSS چیست؟

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


.navbar {
  background-color: #f0f0f0;
  padding: 10px;
}

.navbar a {
  color: #333;
  text-decoration: none;
}

.navbar a:hover {
  color: #007bff;
}

با تو در تو نویسی در CSS، می‌توانید با رویکردی ساختاریافته‌تر به همان نتیجه برسید:


.navbar {
  background-color: #f0f0f0;
  padding: 10px;

  a {
    color: #333;
    text-decoration: none;

    &:hover {
      color: #007bff;
    }
  }
}

توجه کنید که چگونه قوانین a و a:hover درون قانون .navbar تو در تو قرار گرفته‌اند. این به وضوح نشان می‌دهد که این استایل‌ها فقط برای تگ‌های لنگر (anchor) درون نوبار اعمال می‌شوند. نماد & به انتخابگر والد (.navbar) اشاره دارد و برای شبه-کلاس‌هایی مانند :hover حیاتی است. این رویکرد در پروژه‌های متنوع، از وب‌سایت‌های ساده گرفته تا اپلیکیشن‌های وب پیچیده مورد استفاده مخاطبان جهانی، به خوبی کار می‌کند.

مزایای استفاده از تو در تو نویسی نیتیو در CSS

معرفی تو در تو نویسی نیتیو در CSS مزایای فراوانی برای توسعه‌دهندگان وب به همراه دارد:

چگونه از تو در تو نویسی CSS استفاده کنیم

تو در تو نویسی در CSS از یک سینتکس ساده استفاده می‌کند که بر اساس قراردادهای موجود CSS ساخته شده است. در اینجا خلاصه‌ای از مفاهیم کلیدی آمده است:

تو در تو نویسی پایه

شما می‌توانید هر قانون CSS را درون قانون دیگری تو در تو قرار دهید. برای مثال:


.container {
  width: 80%;
  margin: 0 auto;

  h2 {
    font-size: 2em;
    color: #333;
  }
}

این کد تمام عناصر h2 را که درون عنصر .container قرار دارند، استایل‌دهی می‌کند.

استفاده از انتخابگر &

انتخابگر & نماینده انتخابگر والد است. این انتخابگر برای شبه-کلاس‌ها، شبه-عناصر و ترکیب‌کننده‌ها ضروری است. برای مثال:


button {
  background-color: #007bff;
  color: #fff;
  padding: 10px 20px;
  border: none;
  cursor: pointer;

  &:hover {
    background-color: #0056b3;
  }

  &::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    background-color: #0056b3;
  }
}

در این مثال، &:hover استایل‌ها را هنگام قرار گرفتن ماوس روی دکمه اعمال می‌کند و &::after یک شبه-عنصر بعد از دکمه اضافه می‌کند. به اهمیت استفاده از «&» برای اشاره به انتخابگر والد توجه کنید.

تو در تو نویسی با Media Queries

شما همچنین می‌توانید media queries را درون قوانین CSS تو در تو قرار دهید تا طراحی‌های واکنش‌گرا ایجاد کنید:


.card {
  width: 300px;
  margin: 20px;
  border: 1px solid #ccc;

  @media (max-width: 768px) {
    width: 100%;
    margin: 10px 0;
  }
}

این کد عرض و حاشیه عنصر .card را زمانی که عرض صفحه کمتر از 768 پیکسل باشد، تنظیم می‌کند. این ابزاری قدرتمند برای ایجاد وب‌سایت‌هایی است که با اندازه‌های مختلف صفحه نمایش مورد استفاده مخاطبان جهانی سازگار هستند.

تو در تو نویسی با ترکیب‌کننده‌ها (Combinators)

ترکیب‌کننده‌های CSS (مانند >، +، ~) می‌توانند در قوانین تو در تو برای هدف قرار دادن روابط خاص بین عناصر استفاده شوند:


.article {
  h2 {
    margin-bottom: 10px;
  }

  > p {
    line-height: 1.5;
  }

  + .sidebar {
    margin-top: 20px;
  }
}

در این مثال، > p پاراگراف‌های فرزند مستقیم عنصر .article را هدف قرار می‌دهد و + .sidebar عنصر هم‌سطح (sibling) بلافاصله بعدی با کلاس .sidebar را هدف قرار می‌دهد.

پشتیبانی مرورگرها و Polyfillها

از اواخر سال ۲۰۲۳، تو در تو نویسی در CSS به طور قابل توجهی مورد توجه قرار گرفته و توسط اکثر مرورگرهای مدرن از جمله Chrome، Firefox، Safari و Edge پشتیبانی می‌شود. با این حال، بررسی ماتریس پشتیبانی فعلی مرورگرها در منابعی مانند Can I use برای اطمینان از سازگاری با مخاطبان هدف شما بسیار مهم است. برای مرورگرهای قدیمی‌تری که به طور نیتیو از تو در تو نویسی CSS پشتیبانی نمی‌کنند، می‌توانید از یک polyfill مانند پلاگین PostCSS Nested استفاده کنید تا CSS تو در توی خود را به کد سازگار تبدیل کنید.

بهترین شیوه‌ها برای تو در تو نویسی در CSS

در حالی که تو در تو نویسی در CSS مزایای بی‌شماری را ارائه می‌دهد، استفاده هوشمندانه از آن برای جلوگیری از ایجاد کدی بیش از حد پیچیده یا دشوار برای نگهداری، ضروری است. در اینجا برخی از بهترین شیوه‌ها برای پیروی آورده شده است:

مثال‌هایی از تو در تو نویسی CSS در عمل

بیایید چند مثال عملی از نحوه استفاده از تو در تو نویسی CSS برای استایل‌دهی به اجزای مختلف رابط کاربری را بررسی کنیم:

دکمه‌ها


.button {
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;

  &.primary {
    background-color: #007bff;
    color: #fff;

    &:hover {
      background-color: #0056b3;
    }
  }

  &.secondary {
    background-color: #f0f0f0;
    color: #333;

    &:hover {
      background-color: #e0e0e0;
    }
  }
}

این کد استایل‌هایی را برای یک کلاس عمومی .button تعریف می‌کند و سپس از تو در تو نویسی برای ایجاد انواع دکمه‌های اصلی و فرعی استفاده می‌کند.

فرم‌ها


.form-group {
  margin-bottom: 20px;

  label {
    display: block;
    margin-bottom: 5px;
  }

  input[type="text"],
  input[type="email"],
  textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
  }

  .error-message {
    color: red;
    margin-top: 5px;
  }
}

این کد گروه‌های فرم، برچسب‌ها، فیلدهای ورودی و پیام‌های خطا را در یک فرم استایل‌دهی می‌کند.

منوهای ناوبری


.nav {
  list-style: none;
  margin: 0;
  padding: 0;

  li {
    display: inline-block;
    margin-right: 20px;

    a {
      text-decoration: none;
      color: #333;

      &:hover {
        color: #007bff;
      }
    }
  }
}

این کد یک منوی ناوبری، آیتم‌های لیست و تگ‌های لنگر را در منو استایل‌دهی می‌کند.

تو در تو نویسی CSS در مقابل پیش‌پردازنده‌های CSS

تو در تو نویسی در CSS یک تغییر بزرگ برای توسعه‌دهندگان وبی است که سال‌ها به پیش‌پردازنده‌های CSS تکیه کرده‌اند. در حالی که پیش‌پردازنده‌ها طیف گسترده‌ای از ویژگی‌ها از جمله متغیرها، mixinها و توابع را ارائه می‌دهند، تو در تو نویسی نیتیو در CSS بخش قابل توجهی از این قابلیت‌ها را مستقیماً در مرورگر فراهم می‌کند. در اینجا یک مقایسه آمده است:

ویژگی تو در تو نویسی نیتیو در CSS پیش‌پردازنده‌های CSS (مانند Sass)
تو در تو نویسی بله بله
متغیرها Custom Properties (متغیرهای CSS) بله
Mixinها خیر (عملکرد محدود با @property و Houdini API) بله
توابع خیر (عملکرد محدود با Houdini API) بله
عملگرها خیر بله
پشتیبانی مرورگر مرورگرهای مدرن نیاز به کامپایل دارد
وابستگی هیچ نیاز به ابزار خارجی دارد

همانطور که می‌بینید، تو در تو نویسی نیتیو در CSS جایگزین قدرتمندی برای پیش‌پردازنده‌ها برای نیازهای اولیه تو در تو نویسی فراهم می‌کند. در حالی که پیش‌پردازنده‌ها هنوز ویژگی‌های پیشرفته‌ای مانند mixinها و توابع را ارائه می‌دهند، این شکاف در حال کاهش است. ویژگی‌های سفارشی CSS (متغیرها) نیز راهی برای استفاده مجدد از مقادیر در سراسر شیوه‌نامه‌های شما ارائه می‌دهند.

آینده تو در تو نویسی CSS و فراتر از آن

تو در تو نویسی در CSS تنها یکی از تحولات هیجان‌انگیز در دنیای CSS است. با ادامه تکامل CSS، می‌توانیم انتظار داشته باشیم که ویژگی‌های قدرتمندتری را ببینیم که توسعه وب را ساده‌تر کرده و کیفیت کد را بهبود می‌بخشند. فناوری‌هایی مانند Houdini API راه را برای قابلیت‌های استایل‌دهی پیشرفته‌تر، از جمله ویژگی‌های سفارشی با سیستم‌های نوع غنی‌تر، انیمیشن‌های سفارشی و الگوریتم‌های چیدمان سفارشی هموار می‌کنند. پذیرش این فناوری‌های جدید به توسعه‌دهندگان امکان می‌دهد تا تجربیات وب جذاب‌تر و تعاملی‌تری برای کاربران در سراسر جهان ایجاد کنند. کارگروه CSS به طور مداوم در حال بررسی راه‌های جدیدی برای بهبود این زبان و پاسخگویی به نیازهای توسعه‌دهندگان وب است.

نتیجه‌گیری

تو در تو نویسی در CSS گام مهمی رو به جلو برای CSS نیتیو است که مزایای سینتکس شبه-Sass را برای مخاطبان گسترده‌تری به ارمغان می‌آورد. با بهبود خوانایی کد، افزایش قابلیت نگهداری و کاهش تکرار کد، تو در تو نویسی در CSS به توسعه‌دهندگان این امکان را می‌دهد که CSS تمیزتر، کارآمدتر و مقیاس‌پذیرتری بنویسند. با افزایش روزافزون پشتیبانی مرورگرها، تو در تو نویسی در CSS آماده است تا به ابزاری ضروری در زرادخانه هر توسعه‌دهنده وب تبدیل شود. پس قدرت تو در تو نویسی در CSS را در آغوش بگیرید و سطح جدیدی از خلاقیت و بهره‌وری را در پروژه‌های توسعه وب خود باز کنید! این ویژگی جدید به توسعه‌دهندگان با پیشینه‌ها و سطوح مهارت‌های مختلف امکان می‌دهد تا CSS قابل نگهداری‌تر و قابل فهم‌تری بنویسند و همکاری و زمان توسعه را در سراسر جهان بهبود بخشند. آینده CSS روشن است و تو در تو نویسی در CSS نمونه درخشانی از پیشرفت‌های در حال انجام است.