خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه تغییر پویا رنگ در حین پیمایش با CSS

با این ویژگی CSS مفید، اما کمتر شناخته شده، یک مشکل رایج در تضاد رنگ را حل کنید.

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

برای رفع این مشکل، باید رنگ لوگو را هنگامی که روی عنصری با همان رنگ می رود، به صورت پویا معکوس کنید. یاد بگیرید که چگونه می توانید این اثر را فقط با استفاده از CSS و بدون نیاز به جاوا اسکریپت به دست آورید!

کد شروع را دانلود کنید

برای دنبال کردن این آموزش، کد شروع را از آن دانلود کنید
مخزن GitHub
به ماشین محلی شما

index.html را در یک مرورگر باز کنید که باید شبیه صفحه نشان داده شده در اینجا باشد:

اسکرین شات از پروژه شروع

صفحه HTML شامل یک لوگو و چهار بخش است. هر بخش دارای یک عنوان ساختگی و سه پاراگراف متن ساختگی است. متن لوگو همان رنگ مشکی پس زمینه قسمت دوم و چهارم است. این افکت از بلوک nth-child(even) در styles.css می آید که پس زمینه سیاه را روی بخش های زوج اعمال می کند.

چسبناک کردن لوگو

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

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

@media(width > 980px) {
  .logo {
    position: sticky;
    top: .5rem;
  }
}

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

مطلب مرتبط:   10 شغل و شغل برنامه نویسی کامپیوتر که تقاضای بالایی دارند

افزودن حالت ترکیبی به هدر چسبنده شما

برای اطمینان از اینکه لوگوی مشکی روی پس‌زمینه سیاه محو نمی‌شود، باید رنگ را به صورت پویا معکوس کنید. روشی که شما این کار را انجام می دهید با استفاده از ویژگی CSS mix-blend-mode و اختصاص مقدار تفاوت به آن است:

@media(width > 980px) {
  .logo {
    position: sticky;
    top: .5rem;
    mix-blend-mode: difference
  }
}

ویژگی CSS mix-blend-mode مشخص می کند که چگونه محتوای یک عنصر باید با محتوای والد عنصر و پس زمینه آن ترکیب شود. مقدار متفاوت، مقدار تفاوت هر پیکسل را می گیرد و رنگ های روشن را معکوس می کند. بنابراین اگر مقادیر رنگ یکسان باشد، سیاه می شوند. تفاوت در مقادیر معکوس خواهد شد.

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

.logo {
  color: white;
  /* Other CSS properties */
}

اکنون همه چیز را با موفقیت تنظیم کرده اید. صفحه را به پایین اسکرول کنید و به پس زمینه سیاه بروید. تغییر لوگو از سیاه به سفید را خواهید دید.

اسکرین شات از صفحه با لوگوی رنگی پویا

علاوه بر سیاه و سفید می توانید با رنگ های دیگری نیز کار کنید. برای مثال، اگر بخواهید رنگ متن لوگوی خود را به رنگ آبی (008080#) تغییر دهید، رنگ صورتی را در پس‌زمینه‌های سفید دریافت خواهید کرد. تصویر زیر گویای این موضوع است.

اسکرین شات از صفحه با آرم سبز و رنگ معکوس

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

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

استفاده از تصویر به عنوان لوگو به جای متن

این تکنیک فقط با متن کار نمی کند، بلکه با تصاویر نیز کار می کند. البته، باید مطمئن شوید که از یک تصویر سفید به عنوان لوگو استفاده می کنید. مثال زیر از یک لوگو سفید لورم ipsum استفاده می کند که در همان پوشه فایل index.html قرار دارد:

<img src="loremipsum-297.svg" alt="Lorem Ipsum Logo">

تصویر مورد استفاده در اینجا یک SVG (گرافیک برداری مقیاس پذیر)، نوعی از است
فایل برداری
.

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

اسکرین شات رنگ لوگو در پس زمینه سفید

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

اسکرین شات رنگ تصویر لوگو در پس زمینه سیاه

همچنین می توانید با جایگزین کردن اندازه قلم با ارتفاع و عرض در بلوک CSS که لوگو را هدف قرار می دهد، اندازه لوگو را افزایش دهید. از این گذشته، شما اکنون به جای متن، با یک تصویر سروکار دارید.

.logo {
  color: white;
  width: 10rem;
  /* Other CSS properties */
}

اگر صفحه را کوچک کنید، درخواست رسانه دیگر اعمال نخواهد شد. با این کار حالت های مختلف ترکیب خاموش می شود و لوگوی شما ناپدید می شود. برای بازگرداندن لوگو به صفحه، باید ویژگی mix-blend-mode را در لوگو خارج از درخواست رسانه تنظیم کنید:

.logo {
  color: white;
  width: 10rem;
  mix-blend-mode: difference;
  /* Other CSS properties */
}

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

مطلب مرتبط:   نحوه ایجاد افکت Hover Image در CSS

نکات و ترفندهای CSS را بیشتر بیاموزید

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

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