سبد خرید شما خالی است.

ما یک شرکت حرفه ای برای گسترش کسب و کار های آنلاین و دیجیتال مارکتینگ هستیم

گالری تصاویر

ارتباط با ما

چهارمحال و بختیاری - شهرکرد

info@domain.com

0383-12345678

دسته: آموزش رایگان CSS

جلسه 63 – آموزش کامل استفاده از animation در CSS

ویژگی animation در CSS به شما این امکان را می‌دهد که بدون نیاز به جاوا اسکریپت، افکت‌های متحرک و انیمیشن‌های حرفه‌ای ایجاد کنید.

با استفاده از @keyframes و ویژگی‌های مرتبط با انیمیشن، می‌توان حرکت‌های متنوعی مانند تغییر رنگ، چرخش، تغییر اندازه و جابجایی را روی عناصر اعمال کرد.

در این مقاله، نحوه تعریف انیمیشن در CSS، ویژگی‌های آن و مثال‌های کاربردی را بررسی خواهیم کرد.


۱. تعریف اولیه animation در CSS

برای ایجاد یک انیمیشن در CSS، نیاز به دو بخش داریم:

  1. تعریف انیمیشن در @keyframes: مشخص کردن تغییرات مرحله‌ای انیمیشن.
  2. اعمال انیمیشن روی عنصر: استفاده از ویژگی animation در عنصر موردنظر.

مثال ساده: تغییر رنگ با انیمیشن

@keyframes changeColor {
    from {
        background-color: blue;
    }
    to {
        background-color: red;
    }
}

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    animation: changeColor 2s linear infinite;
}

✅ در این مثال، عنصر .box هر ۲ ثانیه از آبی به قرمز تغییر رنگ می‌دهد و این روند به‌طور بی‌نهایت تکرار می‌شود.


۲. ویژگی‌ های animation در CSS

ویژگی animation شامل چندین مقدار است که در ادامه بررسی می‌کنیم:

animation: name duration timing-function delay iteration-count direction fill-mode play-state;
ویژگیتوضیح
animation-nameنام انیمیشنی که در @keyframes تعریف شده است.
animation-durationمدت زمان اجرای انیمیشن (مثلاً 2s).
animation-timing-functionنحوه تغییرات در طول زمان (ease, linear, ease-in, ease-out, cubic-bezier).
animation-delayتأخیر قبل از شروع انیمیشن (مثلاً 1s).
animation-iteration-countتعداد تکرار انیمیشن (infinite برای تکرار بی‌نهایت).
animation-directionجهت حرکت انیمیشن (normal, reverse, alternate).
animation-fill-modeتعیین می‌کند که عنصر بعد از انیمیشن در چه حالتی باقی بماند.
animation-play-stateامکان توقف یا اجرای انیمیشن (running, paused).

۳. استفاده از چندین مرحله در @keyframes

به جای from و to، می‌توان درصدهای مختلفی را برای کنترل دقیق‌تر انیمیشن مشخص کرد.

مثال: تغییر رنگ در چند مرحله

@keyframes multiColor {
    0% { background-color: blue; }
    50% { background-color: green; }
    100% { background-color: red; }
}

.box {
    animation: multiColor 3s ease-in-out infinite;
}

✅ این کد باعث می‌شود که رنگ عنصر ابتدا آبی، سپس سبز و در نهایت قرمز شود.


۴. کنترل تعداد تکرار انیمیشن (iteration-count)

ویژگی animation-iteration-count مشخص می‌کند که انیمیشن چند بار تکرار شود.

مقدارتوضیح
1فقط یک بار اجرا می‌شود.
3سه بار تکرار می‌شود.
infiniteبه‌طور نامحدود تکرار می‌شود.

مثال: اجرای انیمیشن فقط ۳ بار

.box {
    animation: multiColor 3s ease-in 3;
}

✅ این انیمیشن فقط ۳ بار اجرا شده و سپس متوقف می‌شود.


۵. تغییر جهت انیمیشن (animation-direction)

این ویژگی مشخص می‌کند که انیمیشن در چه جهتی حرکت کند.

مقدارتوضیح
normalحرکت از ابتدا تا انتها (پیش‌فرض)
reverseحرکت از انتها به ابتدا
alternateحرکت رفت و برگشتی
alternate-reverseحرکت برگشتی و سپس رفت

مثال: اجرای انیمیشن به‌صورت رفت و برگشت (alternate)

.box {
    animation: multiColor 3s ease-in-out infinite alternate;
}

✅ در این حالت، رنگ ابتدا از آبی به قرمز تغییر کرده و سپس از قرمز به آبی برمی‌گردد.


۶. تنظیم وضعیت نهایی انیمیشن (fill-mode)

ویژگی animation-fill-mode مشخص می‌کند که عنصر بعد از انیمیشن چه حالتی داشته باشد.

مقدارتوضیح
noneبعد از انیمیشن، عنصر به حالت اولیه برمی‌گردد.
forwardsعنصر در وضعیت نهایی انیمیشن باقی می‌ماند.
backwardsعنصر قبل از شروع انیمیشن در وضعیت اولیه آن باقی می‌ماند.
bothترکیبی از forwards و backwards.

مثال: باقی ماندن عنصر در وضعیت پایانی انیمیشن

.box {
    animation: multiColor 3s ease-in-out forwards;
}

✅ پس از پایان انیمیشن، رنگ نهایی حفظ می‌شود و عنصر به حالت اولیه برنمی‌گردد.


۷. توقف و اجرای انیمیشن (play-state)

برای کنترل اجرای انیمیشن می‌توان از animation-play-state استفاده کرد.

مثال: توقف و اجرای انیمیشن با هاور

.box {
    animation: multiColor 3s infinite;
    animation-play-state: paused;
}

.box:hover {
    animation-play-state: running;
}

✅ در این مثال، انیمیشن متوقف است و فقط هنگام هاور شدن اجرا می‌شود.


۸. ترکیب چندین انیمیشن در یک عنصر

می‌توان چندین انیمیشن را همزمان روی یک عنصر اعمال کرد.

مثال: ترکیب چرخش و تغییر رنگ

@keyframes rotateBox {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes colorChange {
    0% { background-color: blue; }
    100% { background-color: red; }
}

.box {
    animation: rotateBox 2s linear infinite, colorChange 3s ease-in-out infinite;
}

✅ در این مثال، عنصر همزمان می‌چرخد و تغییر رنگ می‌دهد.


۹. جمع‌بندی

✔ برای ایجاد انیمیشن، از @keyframes همراه با animation استفاده می‌شود.
animation-duration مدت زمان انیمیشن را تعیین می‌کند.
animation-iteration-count مشخص می‌کند که انیمیشن چند بار تکرار شود.
animation-direction می‌تواند حرکت را برعکس یا رفت و برگشتی کند.
animation-fill-mode مشخص می‌کند که عنصر بعد از پایان انیمیشن در چه حالتی باقی بماند.
animation-play-state امکان متوقف کردن یا اجرای انیمیشن را فراهم می‌کند.
✔ می‌توان چندین انیمیشن را به‌صورت همزمان روی یک عنصر اعمال کرد.

با یادگیری این مفاهیم، می‌توانید انیمیشن‌های حرفه‌ای و جذاب در طراحی وب خود ایجاد کنید! 🚀

جلسه 62 – آموزش انواع زمان‌ بندی Timing در CSS

زمان‌بندی (Timing) در CSS نقش مهمی در نحوه اجرای انیمیشن‌ ها (animation) و ترنزیشن‌ ها (transition) دارد.

این ویژگی تعیین می‌کند که تغییرات در طول زمان چگونه رخ دهند؛ آیا به‌صورت یکنواخت انجام شوند یا با شتاب‌گیری و کاهش سرعت همراه باشند.

در این مقاله، انواع Timing Function در CSS را بررسی کرده و تأثیر آن‌ها را بر روی انیمیشن‌ها توضیح خواهیم داد.


۱. مفهوم Timing Function در CSS

timing-function مشخص می‌کند که چگونه مقدار یک ویژگی در طول زمان تغییر کند. این ویژگی هم در transition و هم در animation قابل استفاده است.

  • در ترنزیشن:
transition-timing-function: ease;
  • در انیمیشن:
animation-timing-function: ease-in-out;

🔹 مقدار timing-function روی نحوه حرکت یک المان در طول انیمیشن یا ترنزیشن تأثیر می‌گذارد.


۲. انواع زمان‌ بندی (Timing Functions) در CSS

۱. Linear (تغییر یکنواخت و بدون شتاب)

در این حالت، تغییرات با سرعت ثابت و یکنواخت انجام می‌شوند.

transition-timing-function: linear;

🔹 ویژگی: مناسب برای حرکاتی که باید بدون شتاب اجرا شوند، مانند تغییر رنگ.

🔹 مثال: حرکت یکنواخت یک جعبه

.box {
    transition: transform 2s linear;
}
.box:hover {
    transform: translateX(100px);
}

۲. Ease (شروع و پایان نرم، شتاب در وسط)

این مقدار پیش‌فرض در transition است. تغییرات در ابتدا و انتها نرم و کند هستند اما در میانه سریع‌تر اتفاق می‌افتند.

transition-timing-function: ease;

🔹 ویژگی: مناسب برای افکت‌های طبیعی‌تر مانند حرکت دکمه‌ها و پنجره‌های پاپ‌آپ.


۳. Ease-in (شروع کند، پایان سریع)

در این حالت، تغییرات ابتدا آهسته آغاز شده و به تدریج سرعت می‌گیرند.

transition-timing-function: ease-in;

🔹 ویژگی: مناسب برای افکت‌هایی که باید حس ورود تدریجی ایجاد کنند، مثل نمایش متن.

🔹 مثال: افزایش اندازه با ease-in

.box {
    transition: transform 1s ease-in;
}
.box:hover {
    transform: scale(1.5);
}

۴. Ease-out (شروع سریع، پایان کند)

تغییرات با سرعت بالا آغاز شده و به تدریج کند می‌شوند.

transition-timing-function: ease-out;

🔹 ویژگی: مناسب برای افکت‌هایی که باید حس خروج نرم داشته باشند، مثل بستن منوها.


۵. Ease-in-out (شروع و پایان کند، شتاب در وسط)

این مقدار ترکیبی از ease-in و ease-out است، یعنی حرکت در ابتدا و انتها کند و در میانه سریع‌تر است.

transition-timing-function: ease-in-out;

🔹 ویژگی: مناسب برای انیمیشن‌هایی که حرکت طبیعی و روان نیاز دارند.

🔹 مثال: تغییر عرض با ease-in-out

.box {
    transition: width 1.5s ease-in-out;
}
.box:hover {
    width: 200px;
}

۶. Cubic Bezier (کنترل کامل حرکت)

cubic-bezier(n, n, n, n) امکان تنظیم حرکت سفارشی را با استفاده از نقاط کنترلی فراهم می‌کند.

transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1);

🔹 ویژگی: مناسب برای حرکات غیرمعمول و خلاقانه، مانند افکت‌های سینمایی و حرکات کارتونی.

💡 برای تست مقادیر cubic-bezier، می‌توانید از سایت cubic-bezier.com استفاده کنید.


۳. استفاده از timing-function در انیمیشن‌ ها

در animation نیز می‌توان از timing-function برای کنترل حرکت استفاده کرد.

مثال: چرخش با ease-in-out

@keyframes rotateBox {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.box {
    animation: rotateBox 2s ease-in-out infinite;
}

✅ در این مثال، جعبه به‌صورت چرخش نرم و طبیعی در هر چرخه حرکت می‌کند.


۴. ترکیب timing-function با delay و duration

ویژگی‌های duration (مدت زمان) و delay (تأخیر) می‌توانند همراه با timing-function استفاده شوند.

مثال: انیمیشن با تأخیر و ease-out

.box {
    transition: transform 1s ease-out 0.5s;
}
.box:hover {
    transform: translateX(150px);
}

✅ این کد باعث می‌شود تغییر با ۰.۵ ثانیه تأخیر آغاز شده و با سرعت زیاد شروع شود اما به‌تدریج کند شود.


۵. مقایسه انواع timing-function با مثال تصویری

نوعنحوه اجرامثال
linearحرکت یکنواخت و بدون تغییر سرعت🚗 → → → → →
easeشروع و پایان نرم، شتاب در وسط🚗 → → 🚀 → →
ease-inشروع کند و پایان سریع🐢 → → 🚗 🚀
ease-outشروع سریع و پایان کند🚀 🚗 → → 🐢
ease-in-outشروع و پایان کند، شتاب در وسط🐢 → → 🚀 → → 🐢
cubic-bezierحرکت کاملاً سفارشی🎭 بسته به مقدار Bezier

۶. جمع‌بندی

timing-function در transition و animation برای کنترل نحوه تغییرات در طول زمان استفاده می‌شود.
linear تغییرات را بدون شتاب اجرا می‌کند.
ease شروع و پایان نرم دارد و حرکت واقع‌گرایانه‌تر ایجاد می‌کند.
ease-in شروع کند و ease-out پایان کند دارد.
ease-in-out ترکیبی از هر دو و مناسب برای حرکت‌های طبیعی‌تر است.
cubic-bezier امکان کنترل دقیق‌تر حرکت را فراهم می‌کند.
✔ ترکیب timing-function با duration, delay, و animation باعث ایجاد افکت‌های پیشرفته و حرفه‌ای می‌شود.

با یادگیری این مفاهیم، می‌توانید افکت‌های جذاب و حرفه‌ای در طراحی وب خود ایجاد کنید! 🚀

جلسه 61 – آموزش کامل استفاده از transition در CSS

ویژگی transition در CSS یکی از مهم‌ترین ابزارها برای ایجاد تغییرات نرم و تدریجی در عناصر وب است. این ویژگی باعث می‌شود که تغییرات ویژگی‌های CSS به‌جای اینکه ناگهانی اعمال شوند، با یک انیمیشن نرم انجام شوند.

در این مقاله، نحوه استفاده از transition، مقدارهای مختلف آن و مثال‌های کاربردی بررسی می‌شود.


۱. ویژگی transition در CSS چیست؟

ویژگی transition امکان کنترل مدت زمان، نوع حرکت و زمان‌بندی تغییرات در ویژگی‌های CSS را فراهم می‌کند.

مثال ساده: تغییر رنگ پس‌زمینه هنگام هاور (Hover)

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition: background-color 0.5s ease;
}

.box:hover {
    background-color: red;
}

✅ در این مثال، هنگام هاور کردن روی .box، رنگ پس‌زمینه به‌صورت تدریجی و در مدت ۰.۵ ثانیه از آبی به قرمز تغییر می‌کند.


۲. نحوه تعریف transition در CSS

۱. استفاده از transition با مقدارهای جداگانه

transition: property duration timing-function delay;

✅ این ویژگی‌ها شامل:

  • property → مشخص می‌کند که کدام ویژگی CSS تغییر کند (مثلاً background-color، width، opacity).
  • duration → مدت زمان اجرای تغییر (مثلاً 0.5s یا 1s).
  • timing-function → نحوه حرکت تغییر (مثلاً ease, linear, ease-in).
  • delay (اختیاری) → تاخیر قبل از شروع تغییر (مثلاً 0.2s).

۲. استفاده از transition برای چند ویژگی همزمان

.box {
    transition: background-color 0.5s ease, width 0.5s ease-in;
}

✅ در این مثال، رنگ پس‌زمینه و عرض عنصر هر دو به‌صورت تدریجی تغییر خواهند کرد.


۳. مقدارهای timing-function در transition

timing-function نحوه حرکت تغییرات را مشخص می‌کند. مقدارهای اصلی آن:

مقدارتوضیح
linearتغییر یکنواخت و بدون شتاب
easeشروع و پایان نرم با شتاب متغیر
ease-inشروع کند و پایان سریع
ease-outشروع سریع و پایان کند
ease-in-outشروع و پایان کند و میانه سریع
cubic-bezier(n,n,n,n)مقدار سفارشی برای کنترل دقیق‌تر حرکت

مثال: استفاده از انواع timing-function

.box {
    transition: width 1s linear;
}

.box:hover {
    width: 200px;
}

✅ در این مثال، تغییر width به‌صورت خطی و بدون شتاب انجام می‌شود.


۴. تاخیر در transition با delay

برای اجرای تغییرات با تأخیر، می‌توان از delay استفاده کرد.

مثال: تغییر اندازه با تأخیر ۱ ثانیه‌ای

.box {
    width: 100px;
    height: 100px;
    background-color: green;
    transition: width 1s ease-in 1s;
}

.box:hover {
    width: 200px;
}

✅ در این مثال، ۱ ثانیه پس از هاور شدن، تغییر اندازه اجرا می‌شود.


۵. استفاده از transition در چند ویژگی همزمان

مثال: تغییر همزمان اندازه، رنگ و شفافیت

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    opacity: 1;
    transition: width 0.5s ease, background-color 0.5s ease, opacity 0.5s ease;
}

.box:hover {
    width: 200px;
    background-color: red;
    opacity: 0.5;
}

✅ در این مثال، هنگام هاور شدن:

  • اندازه عنصر بزرگ‌تر می‌شود.
  • رنگ پس‌زمینه از آبی به قرمز تغییر می‌کند.
  • میزان شفافیت (opacity) کاهش می‌یابد.

۶. ایجاد افکت‌های جذاب با transition

۱. تغییر ارتفاع هنگام هاور

.box {
    width: 150px;
    height: 50px;
    background: orange;
    transition: height 0.4s ease-out;
}

.box:hover {
    height: 100px;
}

✅ در این مثال، هنگام هاور، ارتفاع عنصر به‌صورت نرم و روان افزایش می‌یابد.

۲. تغییر موقعیت عنصر با transition

.box {
    position: relative;
    left: 0;
    transition: left 0.5s ease-in-out;
}

.box:hover {
    left: 50px;
}

✅ هنگام هاور، عنصر به‌صورت نرم و تدریجی ۵۰ پیکسل به راست حرکت می‌کند.

۳. دکمه با افکت transition حرفه‌ای

.button {
    padding: 10px 20px;
    background: blue;
    color: white;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease;
}

.button:hover {
    background: red;
    transform: scale(1.1);
}

✅ هنگام هاور، دکمه بزرگ‌تر می‌شود و رنگ آن تغییر می‌کند.


۷. ترکیب transition با transform برای افکت‌های حرکتی

می‌توان transition را با transform ترکیب کرد تا افکت‌های جذاب‌تری ایجاد شود.

مثال: چرخش هنگام هاور

.box {
    width: 100px;
    height: 100px;
    background: purple;
    transition: transform 0.5s ease;
}

.box:hover {
    transform: rotate(45deg);
}

✅ در این مثال، هنگام هاور، عنصر ۴۵ درجه می‌چرخد.


۸. استفاده از transition در متن و افکت تایپ

مثال: تغییر اندازه متن هنگام هاور

.text {
    font-size: 16px;
    transition: font-size 0.3s ease-in-out;
}

.text:hover {
    font-size: 24px;
}

✅ هنگام هاور، اندازه متن به‌صورت تدریجی افزایش می‌یابد.


۹. جمع‌بندی

transition امکان ایجاد تغییرات نرم و تدریجی در عناصر را فراهم می‌کند.
✔ می‌توان transition را روی ویژگی‌های مختلف مانند رنگ، اندازه، موقعیت، شفافیت و چرخش اعمال کرد.
✔ مقدار timing-function مشخص می‌کند که تغییرات چگونه رخ دهند (ease, linear, ease-in و غیره).
delay می‌تواند اجرای تغییر را به تأخیر بیندازد.
✔ می‌توان چندین transition را همزمان روی یک عنصر اعمال کرد.
✔ ترکیب transition با transform امکان ایجاد افکت‌های حرکتی جذاب را فراهم می‌کند.

با یادگیری این مفاهیم، می‌توانید افکت‌های حرفه‌ای و جذاب در طراحی وب‌سایت خود ایجاد کنید! 🚀

جلسه 60 – آشنایی با ویژگی perspective در CSS

ویژگی perspective در CSS برای ایجاد جلوه‌های سه‌بعدی (3D) در صفحات وب استفاده می‌شود.

این ویژگی باعث می‌شود عناصر هنگام اعمال transform‌های سه‌بعدی مانند rotateX(), rotateY(), و translateZ() به شکلی طبیعی‌تر و واقعی‌تر نمایش داده شوند.

در این مقاله، نحوه کارکرد perspective، نحوه اعمال آن و مثال‌های کاربردی را بررسی خواهیم کرد.


۱. ویژگی perspective چیست؟

ویژگی perspective مشخص می‌کند که یک عنصر از چه فاصله‌ای نسبت به بیننده دیده می‌شود. هرچه مقدار perspective بزرگ‌تر باشد، عمق سه‌بعدی کمتر احساس می‌شود و برعکس.

نحوه تعریف perspective در CSS

.parent {
    perspective: 500px;
}

✅ مقدار ۵۰۰px به این معناست که نقطه دید ناظر ۵۰۰ پیکسل از صفحه فاصله دارد.

💡 مقدار کوچک‌تر از ۵۰۰px باعث می‌شود که عمق تصویر بیشتر احساس شود و تغییرات سه‌بعدی شدیدتر دیده شوند.


۲. نحوه اعمال perspective روی عناصر سه‌بعدی

ویژگی perspective معمولاً روی والد (parent) عنصر اعمال می‌شود تا تأثیر آن روی فرزندانش مشخص شود.

مثال: اعمال perspective روی یک عنصر

.parent {
    perspective: 800px;
}

.box {
    width: 100px;
    height: 100px;
    background: red;
    transform: rotateY(30deg);
}

✅ در این مثال:

  • عنصر .box ۳۰ درجه حول محور Y می‌چرخد.
  • perspective: 800px; عمق دید را مشخص می‌کند و باعث می‌شود که چرخش به‌صورت سه‌بعدی نمایش داده شود.

۳. تفاوت مقدار perspective

مقدار perspective تأثیر زیادی بر روی جلوه‌های سه‌بعدی دارد.

مقدار perspectiveتأثیر آن
200pxجلوه‌ی سه‌بعدی بسیار قوی و نمایشی
500pxتعادل بین عمق و واقعی بودن
1000pxجلوه‌ی سه‌بعدی کم‌تر و نزدیک به دوبعدی

مثال: تفاوت مقدار perspective

.parent {
    perspective: 200px; /* یا 500px، 1000px */
}

✅ مقدار کوچکتر (200px) باعث افزایش عمق تصویر می‌شود.
✅ مقدار بزرگ‌تر (1000px) باعث کاهش تأثیر عمق و ایجاد نمایی ملایم‌تر می‌شود.


۴. استفاده از transform-style برای تأثیر بیشتر

برای اعمال صحیح perspective، باید ویژگی transform-style را روی preserve-3d تنظیم کنیم.

.parent {
    perspective: 600px;
    transform-style: preserve-3d;
}

✅ این ویژگی به مرورگر می‌گوید که فرزندان این عنصر باید در فضای سه‌بعدی باقی بمانند.


۵. ترکیب perspective با transform‌های سه‌بعدی

مثال: چرخش سه‌بعدی حول محور X و Y با perspective

.parent {
    perspective: 700px;
}

.box {
    width: 150px;
    height: 150px;
    background: blue;
    transform: rotateX(45deg) rotateY(30deg);
}

✅ این کد باعث می‌شود که عنصر .box به‌صورت سه‌بعدی حول دو محور X و Y چرخش کند.


۶. استفاده از perspective-origin

ویژگی perspective-origin مشخص می‌کند که نقطه دید ناظر در چه مکانی از صفحه قرار دارد.

مثال: تغییر نقطه دید با perspective-origin

.parent {
    perspective: 600px;
    perspective-origin: left top;
}

✅ این مقدار باعث می‌شود که بیننده از بالا و چپ صفحه به عنصر نگاه کند.

🔹 مقدارهای قابل قبول:

  • perspective-origin: center center; (پیش‌فرض)
  • perspective-origin: top left;
  • perspective-origin: bottom right;
  • perspective-origin: 50% 50%;

۷. ایجاد انیمیشن با perspective

با ترکیب perspective و animation می‌توان جلوه‌های متحرک جذابی ایجاد کرد.

مثال: انیمیشن چرخش سه‌بعدی

@keyframes rotate3D {
    from {
        transform: rotateY(0deg);
    }
    to {
        transform: rotateY(360deg);
    }
}

.parent {
    perspective: 800px;
}

.box {
    width: 100px;
    height: 100px;
    background: green;
    animation: rotate3D 3s linear infinite;
}

✅ این کد باعث چرخش بی‌نهایت عنصر در محور Y می‌شود و perspective باعث نمایش بهتر افکت سه‌بعدی خواهد شد.


۸. جمع‌بندی

perspective برای ایجاد عمق و جلوه‌های سه‌بعدی در CSS استفاده می‌شود.
✔ مقدار کوچکتر perspective باعث افزایش عمق تصویر و مقدار بزرگ‌تر باعث ملایم‌تر شدن افکت می‌شود.
✔ ویژگی perspective معمولاً روی والد عنصر تنظیم می‌شود.
✔ ترکیب perspective با rotateX(), rotateY(), و translateZ() جلوه‌های سه‌بعدی واقعی‌تری ایجاد می‌کند.
✔ برای نمایش صحیح، باید از transform-style: preserve-3d; استفاده کرد.
✔ با perspective-origin می‌توان زاویه دید ناظر را تغییر داد.
perspective در انیمیشن‌های CSS نیز برای ایجاد افکت‌های حرفه‌ای کاربرد دارد.

با یادگیری این مفاهیم، می‌توانید افکت‌های سه‌بعدی پیشرفته و حرفه‌ای در طراحی وب‌سایت خود ایجاد کنید! 🚀

جلسه 59 – آموزش ترکیب چندین transform در CSS

ویژگی transform در CSS یکی از ابزارهای قدرتمند برای اعمال تغییرات روی عناصر است که شامل جابجایی (translate)، چرخش (rotate)، مقیاس (scale) و کج کردن (skew) می‌شود.

در بسیاری از موارد، برای ایجاد جلوه‌های جذاب و حرفه‌ای در طراحی وب، نیاز داریم که چند transform را به‌صورت همزمان روی یک عنصر اعمال کنیم. در این آموزش، نحوه ترکیب چندین transform و نکات کلیدی آن را بررسی می‌کنیم.


۱. نحوه اعمال چند transform در CSS

در CSS، اگر چندین transform را به‌صورت جداگانه روی یک عنصر اعمال کنیم، فقط آخرین مقدار در نظر گرفته می‌شود:

اشتباه:

.box {
    transform: translate(50px, 20px);
    transform: rotate(45deg); /* این مقدار، مقدار قبلی را بازنویسی می‌کند */
}

درست:
برای ترکیب چندین transform باید آن‌ها را در یک خط بنویسیم:

.box {
    transform: translate(50px, 20px) rotate(45deg);
}

💡 در این مثال، عنصر ابتدا ۵۰ پیکسل به راست و ۲۰ پیکسل به پایین جابجا شده و سپس ۴۵ درجه چرخیده است.


۲. ترتیب اجرای transform‌ ها

ترتیب نوشتن مقادیر transform اهمیت زیادی دارد، زیرا مرورگر آن‌ها را از چپ به راست اجرا می‌کند.

مثال: تفاوت در ترتیب اجرای transform‌ها

🔹 ابتدا چرخش و سپس جابجایی:

.box {
    transform: rotate(45deg) translate(50px, 20px);
}

✅ در این حالت، عنصر ابتدا ۴۵ درجه چرخیده و سپس جابجا شده است.

🔹 ابتدا جابجایی و سپس چرخش:

.box {
    transform: translate(50px, 20px) rotate(45deg);
}

✅ در این حالت، عنصر ابتدا جابجا شده و سپس چرخیده است، که معمولاً تفاوت ظاهری ایجاد می‌کند.

💡 نکته: در بیشتر موارد، بهتر است ابتدا translate را اعمال کنیم، سپس rotate و scale را اضافه کنیم تا نتیجه مطلوب‌تری بگیریم.


۳. ترکیب transform‌ های مختلف

مثال ۱: ترکیب translate، rotate و scale

.box {
    transform: translate(50px, 20px) rotate(30deg) scale(1.2);
}

✅ در این مثال، عنصر ابتدا جابجا شده، سپس ۳۰ درجه چرخیده و در نهایت ۱.۲ برابر بزرگ‌تر شده است.

مثال ۲: ترکیب skew با سایر transform‌ها

.box {
    transform: skew(20deg, 10deg) translate(30px, 15px) rotate(45deg);
}

✅ در این مثال:

  1. ۲۰ درجه در راستای X و ۱۰ درجه در راستای Y کج شده
  2. ۳۰ پیکسل به راست و ۱۵ پیکسل به پایین جابجا شده
  3. ۴۵ درجه چرخیده است

۴. ترکیب transform با transition برای انیمیشن‌ها

می‌توان ترکیب چندین transform را با transition استفاده کرد تا تغییرات به‌صورت انیمیشنی اجرا شوند.

مثال: تغییر transform هنگام هاور شدن (Hover)

.box {
    transition: transform 0.5s ease-in-out;
}

.box:hover {
    transform: translate(20px, 20px) rotate(15deg) scale(1.1);
}

✅ وقتی کاربر روی عنصر هاور کند، آن ۲۰ پیکسل جابجا شده، ۱۵ درجه چرخیده و ۱.۱ برابر بزرگ‌تر می‌شود.


۵. استفاده از transform-origin برای کنترل نقطه چرخش

به طور پیش‌فرض، rotate() حول مرکز عنصر اجرا می‌شود. اما با transform-origin می‌توان نقطه مرجع را تغییر داد.

مثال: چرخش حول گوشه بالا-چپ

.box {
    transform-origin: top left;
    transform: rotate(45deg);
}

✅ این کد باعث می‌شود عنصر حول گوشه بالا-چپ بچرخد، نه مرکز.


۶. ترکیب transform‌ های سه‌بعدی

علاوه بر transform‌های دوبعدی، می‌توان transform‌های سه‌بعدی را نیز ترکیب کرد.

مثال: ترکیب translate و rotate در سه‌بعدی

.box {
    transform: translate3d(50px, 20px, 30px) rotateY(45deg);
}

✅ این کد باعث می‌شود عنصر:

  1. ۵۰ پیکسل در راستای X، ۲۰ پیکسل در راستای Y و ۳۰ پیکسل در راستای Z جابجا شود.
  2. ۴۵ درجه حول محور Y بچرخد.

💡 برای استفاده بهتر از transform‌های سه‌بعدی، باید perspective را روی والد تنظیم کرد.


۷. جمع‌بندی

✔ برای استفاده همزمان از چند transform، همه را در یک خط بنویسید.
ترتیب اجرای transform‌ها مهم است و می‌تواند نتیجه را تغییر دهد.
✔ می‌توان transform‌های مختلف مانند translate, rotate, scale و skew را با هم ترکیب کرد.
✔ برای جلوه‌های حرکتی جذاب، از transition یا animation همراه با transform استفاده کنید.
✔ برای چرخش دقیق‌تر، می‌توان از transform-origin استفاده کرد.
✔ برای جلوه‌های پیشرفته، می‌توان transform‌های سه‌بعدی (3D) را ترکیب کرد.

با این دانش، می‌توانید افکت‌های جذاب و حرفه‌ای در طراحی وب ایجاد کنید! 🚀

جلسه 58 – آموزش ویژگی‌ skew و translate در CSS

در CSS، ویژگی‌های skew و translate دو قابلیت مهم از ویژگی transform هستند که برای تغییر شکل و موقعیت عناصر استفاده می‌شوند.

در این مقاله، نحوه استفاده از این دو ویژگی و کاربردهای آن‌ها را بررسی خواهیم کرد.


۱. ویژگی translate در CSS

ویژگی translate برای جابجایی یک عنصر در محورهای X و Y (و در موارد پیشرفته‌تر، در محور Z) بدون تغییر در ساختار صفحه استفاده می‌شود.

نحوه استفاده از translate

فرمت کلی این ویژگی به صورت زیر است:

transform: translate(x, y);

✅ مقدار x مشخص می‌کند که عنصر چقدر در راستای افقی جابجا شود.
✅ مقدار y مشخص می‌کند که عنصر چقدر در راستای عمودی جابجا شود.

مثال: جابجایی یک عنصر ۵۰ پیکسل به راست و ۲۰ پیکسل به پایین

.box {
    transform: translate(50px, 20px);
}

✅ مقدار مثبت باعث حرکت عنصر به راست و پایین می‌شود.
✅ مقدار منفی باعث حرکت عنصر به چپ و بالا می‌شود.

مثال: جابجایی فقط در یک جهت

.box {
    transform: translateX(100px); /* فقط ۱۰۰ پیکسل به راست */
}
.box {
    transform: translateY(-50px); /* فقط ۵۰ پیکسل به بالا */
}

ترجمه سه‌بعدی (translateZ)

اگر از CSS سه‌بعدی استفاده کنید، می‌توانید عنصر را در راستای محور Z نیز جابجا کنید:

.box {
    transform: translate3d(50px, 20px, 30px);
}

✅ مقدار translateZ(30px) باعث جابجایی در عمق صفحه می‌شود.


۲. ویژگی skew در CSS

ویژگی skew برای کج کردن (شیب دادن) یک عنصر در راستای محورهای X و Y استفاده می‌شود. این ویژگی بیشتر در طراحی‌های گرافیکی برای ایجاد جلوه‌های خاص کاربرد دارد.

نحوه استفاده از skew

فرمت کلی این ویژگی به صورت زیر است:

transform: skew(x, y);

✅ مقدار x مشخص می‌کند که عنصر چقدر در راستای افقی کج شود.
✅ مقدار y مشخص می‌کند که عنصر چقدر در راستای عمودی کج شود.

مثال: کج کردن یک عنصر ۲۰ درجه در راستای X و ۱۰ درجه در راستای Y

.box {
    transform: skew(20deg, 10deg);
}

✅ مقدار مثبت باعث کج شدن به سمت راست و پایین می‌شود.
✅ مقدار منفی باعث کج شدن به سمت چپ و بالا می‌شود.

مثال: کج کردن فقط در یک جهت

.box {
    transform: skewX(30deg); /* فقط در راستای افقی کج می‌شود */
}
.box {
    transform: skewY(-15deg); /* فقط در راستای عمودی کج می‌شود */
}

۳. ترکیب translate و skew در CSS

می‌توان translate و skew را با هم ترکیب کرد تا افکت‌های جذاب‌تری ایجاد شود.

مثال: جابجایی و کج کردن همزمان یک عنصر

.box {
    transform: translate(50px, 20px) skew(20deg, 10deg);
}

✅ ابتدا عنصر ۵۰ پیکسل به راست و ۲۰ پیکسل به پایین حرکت می‌کند.
✅ سپس ۲۰ درجه در راستای X و ۱۰ درجه در راستای Y کج می‌شود.


۴. انیمیشن translate و skew با CSS

می‌توان از این ویژگی‌ها در انیمیشن‌ها برای ایجاد جلوه‌های حرکتی استفاده کرد.

مثال: انیمیشن جابجایی و کج شدن

@keyframes moveAndSkew {
    0% {
        transform: translate(0, 0) skew(0deg, 0deg);
    }
    50% {
        transform: translate(50px, 20px) skew(10deg, 5deg);
    }
    100% {
        transform: translate(0, 0) skew(0deg, 0deg);
    }
}

.box {
    animation: moveAndSkew 3s infinite alternate;
}

✅ این انیمیشن باعث می‌شود که عنصر جابجا و کج شود و دوباره به حالت اول برگردد.


۵. جمع‌بندی

translate برای جابجایی عنصر در محورهای X و Y استفاده می‌شود.
skew برای کج کردن عنصر در راستای افقی و عمودی کاربرد دارد.
✔ می‌توان این دو ویژگی را برای جلوه‌های پیچیده‌تر ترکیب کرد.
✔ استفاده از animation همراه با translate و skew به ایجاد جلوه‌های بصری جذاب کمک می‌کند.

با یادگیری این مفاهیم، می‌توانید افکت‌های خلاقانه و حرفه‌ای در طراحی وب‌سایت خود ایجاد کنید! 🚀

جلسه 57 – آموزش چرخش Rotate در CSS و تأثیر transform-origin

ویژگی rotate در CSS یکی از قابلیت‌های transform است که به شما امکان می‌دهد عناصر را حول یک نقطه مشخص بچرخانید.

این چرخش می‌تواند در جهت ساعتگرد یا پادساعتگرد باشد. همچنین، با استفاده از ویژگی transform-origin می‌توان نقطه مرجع چرخش را تغییر داد.


۱. چرخش (Rotate) در CSS

برای اعمال چرخش روی یک عنصر، از transform: rotate() استفاده می‌شود. مقدار این ویژگی معمولاً بر حسب درجه (deg) تعیین می‌شود.

مثال ساده چرخش یک عنصر:

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    transform: rotate(45deg); /* چرخش ۴۵ درجه در جهت عقربه‌های ساعت */
}

✅ این کد عنصر را ۴۵ درجه در جهت عقربه‌های ساعت می‌چرخاند.
✅ مقدار منفی باعث چرخش در جهت پادساعتگرد می‌شود:

.box {
    transform: rotate(-30deg); /* چرخش ۳۰ درجه در جهت پادساعتگرد */
}

۲. تأثیر transform-origin در چرخش

به طور پیش‌فرض، چرخش حول مرکز عنصر (center) انجام می‌شود. اما با transform-origin می‌توان نقطه چرخش را تغییر داد.

نحوه استفاده از transform-origin:

.box {
    transform: rotate(45deg);
    transform-origin: top left; /* نقطه چرخش گوشه بالا-چپ خواهد بود */
}

✅ مقدار transform-origin می‌تواند مقادیر مختلفی داشته باشد، مانند:

  • center (پیش‌فرض) → چرخش حول مرکز
  • top left → چرخش حول گوشه بالا-چپ
  • bottom right → چرخش حول گوشه پایین-راست
  • 50% 50% → برابر با center
  • 20px 30px → چرخش حول مختصات سفارشی

مثال: چرخش حول پایین-راست

.box {
    transform: rotate(45deg);
    transform-origin: bottom right; /* چرخش حول گوشه پایین-راست */
}

✅ این کد باعث می‌شود عنصر از گوشه پایین-راست چرخش کند، نه مرکز.


۳. ترکیب Rotate با سایر Transform‌ها

چرخش را می‌توان با سایر ویژگی‌های transform مانند translate و scale ترکیب کرد.

مثال: ترکیب چرخش و جابجایی (Translate)

.box {
    transform: translate(50px, 20px) rotate(30deg);
}

✅ این کد ابتدا عنصر را جابجا کرده و سپس ۳۰ درجه می‌چرخاند.

مثال: ترکیب چرخش و تغییر مقیاس (Scale)

.box {
    transform: rotate(45deg) scale(1.2);
}

✅ این کد ابتدا عنصر را ۴۵ درجه می‌چرخاند و سپس آن را ۱.۲ برابر بزرگ‌تر می‌کند.


۴. چرخش سه‌بعدی (3D Rotation)

علاوه بر rotate(), در CSS می‌توان از چرخش سه‌بعدی با rotateX(), rotateY(), و rotateZ() نیز استفاده کرد.

مثال: چرخش حول محور X

.box {
    transform: rotateX(45deg);
}

✅ این کد باعث می‌شود عنصر حول محور X چرخش سه‌بعدی پیدا کند.

مثال: چرخش حول محور Y

.box {
    transform: rotateY(60deg);
}

✅ این کد عنصر را حول محور Y ۶۰ درجه می‌چرخاند.

مثال: چرخش حول محور Z (معادل rotate معمولی)

.box {
    transform: rotateZ(30deg);
}

rotateZ() همان rotate() است و چرخش در صفحه دوبعدی انجام می‌شود.


۵. انیمیشن چرخش با CSS

چرخش را می‌توان در انیمیشن‌ها و افکت‌های تعاملی استفاده کرد.

مثال: انیمیشن چرخش بی‌نهایت

@keyframes rotateAnimation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.box {
    animation: rotateAnimation 2s linear infinite;
}

✅ این کد یک عنصر را هر ۲ ثانیه ۳۶۰ درجه می‌چرخاند و به صورت بی‌نهایت تکرار می‌شود.


جمع‌بندی

rotate() برای چرخش عناصر حول یک نقطه استفاده می‌شود.
✔ مقدار چرخش را می‌توان بر حسب deg تنظیم کرد.
transform-origin تعیین می‌کند که چرخش حول چه نقطه‌ای انجام شود.
✔ چرخش را می‌توان با ویژگی‌های دیگر transform ترکیب کرد.
✔ چرخش سه‌بعدی با rotateX(), rotateY(), و rotateZ() امکان‌پذیر است.
✔ می‌توان از animation برای ایجاد چرخش مداوم استفاده کرد.

با یادگیری این مفاهیم، می‌توانید جلوه‌های چرخشی جذابی را در طراحی وب اعمال کنید! 🚀

جلسه 56 – ویژگی transform در CSS چیست

ویژگی transform در CSS به شما امکان می‌دهد که تغییراتی مانند چرخش (rotate)، مقیاس (scale)، تغییر مکان (translate) و کج کردن (skew) را روی عناصر HTML اعمال کنید، بدون اینکه بر موقعیت سایر عناصر تأثیر بگذارد.

این ویژگی به ویژه برای طراحی‌های مدرن، جلوه‌های گرافیکی و انیمیشن‌های سبک بسیار کاربردی است.


مقادیر transform و نحوه استفاده

ویژگی transform می‌تواند مقادیر مختلفی داشته باشد که هر کدام یک نوع تغییر را روی عنصر اعمال می‌کنند. در ادامه برخی از مقادیر پرکاربرد بررسی می‌شود:

۱. translate (جابجایی)

این مقدار برای جابجایی عنصر در راستای محورهای X و Y استفاده می‌شود.

.box {
    transform: translate(50px, 20px); /* جابجایی ۵۰ پیکسل به راست و ۲۰ پیکسل به پایین */
}

۲. scale (مقیاس)

برای بزرگ یا کوچک کردن عنصر در راستای محورهای X و Y به کار می‌رود.

.box {
    transform: scale(1.5); /* افزایش اندازه به ۱.۵ برابر */
}
.box {
    transform: scale(1.5, 0.8); /* عرض ۱.۵ برابر و ارتفاع ۰.۸ برابر */
}

۳. rotate (چرخش)

برای چرخش عنصر حول یک نقطه مشخص استفاده می‌شود. مقدار آن به درجه (deg) تعیین می‌شود.

.box {
    transform: rotate(45deg); /* چرخش ۴۵ درجه در جهت عقربه‌های ساعت */
}

۴. skew (کج کردن)

برای ایجاد حالت کج شدن (شیب) در راستای محورهای X و Y به کار می‌رود.

.box {
    transform: skew(20deg, 10deg); /* کج شدن ۲۰ درجه در راستای X و ۱۰ درجه در راستای Y */
}

۵. matrix (ترکیبی)

این مقدار امکان اعمال چندین تغییر را به‌صورت همزمان با یک ماتریس ریاضی فراهم می‌کند.

.box {
    transform: matrix(1, 0.5, -0.5, 1, 50, 20);
}

(استفاده از matrix معمولاً پیشرفته‌تر است و نیاز به درک مفاهیم ریاضی دارد.)


ترکیب چند مقدار transform

شما می‌توانید چند مقدار transform را همزمان روی یک عنصر اعمال کنید.

.box {
    transform: translate(50px, 20px) rotate(45deg) scale(1.2);
}

این کد ابتدا عنصر را جابجا کرده، سپس آن را می‌چرخاند و در نهایت مقیاس آن را تغییر می‌دهد.


تعیین نقطه مبدا (transform-origin)

به طور پیش‌فرض، تمامی تغییرات نسبت به مرکز عنصر انجام می‌شود. اما می‌توان نقطه مبدا (origin) را تغییر داد.

.box {
    transform-origin: top left;
    transform: rotate(45deg);
}

در این مثال، چرخش عنصر حول گوشه بالا-چپ انجام می‌شود.


جمع‌بندی

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

جلسه 55 – آموزش کامل Media Query در CSS

Media Query یکی از مهم‌ترین ویژگی‌های CSS است که برای طراحی ریسپانسیو (واکنش‌گرا) استفاده می‌شود. با کمک Media Query، می‌توان استایل‌های متفاوتی را برای اندازه‌های مختلف صفحه‌نمایش، دستگاه‌های خاص، وضوح تصویر و حتی نوع چاپ اعمال کرد.

در این راهنما، نحوه استفاده از Media Query را به‌صورت کامل بررسی خواهیم کرد.


۱. Media Query چیست؟

Media Query به ما امکان می‌دهد تا استایل‌های خاصی را بر اساس ویژگی‌های صفحه نمایش یا دستگاه تعریف کنیم. به این ترتیب، عناصر وب به‌طور پویا و انعطاف‌پذیر در اندازه‌های مختلف تنظیم می‌شوند.

ساختار کلی Media Query در CSS

@media (شرایط موردنظر) {
    /* استایل‌های اعمال‌شده */
}

مثال: تغییر رنگ پس‌زمینه صفحه برای صفحه‌نمایش‌های کوچکتر از ۷۶۸ پیکسل

@media (max-width: 768px) {
    body {
        background-color: lightgray;
    }
}

📌 نتیجه: وقتی عرض صفحه کمتر از ۷۶۸px شود، پس‌زمینه صفحه خاکستری خواهد شد.


۲. انواع Media Query بر اساس اندازه صفحه

الف) Media Query برای موبایل، تبلت و دسکتاپ

برای ایجاد یک سایت واکنش‌گرا، می‌توان استایل‌های مختلفی را برای اندازه‌های مختلف صفحه نمایش اعمال کرد.

/* استایل برای موبایل (عرض کمتر از ۶۰۰px) */
@media (max-width: 600px) {
    body {
        font-size: 14px;
    }
}

/* استایل برای تبلت (بین ۶۰۰px تا ۱۰۲۴px) */
@media (min-width: 600px) and (max-width: 1024px) {
    body {
        font-size: 16px;
    }
}

/* استایل برای دسکتاپ (بیشتر از ۱۰۲۴px) */
@media (min-width: 1024px) {
    body {
        font-size: 18px;
    }
}

نتیجه:

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

۳. استفاده از Media Query برای جهت نمایش (Portrait & Landscape)

می‌توان بر اساس جهت صفحه (عمودی یا افقی) استایل‌های مختلفی اعمال کرد.

/* حالت عمودی (Portrait) */
@media (orientation: portrait) {
    body {
        background-color: lightblue;
    }
}

/* حالت افقی (Landscape) */
@media (orientation: landscape) {
    body {
        background-color: lightcoral;
    }
}

نتیجه:

  • وقتی صفحه در حالت عمودی باشد، پس‌زمینه آبی می‌شود.
  • وقتی در حالت افقی باشد، پس‌زمینه قرمز می‌شود.

۴. استفاده از Media Query برای دستگاه‌های خاص

می‌توان Media Query را برای دستگاه‌های خاص مانند چاپگرها، تلویزیون‌ها و صفحات لمسی اعمال کرد.

الف) Media Query برای حالت چاپ (Print)

@media print {
    body {
        font-size: 12pt;
        color: black;
    }
}

نتیجه: هنگام چاپ صفحه، متن بزرگ‌تر و سیاه و سفید خواهد شد.

ب) Media Query برای دستگاه‌های لمسی

@media (hover: none) and (pointer: coarse) {
    button {
        font-size: 20px;
        padding: 15px;
    }
}

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


۵. ترکیب چندین شرط در Media Query

می‌توان چندین شرط را همزمان در یک Media Query ترکیب کرد.

@media (min-width: 600px) and (max-width: 1024px) and (orientation: portrait) {
    body {
        background-color: lightgreen;
    }
}

نتیجه: اگر صفحه بین ۶۰۰px تا ۱۰۲۴px باشد و در حالت عمودی باشد، پس‌زمینه سبز می‌شود.


۶. بهترین روش برای استفاده از Media Query

از اصول Mobile-First استفاده کنید: ابتدا برای موبایل طراحی کنید و سپس برای دستگاه‌های بزرگ‌تر استایل اضافه کنید.

/* ابتدا طراحی برای موبایل */
body {
    font-size: 14px;
}

/* سپس برای تبلت */
@media (min-width: 600px) {
    body {
        font-size: 16px;
    }
}

/* سپس برای دسکتاپ */
@media (min-width: 1024px) {
    body {
        font-size: 18px;
    }
}

نتیجه: این روش باعث افزایش سرعت لود سایت در موبایل می‌شود.


۷. نتیجه‌گیری

🔹 Media Query به شما امکان می‌دهد استایل‌های مختلفی را برای اندازه‌های مختلف صفحه و دستگاه‌های خاص اعمال کنید.
🔹 با استفاده از Media Query می‌توان طراحی ریسپانسیو (واکنش‌گرا) ایجاد کرد که در موبایل، تبلت و دسکتاپ به‌درستی نمایش داده شود.
🔹 می‌توان چندین شرط را ترکیب کرد تا کنترل بیشتری بر روی نمایش محتوا داشت.
🔹 بهترین روش طراحی Mobile-First است، یعنی ابتدا برای موبایل طراحی کنید و سپس استایل‌های اضافی برای دستگاه‌های بزرگ‌تر اعمال کنید.

با یادگیری و استفاده درست از Media Query، می‌توان وب‌سایت‌هایی مدرن، حرفه‌ای و کاربرپسند طراحی کرد.

جلسه 54 – آموزش تنظیم عرض با min-width و max-width در CSS

در CSS، ویژگی‌های min-width و max-width برای تعیین حداقل و حداکثر عرض عناصر استفاده می‌شوند.

این ویژگی‌ها برای طراحی ریسپانسیو و جلوگیری از تغییر بیش‌ازحد اندازه عناصر بسیار مفید هستند. در این آموزش، کاربردهای min-width و max-width و نحوه استفاده از آن‌ها را بررسی خواهیم کرد.


۱. تفاوت بین min-width و max-width

ویژگیتوضیح
min-widthحداقل عرضی که یک عنصر می‌تواند داشته باشد (کوچک‌تر از این مقدار نمی‌شود)
max-widthحداکثر عرضی که یک عنصر می‌تواند داشته باشد (بزرگ‌تر از این مقدار نمی‌شود)

نتیجه: با استفاده از این ویژگی‌ها، می‌توان کنترل بهتری روی اندازه عناصر در صفحه‌های مختلف داشت.


۲. استفاده از min-width در CSS

ویژگی min-width مشخص می‌کند که یک عنصر حداقل چه عرضی داشته باشد، حتی اگر محتوای آن کم باشد.

.container {
    min-width: 300px;
    background-color: lightblue;
    padding: 20px;
}

نتیجه:

  • این عنصر حتی در صفحه‌های کوچک‌تر از ۳۰۰ پیکسل نیز حداقل این مقدار را حفظ خواهد کرد.
  • در صورتی که محتوای بیشتری در آن قرار بگیرد، می‌تواند بزرگ‌تر شود.

۳. استفاده از max-width در CSS

ویژگی max-width تعیین می‌کند که یک عنصر حداکثر چه عرضی می‌تواند داشته باشد، حتی اگر صفحه بزرگ باشد.

.container {
    max-width: 600px;
    background-color: lightcoral;
    padding: 20px;
}

نتیجه:

  • این عنصر هرگز عرضی بیشتر از ۶۰۰ پیکسل نخواهد داشت.
  • اگر صفحه کوچک‌تر از ۶۰۰ پیکسل باشد، عرض آن به‌طور خودکار کاهش می‌یابد.

۴. ترکیب min-width و max-width

می‌توان همزمان از min-width و max-width برای تنظیم محدوده مجاز برای عرض عناصر استفاده کرد.

.container {
    min-width: 300px;
    max-width: 800px;
    background-color: lightgreen;
    padding: 20px;
}

نتیجه:

  • عنصر حداقل ۳۰۰ پیکسل عرض خواهد داشت، حتی در صفحه‌های کوچک‌تر.
  • عنصر حداکثر ۸۰۰ پیکسل عرض خواهد داشت، حتی در صفحه‌های بزرگ‌تر.

۵. استفاده از min-width و max-width در طراحی ریسپانسیو

برای طراحی واکنش‌گرا، می‌توان این ویژگی‌ها را در Media Queries استفاده کرد.

.container {
    width: 100%;
    max-width: 1200px;
    min-width: 320px;
    margin: 0 auto;
}

نتیجه:

  • عنصر حداقل ۳۲۰ پیکسل و حداکثر ۱۲۰۰ پیکسل عرض خواهد داشت.
  • در صفحه‌های بزرگ، عرض آن ۱۰۰٪ صفحه خواهد شد، اما بیشتر از ۱۲۰۰px نخواهد شد.

۶. مثال کاربردی در طراحی تصاویر ریسپانسیو

تصاویر با استفاده از max-width: 100% می‌توانند متناسب با اندازه صفحه تغییر کنند.

img {
    max-width: 100%;
    height: auto;
}

نتیجه:

  • تصویر در صفحه‌های کوچک‌تر جمع می‌شود و از صفحه بیرون نمی‌زند.
  • ارتفاع به‌صورت نسبی تنظیم می‌شود تا تصویر کشیده نشود.

۷. نتیجه‌گیری

🔹 min-width برای تنظیم حداقل عرض مجاز یک عنصر استفاده می‌شود.
🔹 max-width برای جلوگیری از بزرگ‌تر شدن بیش‌ازحد عناصر کاربرد دارد.
🔹 ترکیب min-width و max-width به طراحی ریسپانسیو و انعطاف‌پذیر کمک می‌کند.
🔹 در تصاویر و لایه‌بندی سایت‌ها، این ویژگی‌ها باعث جلوگیری از بهم‌ریختگی در نمایشگرهای مختلف می‌شوند.

با رعایت این اصول، می‌توان وب‌سایت‌های حرفه‌ای و سازگار با تمامی دستگاه‌ها طراحی کرد.

ضبط پیام صوتی

زمان هر پیام صوتی 2 دقیقه است