loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 32 چهارشنبه 26 تیر 1398 نظرات (0)

به قسمت سوم از سری آموزشی CSS پیشرفته خوش آمدید! بحث امروز ما gradient ها (تلفظ اصلی: گِرِیدیِنت) است. gradient ها عناصر رنگی هستند که به صورت نرم به یکدیگر تبدیل می شوند. (در مثال ها خواهید دید). ما در CSS دو نوع از این gradient ها را داریم:

  • gradient های linear (خطی): این gradient ها به صورت مورب به جهات مختلف (مانند بالا، پایین، راست و چپ) می روند.
  • gradient های radial (شعاعی): یک مرکز دارند و به صورت شعاع برای آن مرکز حرکت می کنند.

بیایید هر دو نوع را بررسی کنیم.

انواع گرادینت در CSS

gradient های خطی

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

در کد بالا direction به معنی جهت است؛ یعنی اینکه gradient از کدام سمت به کدام سمت برود! حالت پیش فرض این مقدار بالا به پایین است. در مثال زیر سعی کرده ایم بین قرمز و زرد یک انتقال رنگی انجام دهیم:

مشاهده ی خروجی در JSBin

 

هشدار: Internet Explorer 9 و نسخه های قبل تر آن از گرادینت ها پشتیبانی نمی کنند.

در مثال بعدی می خواهیم این جهت را تغییر دهیم تا از چپ به راست تغییر کند:

مشاهده ی خروجی در JSBin

همانطور که گفتیم می توانیم این نوع از gradient ها را به صورت مورب نیز استفاده کنیم.

در مثال زیر گفته ایم که gradient از بالا و چپ شروع شده و سپس در نقطه ی پایین و راست تمام می شود:

مشاهده ی خروجی در JSBin

استفاده از زاویه ها

اگر می خواهید کنترل بیشتری روی gradient خود داشته باشید، می توانید به جای استفاده از جهات اصلی مانند بالا و پایین و … از زاویه ها استفاده کنید. در این صورت ساختار کلی این دستور به شکل زیر خواهد بود:

این زاویه، زاویه ی بین خطی افقی و خط gradient است. به مثال زیر دقت کنید:

مشاهده ی خروجی در JSBin

شما به دو رنگ محدود نیستید

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

مشاهده ی خروجی در JSBin

در مثال بعدی رنگ های رنگین کمان را به صورت یک gradient پیاده سازی کرده ایم و روی آن متنی نیز نوشته ایم:

مشاهده ی خروجی در JSBin

شفافیت (transparency)

نیازی ندارید که حتما 2 رنگ را به صورت دیداری و واضح تعیین کنید! می توانیم از قابلیت transparency و رنگ های ()rgba استفاده کنیم تا gradient خود را به آرامی به سمت شفافیت کامل (transparency) ببریم. در مثال زیر یک gradient داریم که از چپ و به صورت کاملا شفاف شروع شده است، سپس به آرامی تبدیل به رنگ قرمز می شود:

مشاهده ی خروجی در JSBin

تابع repeating-linear-gradient

می توانید با استفاده از تابع ()repeating-linear-gradient یک gradient را چندین بار و پشت سر هم تکرار کنید. به مثال زیر توجه کنید:

مشاهده ی خروجی در JSBin

Gradient های شعاعی

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

شکل پیش فرض این نوع از gradient ها بیضی شکل است (نه دایره ی کامل). بیایید چند مثال از آن حل کنیم تا بیشتر با آن آشنا شویم. ابتدا می خواهیم یک gradient شعاعی بسازیم که فاصله ی رنگ ها در آن یکسان باشد (حالت پیش فرض):

مشاهده ی خروجی در JSBin

حالا با تغییر دادن همین مثال می توانیم بگوییم که فاصله ی بین رنگ ها یکسان نباشد:

مشاهده ی خروجی در JSBin

تعیین دایره به جای بیضی

همانطور که گفتیم شکل پیش فرض Gradient های شعاعی بیضی است اما ما میتوانیم این مسئله را تغییر دهیم و با قرار دادن circle در آرگومان اول کد این gradient را از حالت بیضی خارج کنیم:

مشاهده ی خروجی در JSBin

همچنین می توانیم به راحتی اندازه ی این gradient ها را با مقادیر زیر عوض کنیم:

  • closest-side (نزدیک ترین – پهلو)
  • farthest-side (دور ترین – پهلو)
  • closest-corner (نزدیک ترین – گوشه)
  • farthest-corner (دور ترین – گوشه)

مشاهده ی خروجی در JSBin

تابع repeating-radial-gradien

تابع ()repeating-radial-gradien به ما اجازه می دهد که gradient را تکرار کنیم:

مشاهده ی خروجی در JSBin

امیدوارم درس آموزش گرادینت در css برایتان مفید بوده باشد.

منبع: روکسو

 
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 27
  • آی پی دیروز : 17
  • بازدید امروز : 186
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 260
  • بازدید ماه : 625
  • بازدید سال : 7,134
  • بازدید کلی : 35,369