شفافیت پس زمینه css - پس زمینه شفاف خاکستری. چگونه شفافیت تصویر پس زمینه را در CSS تنظیم کنیم؟ پس زمینه شفاف css

روز بخیر، متخصصان توسعه وب، و همچنین مبتدیان آن. برای کسانی که روندهای حوزه فناوری اطلاعات یا به عبارتی مد وب را دنبال نمی کنند، می خواهم به طور جدی اعلام کنم که این نشریه با موضوع: "چگونه یک شفاف ایجاد کنیم" است. بلوک cssابزار" درست به موقع برای شما. در واقع، در سال 2016، معرفی انواع خدمات آنلاین به اشیاء شفافحرکتی شیک در نظر گرفته شده است.

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

روش 1. Antediluvian

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

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

روش 2. سردرگم نیست

در موارد نادر، توسعه دهندگان مشکل معرفی یک تصویر نیمه شفاف را با قرار دادن ... یک تصویر نیمه شفاف از قبل تمام شده حل می کنند! برای این کار از تصاویر ذخیره شده با فرمت PNG-24 استفاده می شود. این فرمت گرافیکی به شما امکان می دهد 256 سطح شفافیت را تنظیم کنید.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 مثال 1

مثال 1

متن در تصویر با فرمت png.

با این حال، این روش به چند دلیل راحت نیست:

  1. اینترنت اکسپلورر 6 با این فناوری کار نمی کند، باید برای آن کد اسکریپت بنویسید.
  2. شما نمی توانید رنگ پس زمینه را در css تغییر دهید.
  3. اگر عملکرد نمایش تصویر در مرورگر غیرفعال باشد، ناپدید می شود.

روش 3. تبلیغ شد

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

مقدار پارامتر در محدوده متفاوت است، جایی که در 0 شی نامرئی است و در 1 به طور کامل نمایش داده می شود. با این حال، در اینجا لحظات ناخوشایندی وجود دارد.

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

دوم اینکه اینترنت اکسپلورر دوباره دماغه اش را بالا می آورد و تا نسخه 8 با آن کار نمی کند کدورت.

برای حل این مشکل استفاده کنید فیلتر:آلفا (کدورت=مقدار).

یک مثال را در نظر بگیرید.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 مثال 2

مثال 2

در فروشگاه ما انواع گل ها را خواهید یافت.

روش 4. مدرن

امروزه متخصصان از ابزار rgba (r, g, b, a) استفاده می کنند.

قبل از آن گفتم که RGB یکی از مدل های رنگی پرطرفدار است که در آن R تمام سایه های قرمز، G - سایه های سبز و B - سایه های آبی را بر عهده دارد.

در صورت پارامتر cssمتغیر A مسئول کانال آلفا است که به نوبه خود مسئول شفافیت است.

مزیت اصلی آخرین راه- کانال آلفا بر اشیاء داخل بلوک استایل دهی شده تأثیر نمی گذارد.

rgba (r، g، b، a) پشتیبانی می شود زیرا:

  • 10 نسخه اپرا;
  • اینترنت اکسپلورر 9;
  • سافاری 3.2;
  • 3 نسخه فایرفاکس.

من می خواهم توجه داشته باشم حقیقت جالب! اینترنت اکسپلورر 7 محبوب هنگام ترکیب یک ویژگی خطا می دهد رنگ پس زمینهبا نام رنگ ها (زمینه-رنگ: طلایی). بنابراین، شما فقط باید استفاده کنید:

رنگ پس‌زمینه: rgba (255، 215، 0، 0.15)

و حالا یک مثال.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 مثال 3
در فروشگاه ما انواع گل ها را خواهید یافت.

مثال 3

در فروشگاه ما انواع گل ها را خواهید یافت.

توجه داشته باشید که محتوای متنی بلوک کاملاً قابل مشاهده است (100٪ سیاه)، در حالی که پس‌زمینه روی کانال آلفا 0.88 تنظیم شده است. 88 درصد

این پست به پایان رسید. در وبلاگ من عضو شوید و فراموش نکنید که دوستان خود را دعوت کنید. در یادگیری زبان های وب موفق باشید! خداحافظ!

شرح

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

نحو

رنگ پس زمینه:<цвет>| شفاف | به ارث می برند

ارزش های

transparent یک پس زمینه شفاف را تنظیم می کند. inherit ارزش والد را به ارث می برد.

HTML5 CSS2.1 IE Cr Op Sa Fx

رنگ پس زمینه

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet، consectetuer adipiscing elit، sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

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

برنج. 1. رنگ پس زمینه را اعمال کنید

مدل شی

document.getElementById("elementID").style.backgroundColor

مرورگرها

اینترنت اکسپلورر تا نسخه 7.0 از مقدار ارثی پشتیبانی نمی کند.

شفافیت مستقیم تصویر پس زمینه(حداقل برای سال 2016) نمی توانید از طریق CSS (از جمله CSS 3) نصب کنید. راه حل های زیادی برای این مشکل وجود دارد.

ترکیب پس زمینه ها

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

پس زمینه: url("/images/img1.jpg")، rgba(255,255,255,0.9); پس زمینه-ترکیب-حالت: رنگ.

افزودن یک عنصر شبه

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

با موقعیت: مطلق; قبل (یا بعد از) #main و در همان ارتفاع #main، سپس پس‌زمینه-تصویر و opacity را اعمال کنید: 0.2; .

#main ( موقعیت: نسبی؛ ) #main:after ( محتوا: ""؛ نمایش: بلوک؛ موقعیت: مطلق؛ بالا: 0؛ سمت چپ: 0؛ تصویر پس زمینه: url(/wp-content/uploads/2010/11 /tandem.jpg؛ عرض: 100%؛ ارتفاع: 100%؛ کدورت: 0.2؛ z-index: -1؛ )

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

شفافیت را برای پس زمینه css تنظیم کنید

بنابراین، همه اینها به لطف فرمت ضبط رنگی مانند rgba بسیار ساده انجام می شود. اگر با ویرایشگرهای گرافیکی کار می کنید، احتمالاً می دانید که حالت رنگ rgb به صورت زیر رمزگشایی می شود: نسبت قرمز (قرمز)، نسبت سبز (سبز) و آبی (آبی). بنابراین ، rgba تقریباً یکسان است ، فقط یک پارامتر دیگر اضافه شده است - شفافیت. اینگونه نوشته شده است:

رنگ پس‌زمینه: rgba (173، 57، 22، 0.5)

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

اکنون می دانید که چگونه برای ویژگی پس زمینه در css شفافیت تنظیم کنید. برای این کار باید از حالت رنگ rgba استفاده کنید. یک ویژگی opacity نیز وجود دارد، اما برای کل عنصر به عنوان یک کل اعمال می شود. یعنی هنگام اعمال opacity می توان شفافیت را نیز روی متن اعمال کرد که باعث ناخوانایی آن می شود.

مثال پس زمینه شفاف

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

و حالا بیایید همان رنگ مشکی را برای بلوک تنظیم کنیم، اما آن را با استفاده از فرمت رنگ rgba مشخص کنیم، برای مثال آخرین مقدار را 0.7 تعیین کنیم. اینجوری میشه:
اکنون پس زمینه بلوک شفاف است و تصویر پس زمینه از طریق آن قابل مشاهده است. این تصویر و پس زمینه فقط برای مصور است. همانطور که می فهمید، در پس زمینه cssوقتی می‌خواهید پس‌زمینه یک عنصر تودرتو بدون پنهان کردن پس‌زمینه‌های دیگر در لایه‌های دیگر، نمایش داده شود، شفافیت می‌تواند مفید باشد.

تنظیم رنگ به خودی خود با استفاده از rgba دشوار نیست. همانطور که قبلا ذکر شد، سه حرف اول به معنای سه رنگ اصلی: قرمز، سبز و آبی یا بهتر است بگوییم سهم آنها (از 0 تا 255) است. با تنظیم مقادیر مختلف می توانید میلیون ها رنگ مختلف دریافت کنید و شفافیت به شما این امکان را می دهد که در صورت لزوم افکت های زیبای زیادی برای سایت داشته باشید.

CSS از ویژگی opacity برای ایجاد یک افکت شفاف استفاده می کند.

IE8 و نسخه‌های قبلی از یک ویژگی جایگزین پشتیبانی می‌کنند - filter:alpha(opacity=x)، که در آن "x" می‌تواند مقداری از 0 تا 100 بگیرد، هر چه مقدار کوچک‌تر باشد، عنصر شفاف‌تر خواهد بود.

همه مرورگرهای دیگر از استاندارد پشتیبانی می کنند ویژگی CSS opacity، که می تواند عددی از 0.0 تا 1.0 را به عنوان مقدار در نظر بگیرد، هر چه مقدار کوچکتر باشد، عنصر شفاف تر خواهد بود:

نام سند تلاش كردن "

شفافیت شناور

Pseudo-class:hover به شما امکان تغییر را می دهد ظاهرعناصر هنگامی که با نشانگر ماوس روی آنها قرار می گیرند. ما از این ویژگی برای از دست دادن شفافیت تصویر هنگام شناور استفاده خواهیم کرد:

نام سند تلاش كردن "

شفافیت پس زمینه

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

شاید قبلاً با مدل نمایش رنگ RGB آشنا شده باشید. RGB (قرمز، سبز، آبی - قرمز، سبز، آبی) - یک سیستم رنگی است که رنگ را با ترکیب قرمز، سبز و آبی تعیین می کند. به عنوان مثال، برای تنظیم رنگ متن روی زرد، می توانید از هر یک از اعلان های زیر استفاده کنید:

رنگ: rgb(255,255,0); رنگ: rgb(100%,100%,0);

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

اعلان رنگ RGBA از نظر نحو شبیه به قوانین استاندارد RGB است. با این حال، در میان چیزهای دیگر، باید مقدار را به عنوان RGBA (به جای RGB) اعلام کنیم و یک مقدار شفافیت اعشاری اضافی را بعد از مقدار رنگ بین 0.0 (کاملا شفاف) و 1 (کاملاً مات) تنظیم کنیم.

رنگ: rgba(255,255,0,0.5); رنگ: rgba(100%,100%,0,0.5);

تفاوت بین ویژگی Opacity و RGBA در این است که ویژگی opacity شفافیت را برای کل عنصر اعمال می کند، یعنی کل محتوای عنصر شفاف می شود. و RGBA به شما امکان می دهد شفافیت را تنظیم کنید قطعات جداعنصر (به عنوان مثال، فقط متن یا پس زمینه):

متن (تصویر پس‌زمینه: url(img.jpg)؛ .prim1 (عرض: 400 پیکسل؛ حاشیه: 30 پیکسل 50 پیکسل؛ رنگ پس‌زمینه: #ffffff؛ حاشیه: 1 پیکسل سیاه و سفید؛ وزن قلم: پررنگ؛ کدورت: 0.5؛ فیلتر : alpha(opacity=70); /*برای IE8 و نسخه های قبلی*/ text-align: center; ) .prim2 (عرض: 400px؛ حاشیه: 30px 50px؛ پس زمینه رنگ: rgba(255,255,255,0.5)؛ حاشیه: 1px ثابت سیاه؛ وزن فونت: پررنگ؛ تراز متن: مرکز؛ ) امتحان کنید »

توجه: مقادیر RGBA در IE8 و بالاتر پشتیبانی نمی‌شوند نسخه های اولیه. برای اعلام بازگشت رنگ برای مرورگرهای قدیمی که از مقادیر رنگی با کانال های آلفا پشتیبانی نمی کنند، ابتدا آن را قبل از مقدار RGBA مشخص کنید: پس زمینه: rgb(255,255,0); پس زمینه: rgba(255,255,0,0.5);