برنامه نویسی

تئوری وب – قسمت 2: جادوی معماری های CSS

Summarize this content to 400 words in Persian Lang

در دنیای در حال توسعه توسعه وب، CSS (Cascading Style Sheets) نقش مهمی در ایجاد رابط های بصری جذاب و کاربر پسند ایفا می کند. اما، همانطور که پروژه ها در مقیاس بزرگ هستند، مدیریت CSS می تواند به یک کار دلهره آور تبدیل شود. معماری‌های CSS را وارد کنید – روش‌هایی که ساختار و قابلیت نگهداری را به پایگاه‌های کد CSS می‌آورند. در این مقاله چندین متدولوژی CSS محبوب را بررسی خواهیم کرد، چرا آنها ضروری هستند و چگونه می توان آنها را به طور موثر اعمال کرد.

آشنایی با متدولوژی های CSS

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

BEM (تغییرگر عنصر بلوک)
OOCSS (CSS شی گرا)
SMACSS (معماری مقیاس پذیر و مدولار برای CSS)
CSS اتمی
ITCSS (مثلث معکوس CSS)

چرا از متدولوژی های CSS استفاده کنیم؟

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

مقیاس پذیری: روش‌ها مدیریت پایگاه‌های کد بزرگ را تسهیل می‌کنند.

ثبات: یک سبک کدگذاری یکنواخت را در سراسر تیم تضمین می کند.

قابلیت استفاده مجدد: نوشتن اجزای قابل استفاده مجدد را تشویق می کند و افزونگی را کاهش می دهد.

قابل پیش بینی بودن: تاثیر تغییرات را قابل پیش بینی تر می کند و عوارض جانبی غیرمنتظره را به حداقل می رساند.

BEM (تغییرگر عنصر بلوک)

BEM یکی از محبوب ترین قراردادهای نامگذاری CSS است. مخفف Block، Element، Modifier است و روشی ساختاریافته برای نامگذاری کلاس ها ارائه می دهد.

➡️ همچنین می‌توانید مقاله شگفت‌انگیز من را در مورد مقدمه همه قراردادهای نام‌گذاری موجود بررسی کنید.

اصول

مسدود کردن: یک موجودیت مستقل را نشان می دهد که به تنهایی معنادار است (به عنوان مثال، menu).

عنصر: نمایانگر بخشی از یک بلوک است و معنای مستقلی ندارد (به عنوان مثال، menu__item).

اصلاح کننده: حالت یا نسخه دیگری از یک بلوک یا عنصر را نشان می دهد (به عنوان مثال، menu__item–active).

مثال

HTML

class=”menu”>
class=”menu__item menu__item–active”>Home
class=”menu__item”>About
class=”menu__item”>Contact

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

نام کلاس های قابل پیش بینی: درک رابطه بین کلاس ها آسان است.

مسائل با ویژگی کم: احتمال تضاد ویژگی را کاهش می دهد.

قابلیت استفاده مجدد: استفاده مجدد از قطعات را تسهیل می کند.

OOCSS (CSS شی گرا)

OOCSS بر ایجاد کد قابل استفاده مجدد و قابل گسترش با جداسازی ساختار و پوسته اجزاء تمرکز دارد.

اصول

ساختار و پوست جدا: سبک های ساختاری و بصری را جداگانه تعریف کنید.

ظرف و محتوا را جدا کنید: ظرف نباید وابسته به محتوا باشد.

مثال

HTML

class=”card”>
class=”card__header”>Title
class=”card__body”>Content
class=”card__footer”>Footer

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
/components
_card.scss

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

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

مقیاس پذیری: مدیریت آسان تر با رشد پروژه ها.

SMACSS (معماری مقیاس پذیر و مدولار برای CSS)

SMACSS یک رویکرد انعطاف پذیر است که CSS را به پنج نوع طبقه بندی می کند: Base، Layout، Module، State و Theme.

اصول

پایه: سبک های پیش فرض مانند بازنشانی.

چیدمان: سبک هایی که طرح بندی ساختاری اصلی صفحه را مشخص می کنند.

مدول: سبک برای اجزای قابل استفاده مجدد.

حالت: سبک های حالت های مختلف ماژول ها یا طرح بندی ها.

موضوع: سبک هایی برای موضوعات مختلف سایت.

مثال

HTML

class=”layout-header”>
class=”logo”>MySite

class=”module-card is-active”>
class=”module-card__title”>Card Title
class=”module-card__content”>Card Content

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
/base
_reset.scss
/layout
_header.scss
/module
_card.scss
/state
_active.scss
/theme
_dark-theme.scss

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

مدولار بودن: تفکیک نگرانی ها را تشویق می کند.

مقیاس پذیری: با پروژه های بزرگ مقیاس خوبی دارد.

ثبات: ساختاری ثابت در سراسر پروژه ارائه می دهد.

CSS اتمی

Atomic CSS یک رویکرد کاربردی است که در آن هر کلاس به یک ویژگی CSS مربوط می شود.

اصول

مسئولیت واحد: هر کلاس یک مسئولیت دارد (مثلاً text-center، m-1).

کلاس های کاربردی: مجموعه ای از کلاس های کاربردی برای ساخت کامپوننت ها استفاده می شود.

مثال

HTML

class=”text-center m-1 p-2 bg-primary”>
Welcome to Atomic CSS

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
/utilities
_typography.scss
_spacing.scss
_colors.scss

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

کارایی: اندازه فایل های CSS را با استفاده مجدد از کلاس ها کاهش می دهد.

سادگی: ساده و قابل فهم.

انعطاف پذیری: بسیار انعطاف پذیر و آسان برای انطباق.

ITCSS (مثلث معکوس CSS)

ITCSS یک معماری مقیاس پذیر و قابل نگهداری است که CSS را از عمومی به خاص سازماندهی می کند.

اصول

عمومی به خاص: سبک ها از عمومی به خاص سفارش داده می شوند.

لایه های: به لایه هایی مانند تنظیمات، ابزارها، عمومی، عناصر، اشیاء، مؤلفه ها و ابزارها تقسیم می شود.

مثال

HTML

class=”btn”>
class=”btn__text”>Click Me

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
/settings
_variables.scss
/tools
_mixins.scss
/generic
_normalize.scss
/elements
_typography.scss
/objects
_grid.scss
/components
_buttons.scss
/utilities
_spacing.scss

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

مقیاس پذیری: برای پروژه های بزرگ مناسب است.

قابلیت نگهداری: ساختار و سازماندهی واضح.

انعطاف پذیری: سازگاری و گسترش آسان.

👉 شما می توانید بیش از یک معماری را در پروژه خود بکار ببرید. به عنوان مثال استفاده کنید BEM _برای نامگذاری بهتر، _SMACSS _برای سازماندهی بهتر و _Atomic CSS برای رسیدگی بهتر!

خلاصه و نتیجه گیری

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

-در پایان از شما تشکر می کنم که مقاله من را خواندید و روز خوبی داشته باشید!

در دنیای در حال توسعه توسعه وب، CSS (Cascading Style Sheets) نقش مهمی در ایجاد رابط های بصری جذاب و کاربر پسند ایفا می کند. اما، همانطور که پروژه ها در مقیاس بزرگ هستند، مدیریت CSS می تواند به یک کار دلهره آور تبدیل شود. معماری‌های CSS را وارد کنید – روش‌هایی که ساختار و قابلیت نگهداری را به پایگاه‌های کد CSS می‌آورند. در این مقاله چندین متدولوژی CSS محبوب را بررسی خواهیم کرد، چرا آنها ضروری هستند و چگونه می توان آنها را به طور موثر اعمال کرد.

آشنایی با متدولوژی های CSS

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

  1. BEM (تغییرگر عنصر بلوک)
  2. OOCSS (CSS شی گرا)
  3. SMACSS (معماری مقیاس پذیر و مدولار برای CSS)
  4. CSS اتمی
  5. ITCSS (مثلث معکوس CSS)

چرا از متدولوژی های CSS استفاده کنیم؟

  1. قابلیت نگهداری: CSS با ساختار مناسب خواندن، اشکال زدایی و نگهداری آسان تر است.
  2. مقیاس پذیری: روش‌ها مدیریت پایگاه‌های کد بزرگ را تسهیل می‌کنند.
  3. ثبات: یک سبک کدگذاری یکنواخت را در سراسر تیم تضمین می کند.
  4. قابلیت استفاده مجدد: نوشتن اجزای قابل استفاده مجدد را تشویق می کند و افزونگی را کاهش می دهد.
  5. قابل پیش بینی بودن: تاثیر تغییرات را قابل پیش بینی تر می کند و عوارض جانبی غیرمنتظره را به حداقل می رساند.

BEM (تغییرگر عنصر بلوک)

BEM یکی از محبوب ترین قراردادهای نامگذاری CSS است. مخفف Block، Element، Modifier است و روشی ساختاریافته برای نامگذاری کلاس ها ارائه می دهد.

➡️ همچنین می‌توانید مقاله شگفت‌انگیز من را در مورد مقدمه همه قراردادهای نام‌گذاری موجود بررسی کنید.

اصول

  • مسدود کردن: یک موجودیت مستقل را نشان می دهد که به تنهایی معنادار است (به عنوان مثال، menu).
  • عنصر: نمایانگر بخشی از یک بلوک است و معنای مستقلی ندارد (به عنوان مثال، menu__item).
  • اصلاح کننده: حالت یا نسخه دیگری از یک بلوک یا عنصر را نشان می دهد (به عنوان مثال، menu__item--active).

مثال

HTML

class="menu">

class="menu__item menu__item--active">Home

class="menu__item">About

class="menu__item">Contact

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

  • نام کلاس های قابل پیش بینی: درک رابطه بین کلاس ها آسان است.
  • مسائل با ویژگی کم: احتمال تضاد ویژگی را کاهش می دهد.
  • قابلیت استفاده مجدد: استفاده مجدد از قطعات را تسهیل می کند.

OOCSS (CSS شی گرا)

OOCSS بر ایجاد کد قابل استفاده مجدد و قابل گسترش با جداسازی ساختار و پوسته اجزاء تمرکز دارد.

اصول

  • ساختار و پوست جدا: سبک های ساختاری و بصری را جداگانه تعریف کنید.
  • ظرف و محتوا را جدا کنید: ظرف نباید وابسته به محتوا باشد.

مثال

HTML

class="card">

class="card__header">Title

class="card__body">Content

class="card__footer">Footer

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
    /components
        _card.scss
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

  • قابلیت استفاده مجدد: استفاده مجدد از سبک های بصری و عناصر ساختاری را تشویق می کند.
  • مقیاس پذیری: مدیریت آسان تر با رشد پروژه ها.

SMACSS (معماری مقیاس پذیر و مدولار برای CSS)

SMACSS یک رویکرد انعطاف پذیر است که CSS را به پنج نوع طبقه بندی می کند: Base، Layout، Module، State و Theme.

اصول

  • پایه: سبک های پیش فرض مانند بازنشانی.
  • چیدمان: سبک هایی که طرح بندی ساختاری اصلی صفحه را مشخص می کنند.
  • مدول: سبک برای اجزای قابل استفاده مجدد.
  • حالت: سبک های حالت های مختلف ماژول ها یا طرح بندی ها.
  • موضوع: سبک هایی برای موضوعات مختلف سایت.

مثال

HTML

class="layout-header">

class="logo">MySite

class="module-card is-active">

class="module-card__title">Card Title

class="module-card__content">Card Content

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
    /base
        _reset.scss
    /layout
        _header.scss
    /module
        _card.scss
    /state
        _active.scss
    /theme
        _dark-theme.scss
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

  • مدولار بودن: تفکیک نگرانی ها را تشویق می کند.
  • مقیاس پذیری: با پروژه های بزرگ مقیاس خوبی دارد.
  • ثبات: ساختاری ثابت در سراسر پروژه ارائه می دهد.

CSS اتمی

Atomic CSS یک رویکرد کاربردی است که در آن هر کلاس به یک ویژگی CSS مربوط می شود.

اصول

  • مسئولیت واحد: هر کلاس یک مسئولیت دارد (مثلاً text-center، m-1).
  • کلاس های کاربردی: مجموعه ای از کلاس های کاربردی برای ساخت کامپوننت ها استفاده می شود.

مثال

HTML

class="text-center m-1 p-2 bg-primary"> Welcome to Atomic CSS

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
    /utilities
        _typography.scss
        _spacing.scss
        _colors.scss
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

  • کارایی: اندازه فایل های CSS را با استفاده مجدد از کلاس ها کاهش می دهد.
  • سادگی: ساده و قابل فهم.
  • انعطاف پذیری: بسیار انعطاف پذیر و آسان برای انطباق.

ITCSS (مثلث معکوس CSS)

ITCSS یک معماری مقیاس پذیر و قابل نگهداری است که CSS را از عمومی به خاص سازماندهی می کند.

اصول

  • عمومی به خاص: سبک ها از عمومی به خاص سفارش داده می شوند.
  • لایه های: به لایه هایی مانند تنظیمات، ابزارها، عمومی، عناصر، اشیاء، مؤلفه ها و ابزارها تقسیم می شود.

مثال

HTML

class="btn"> class="btn__text">Click Me

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ساختار پوشه

/css
    /settings
        _variables.scss
    /tools
        _mixins.scss
    /generic
        _normalize.scss
    /elements
        _typography.scss
    /objects
        _grid.scss
    /components
        _buttons.scss
    /utilities
        _spacing.scss
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فواید

  • مقیاس پذیری: برای پروژه های بزرگ مناسب است.
  • قابلیت نگهداری: ساختار و سازماندهی واضح.
  • انعطاف پذیری: سازگاری و گسترش آسان.

👉 شما می توانید بیش از یک معماری را در پروژه خود بکار ببرید. به عنوان مثال استفاده کنید BEM _برای نامگذاری بهتر، _SMACSS _برای سازماندهی بهتر و _Atomic CSS برای رسیدگی بهتر!

خلاصه و نتیجه گیری

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

-در پایان از شما تشکر می کنم که مقاله من را خواندید و روز خوبی داشته باشید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا