مقدمه بر CSS مدرن (CSS3 به بعد) | راهنمای جامع ویژگیهای جدید 2025
خلاصه مطلب
در این مقاله مقدماتی، با جدیدترین امکانات CSS شامل Flexbox، Grid، متغیرها، Container Queries، انیمیشنها و سلکتور :has() آشنا میشوید. هر مبحث همراه با کد واقعی و مثال کاربردی ارائه شده است. مناسب برای مبتدیانی که میخواهند طراحی وب مدرن را از صفر شروع کنند.
پاراگراف ۱: CSS چیست و چرا باید نسخه مدرن آن را یاد بگیریم؟
CSS یا همان Cascading Style Sheets زبانی است که ظاهر وبسایت را مشخص میکند. از نسخه CSS3 به بعد (که از سال ۲۰۱۱ شروع شد و تا امروز ۲۰۲۵ دائماً در حال بهروزرسانی است)، امکاناتی به CSS اضافه شده که کار طراحی را سریعتر، تمیزتر و حرفهایتر کرده است. دیگر خبری از Floatهای دردسرساز و Tableهای قدیمی نیست.
پاراگراف ۲: تفاوت CSS قدیم و مدرن
در CSS قدیم برای وسطچین کردن یک المان باید از margin: auto یا ترفندهای position استفاده میکردیم. اما در CSS مدرن با Flexbox فقط یک خط کفایت میکند. همچنین برای چیدنیهای پیچیده، CSS Grid قدرت خارقالعادهای دارد. در این مقاله، مهمترین این ویژگیها را با مثال یاد میگیرید.
پاراگراف ۳: ویژگي اول – Flexbox (چیدمان یکبعدی)
Flexbox مخصوص چیدمان المانها در یک ردیف (ردیف یا ستون) است. برای منوها، کارتها، هدرها و فوترها عالی است. با دستور display: flex فعال میشود.
کد سورس مثال Flexbox:
/* کد CSS برای یک منوی افقی با فاصله مساوی */ .menu { display: flex; justify-content: space-between; align-items: center; background-color: #2c3e50; padding: 15px; } .menu-item { color: white; padding: 10px 20px; background-color: #e74c3c; border-radius: 8px; }
<!-- HTML نمونه --> <div class="menu"> <div class="menu-item">خانه</div> <div class="menu-item">محصولات</div> <div class="menu-item">تماس با ما</div> </div>
پاراگراف ۴: ویژگي دوم – CSS Grid (چیدمان دوبعدی)
اگر میخواهید یک صفحه کامل، گالری عکس یا داشبورد طراحی کنید، Grid بهترین انتخاب است. هم سطر و هم ستون را کنترل میکند.
کد سورس مثال Grid:
/* یک گالری ۳ ستونی با فاصله مساوی */ .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; } .gallery-item { background-color: #3498db; padding: 50px; text-align: center; color: white; border-radius: 12px; }
<div class="gallery"> <div class="gallery-item">۱</div> <div class="gallery-item">۲</div> <div class="gallery-item">۳</div> <div class="gallery-item">۴</div> <div class="gallery-item">۵</div> <div class="gallery-item">۶</div> </div>
پاراگراف ۵: ویژگي سوم – متغیرهای CSS (Custom Properties)
با متغیرها میتوانید رنگ، فونت یا هر مقداری را یک بار تعریف کنید و در کل سایت استفاده کنید. تغییر تم سایت (مثل دارک مود) با چند خط کد انجام میشود.
کد سورس متغیرها:
:root { --primary-color: #9b59b6; --secondary-color: #f1c40f; --spacing: 16px; --border-radius: 10px; } .button { background-color: var(--primary-color); padding: var(--spacing); border-radius: var(--border-radius); color: white; border: none; } .button-special { background-color: var(--secondary-color); }
پاراگراف ۶: ویژگي چهارم – Container Queries (آخرین ویژگی مهم)
قبلاً فقط Media Queries داشتیم که به اندازه صفحه نگاه میکرد. اما Container Queries به اندازه خود المان والد نگاه میکند. برای ساخت ویجتهای قابل استفاده مجدد در هر جای صفحه عالی است.
کد سورس Container Queries:
.card-container { container-type: inline-size; container-name: card; } @container card (min-width: 300px) { .card { display: flex; flex-direction: row; } } @container card (max-width: 299px) { .card { display: block; } } .card { background: #ecf0f1; padding: 15px; }
پاراگراف ۷: ویژگي پنجم – سلکتور جادویی :has()
:has() مثل یک if در CSS عمل میکند. مثلاً اگر یک div داخلش تصویر داشت، استایل خاص بده. یا اگر یک فرم خطا داشت، پسزمینه آن را قرمز کن.
کد سورس :has():
/* اگر کارتی داخلش تصویر داشت، حاشیه طلایی بگیرد */ .card:has(img) { border: 3px solid gold; box-shadow: 0 5px 15px rgba(0,0,0,0.2); } /* اگر یک div داخلش لینک فعال داشت */ div:has(a.active) { background-color: #e8f4f8; } /* فرمی که داخلش ورودی نامعتبر وجود دارد */ form:has(input:invalid) { background-color: #ffe6e6; padding: 10px; }
پاراگراف ۸: ویژگي ششم – انیمیشنهای مدرن بدون جاوااسکریپت
با transition و @keyframes میتوانید انیمیشنهای حرفهای بسازید. شفافیت، حرکت، چرخش و تغییر اندازه تنها با CSS.
کد سورس انیمیشن:
.box { width: 100px; height: 100px; background: #e67e22; transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); } .box:hover { transform: scale(1.2) rotate(10deg); background: #d35400; border-radius: 50%; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .animated-element { animation: fadeInUp 0.6s ease-out; }
. ویژگیها و بخشهای مختلف
-
✅ ۶ ویژگی اصلی CSS مدرن به طور کامل پوشش داده شده
-
✅ هر ویژگی همراه با کد واقعی و قابل کپی
-
✅ تمیز و شفاف برای مبتدیان
-
✅ ساختار سئو شده برای موتورهای جستجو
-
✅ منطبق با آخرین ورژن مرورگرها (۲۰۲۵)
-
✅ پیشنهاد تمرین عملی در انتهای مقاله
-
✅ جدول مقایسه سریع در بخش جمعبندی
جدول مقایسه سریع ویژگیها:
| ویژگی | کاربرد اصلی | سادگی یادگیری |
|---|---|---|
| Flexbox | چیدمان یکبعدی (منو، کارت) | ★★★☆☆ |
| Grid | چیدمان دوبعدی (کل صفحه، گالری) | ★★★★☆ |
| متغیرها | مدیریت رنگ و اندازه | ★★☆☆☆ |
| Container Queries | ویجتهای مستقل | ★★★★☆ |
| :has() | شرط در CSS | ★★★★★ |
| انیمیشن | حرکت و جلوههای بصری | ★★★☆☆ |
. بخش پیشنهاد تمرین عملی
💡 تمرین پیشنهادی:
با استفاده از Flexbox یک هدر بسازید که شامل لوگو (چپ)، منوی لینکها (وسط) و دکمه ورود (راست) باشد. سپس با Grid یک گالری ۲×۲ طراحی کنید. کدهای خود را در کامنتهای پایین مقاله به اشتراک بگذارید.
کلمات کلیدی:
CSS مدرن,آموزش مقدماتی CSS,CSS3,Flexbox,Grid,متغیرهای CSS,Container Queries,انیمیشن CSS,سلکتور has,طراحی ریسپانسیو
نظرات (0)