مدیا کوئری‌ها

10 دی

استفاده از مدیا کوئری‌ها (Media Query) در واقع روشی است که بتوانیم برای دستگاه‌های مختلف که ویژگی‌های متفاوتی دارند استایل‌های CSS متفاوتی را تعریف کنیم. این ایده اولین بار در CSS نسخه‌ی ۲ تحت عنوان دستورهای media@ معرفی شد اما اقبال چندانی نیافت. در نسخه‌ی سوم CSS این امکان به شکل کوئری‌های مدیا درآمد که به جای بررسی نوع دستگاه، قابلیت‌های هر دستگاه را بررسی می‌کند.

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

نحوه استفاده از مدیا کوئری

ساختار کلی یک مدیا کوئری به شکل زیر است:

@media not|only mediatype and (expressions) {
  CSS-Code;
}

در واقع مجموع دستورهای CSS را با این ساختار گروه‌بندی می‌کنیم و هرکدام از دسته‌ها که با شرایط مدیای خود بخواند، اجرا می‌شوند. شرایط مدیا شامل mediatype و شروط expressions هستند که هر دو باید در وضعیت true قرار بگیرند تا کدهای درون مدیا اجرا شود.

اگر از only به عنوان محدودکننده و از not به عنوان منفی‌کننده استفاده نکنید، مشخص کردن نوع mediatype اختیاری است و اگر استفاده نشود همه انواع دستگاه‌ها مد نظر قرار می‌گیرد. انواع واژگانی که می‌توانید به عنوان mediatype به کار ببرید به شرح زیر است:

نوع مدیاتوضیح
screenفقط برای نمایش‌گرها به کار می‌رود.
printبرای پرینترها کاربرد دارد.
speechبرای دستگاه‌های خوانش به کار می‌رود.
allهمه انواع دستگاه‌ها رو مد نظر قرار می‌دهد.

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

اسم شرطتوضیح
aspect-ratioنسبت طول به عرض صفحه وب.
max-aspect-ratioحداکثر نسبت طول به عرض صفحه وب.
min-aspect-ratioحداقل نسبت طول به عرض صفحه وب.
heightطولی که صفحه وب در آن نمایش داده می‌شود.
max-heightحداکثر طولی که صفحه وب در آن نمایش داده می‌شود.
min-heightحداقل طولی که صفحه وب در آن نمایش داده می‌شود.
widthعرضی که صفحه وب در آن نمایش داده می‌شود.
max-widthحداکثر عرضی که صفحه وب در آن نمایش داده می‌شود.
min-widthحداقل عرضی که صفحه وب در آن نمایش داده می‌شود.
orientationجهت‌گیری دستگاه که دو مقدار portrait و landscape دارد.

چند مثال

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

@media only screen and (max-width: 320px){
  body{
    color: red;
  }
}

می‌خواهیم بنویسیم اگر صفحه وب افقی باشد اندازه فونت ۱۴ و در غیر این صورت ۱۲ پیکسل باشد. می‌توان نوشت:

@media only screen and (orientation: landscape) {
  body {
    font-size: 14px;
  }
}
@media only screen and (orientation: portrait) {
  body {
    font-size: 12px;
  }
}

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

@media only screen and (min-aspect-ratio: 3/2){
  body{
    background-color: #ccc;
  }
}

می‌خواهیم اگر طول صفحه وب بیشتر از ۳۰۰ پیکسل باشد، برای عرض‌های کم‌تر از ۳۲۰ پیکسل یا عرض‌های بیش‌تر از ۱۰۰۰ پیکسل، رنگ پس‌زمینه آبی شود. با استفاده از کاما‌ به عنوان اوپراتور OR می‌توان نوشت:

@media (min-height: 300px) and (max-width: 320px),
       (min-height: 300px) and (min-width: 1000px) {
  body{
    background-color: blue;
  }
}

سخن آخر

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

<link rel="stylesheet" media="not|only mediatype and (expressions)" href="style.css">

همان‌طور که می‌بینید ترکیب بسیار شبیه به موارد توضیح داده شده است. در واقع هم mediatype و هم expressions داخل attribute مدیا قرار می‌گیرند و اگر صحت هردو برقرار باشد، فایل style.css لود می‌شود.

10 دی دسته‌هاجاوااسکریپت برچسب‌هاجاوااسکریپت

10 متد مفید جاوااسکریپت در رابطه با آرایه‌ها

سلام دوستان. امیدوارم حالتون خوب باشه. در موقع کار کردن با جاوااسکریپت یکی از مواردی که زیاد استفاده می‌شه آرایه‌ها هستند و برای کار کردن با آرایه‌ها باید بتونید اون‌ها رو به شکل دلخواهتون دست‌کاری کنید. در این‌جا مقاله‌ای رو باهم مرور می‌کنیم که 10 متد مفید و مهم رو برای کار کردن با آرایه‌ها بررسی و با مثال بیان کرده. البته ممکن هست که بعضی جاها رو با توضیح بیش‌تر یا به شکل متفاوتی بیان کنم. لینک اصلی مقاله رو هم براتون آخر مقاله می‌ذارم.

10 دی دسته‌هاجاوااسکریپت برچسب‌هاdata binding، اتصال داده، و جاوااسکریپت

مفاهیم اولیه‌ی اتصال داده (data binding) در جاوااسکریپت

یکی از مهم‌ترین الگوهای توسعه‌ی اپلیکیشن‌های جاوااسکریپتی، جدا کردن داده‌ها و ظاهر اپلیکیشن از همدیگر و اتصال این دو به یکدیگر به شکل یک‌سویه یا دوسویه است. به طوری که با تغییر داده، ظاهر مرتبط با آن داده عوض و به شکل متقابل با تغییر در ظاهر برنامه (مانند پر کردن فرم یا تغییر مکان یک شی) داده مرتبط با آن دچار تغییر شود. امروزه اتصال داده در اپلیکیشن‌های تحت وب برای برنامه‌نویس از نان شب واجب‌تر است! البته فریم‌ورک‌های متداول مانند ReactJs، این اتصال داده را به خوبی برای برنامه‌نویسان پیش‌بینی کرده‌اند و در این مقاله قرار نیست فریمورک توسعه بدهیم. اما به دلایلی خوب است اساس و اصول اتصال داده در جاوااسکریپت را درک کنیم. برای فهمیدن این دلایل و کشف راز اتصال داده در جاوااسکریپت با من همراه شوید.

10 دی دسته‌هاجاوااسکریپت برچسب‌هاPromise و جاوااسکریپت

Promiseها در جاوااسکریپت - بخش چهارم (آخر)

در این بخش از مقاله که بخش پایانی سری مقالات Promise‌ها است پروژه‌ای که تعریف کرده بودیم را تکمیل می‌کنیم و نکات ارزشمندی پیرامون استفاده‌ی حرفه‌ای از Promiseها بیان می‌کنیم. با من همراه باشید.

10 دی دسته‌هاجاوااسکریپت برچسب‌هاMap، Set، و جاوااسکریپت

Map و Set در جاوااسکریپت

اکثر برنامه نویسان با ساختارهای دلده آرایه و آبجکت آشنایی دارند اما در عمل این دو نوع ساختار کافی نبوده‌اند. برای همین ساختارهای Map و Set در جاوااسکریپت معرفی شده‌اند که در ادامه آن‌ها را بررسی می‌کنیم. بنابراین با ما همراه باشید.