Rgba সহ সিএসএস ব্যাকগ্রাউন্ড অস্বচ্ছতা IE 8 এ কাজ করছে না


110

আমি একটি এর পটভূমি অস্বচ্ছতার জন্য এই সিএসএস ব্যবহার করছি <div>:

background: rgba(255, 255, 255, 0.3);

এটি ফায়ারফক্সে ঠিকঠাক কাজ করছে, তবে IE 8 তে নয়? আমি কীভাবে এটি কাজ করব?

উত্তর:


73

একটি পিএনজি তৈরি করুন যা 1x1 পিক্সেলের চেয়ে বড় (ধন্যবাদ থার্ডডট) এবং এটি আপনার পটভূমির স্বচ্ছতার সাথে মেলে।

সম্পাদনা করুন: আইই 6 + সমর্থনের পিছনে ফিরে আসার জন্য, আপনি পিএনজি-র জন্য বিকেজিডি অংশ উল্লেখ করতে পারেন, এটি এমন একটি রঙ যা এটি সমর্থন না করা হলে সত্য আলফা স্বচ্ছতা প্রতিস্থাপন করবে। আপনি গিম্প উদাহরণস্বরূপ এটি ঠিক করতে পারেন।


2
হা. rgba()আইই 8 তে রঙের মানগুলি সমর্থিত নয়
পল ডি ওয়েট

11
একটি সম্ভাব্য সমস্যার এড়ানোর জন্য, যে কোনো আকারের ছাড়া অন্য ব্যবহার 1x1: stackoverflow.com/questions/7764751/...
thirtydot

43
2003 এ গ্রহণযোগ্য হবে তবে 2013 সালে নয় ither হয় পুরানো আইইতে কিছুটা সিমুলেটেড সমর্থনের জন্য -এমএস-ফিল্টার ব্যবহার করুন বা আরও ভাল, কেবল এটিকে এড়িয়ে যান। ব্যবহার IE8- প্রাপ্য মানুষ সীমান্ত ব্যাসার্ধ, স্বচ্ছ পটভূমি ইত্যাদি না এইজন্য শাস্তিযোগ্য
Evgeny

21
@ ইউজেনেক্সা আমি আমার গ্রাহকদের জন্য কাজ করি, অন্যভাবে নয়। তারা যদি আই 8 ব্যবহার করে তবে আমি এটি সমর্থন করি। সম্ভাব্য গ্রাহকদের শাস্তি দেওয়া ভাল ব্যবসা নয়।
এলি

14
@ ইউজেনেক্সা এটি আমার সাইটে 10% এর কাছাকাছি এবং এগুলি প্রায়শই ভাল গ্রাহক হয়। এখানে কোন একক সঠিক উত্তর নেই। গণিত করুন এবং আপনার জন্য কী কাজ করে তা নির্ধারণ করুন। এমনকি 6% কিছু সাইটের জন্য বিশাল হতে পারে! কোনও ব্যবহারকারীই শাস্তি পাওয়ার যোগ্য নয়। আমি মনে করি আপনি সেই মনোভাবের জন্য আফসোস করবেন।
এলি

241

আইজি তে আরজিবিএ এবং এইচএসএলএর পটভূমি অনুকরণ করতে, আপনি একই সূচনা এবং শেষ রঙের সাথে গ্রেডিয়েন্ট ফিল্টার ব্যবহার করতে পারেন (আলফা চ্যানেলটি এইচএক্সের মান হিসাবে প্রথম জুটি)

background: rgba(255, 255, 255, 0.3); /* browsers */
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4cffffff', endColorstr='#4cffffff'); /* IE */

2
এটি একটি ট্রিট কাজ করে, দুর্ভাগ্যক্রমে যদি উপাদানটি গতিশীলভাবে লুকানো থাকে এবং jQuery ব্যবহার করে পুনরায় দেখানো হয় তবে কাজ করা বন্ধ হবে বলে মনে হচ্ছে ...
জ্যাকোকনর

আরজিবা আইই ফিল্টারটি খুব কার্যকর ছিল এবং আমি>
আই

ফিল্টারটির জন্য 0.6 এর অস্বচ্ছতা কী?
Si8

10
(: স্বচ্ছতা জন্য হেক্স কোড (প্রথম যুগল) এখানে পাওয়া যাবে stackoverflow.com/questions/15852122/hex-transparency-in-colors )
user1794295

2
সেই আই কাস্টম হেক্স মানগুলির জন্য একটি ক্যালকুলেটর রয়েছে !
নাইটনফির

14

আমি বিশ্বাস করি এটি সর্বোত্তম কারণ এই পৃষ্ঠায় আলফা-স্বচ্ছ ব্যাকগ্রাউন্ড উত্পন্ন করতে আপনার একটি সহায়িকা রয়েছে:

" ক্রস ব্রাউজার আলফা স্বচ্ছ ব্যাকগ্রাউন্ড সিএসএস (আরজিবিএ) " (* এখন আর্কাইভ.অর্গের সাথে সংযুক্ত)

#div {
    background:rgb(255,0,0);
    background: transparent\9;
    background:rgba(255,0,0,0.3);
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cFF0000,endColorstr=#4cFF0000);
    zoom: 1;
}

এবং রেকর্ডার সর্বদা ফিল্টারে আরজিবিএ হেক্স রঙ ব্যবহার করে: eq # 004F80 # ed004F80 হয়
ব্যবহারকারী 956584

9

স্বচ্ছ png চিত্রটি আইই 6-- তে কাজ করবে না, বিকল্পগুলি হ'ল:

সিএসএস সহ:

.transparent {

    /* works for IE 5+. */
    filter:alpha(opacity=30); 

    /* works for IE 8. */
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";

    /* works for old school versions of the Mozilla browsers like Netscape Navigator. */
    -moz-opacity:0.3; 

    /* This is for old versions of Safari (1.x) with KHTML rendering engine */
    -khtml-opacity: 0.3; 

    /* This is the "most important" one because it's the current standard in CSS. This will work in most versions of Firefox, Safari, and Opera. */  
    opacity: 0.3; 
}

বা কেবল এটি jQuery দিয়ে করুন:

// a crossbrowser solution
$(document).ready(function(){ 
    $(".transparent").css('opacity','.3');
});

24
পটভূমি আলফা অস্বচ্ছতার মতো নয় (এটি শিশু উপাদানকে স্বচ্ছও করে তোলে না)।
আলেক্সি স্মোলিয়াভভ

1
এটি কোনও প্রশ্নের জবাব দিচ্ছে না বা সিএসএস jQuery (বা সাধারণভাবে জাভাস্ক্রিপ্ট) কোনও ক্রসব্রোজার সমাধানের মাধ্যমে প্রয়োগ করা হয়নি।
mystrdat

7

যদিও দেরী, আমি যে আজ ব্যবহার করতে ছিল এবং খুব দরকারী পিএইচপি স্ক্রিপ্ট পাওয়া এখানে যে কত পথ rgba কাজ মতো, আপনি পরিবর্তনশীল একটি PNG ফাইল তৈরি করতে অনুমতি দেবে।

background: url(rgba.php?r=255&g=100&b=0&a=50) repeat;
background: rgba(255,100,0,0.5);

স্ক্রিপ্টটি এখানে ডাউনলোড করা যেতে পারে: http://lea.verou.me/wp-content/uploads/2009/02/rgba.zip

আমি জানি এটি সবার জন্য নিখুঁত সমাধান নাও হতে পারে তবে কিছু ক্ষেত্রে এটি বিবেচনা করার মতো, যেহেতু এটি অনেক সময় সাশ্রয় করে এবং নির্বিঘ্নে কাজ করে। আশা করি যে কাউকে সাহায্য করবে!


2
এটি কীভাবে কাজ করে - rgba.php URL টি কেবলমাত্র সেই ব্রাউজারগুলির দ্বারা অনুরোধ করা হয় যা সমর্থন করে না rgba? বা সবসময় সব ব্যবহারকারীদের দ্বারা অনুরোধ করা হয়, এবং সহজভাবে প্রদর্শিত হয় না?
ড্যারেন কুক

আমার আশা এই যে ব্রাউজারটি একটি অনুরোধ করার চেষ্টা করার আগে স্বয়ংক্রিয়ভাবে দ্বিতীয় পটভূমিটি দেখতে এবং প্রথমটিকে উপেক্ষা করবে। তবে, এটি সর্বাধিক শিক্ষিত অনুমান।
সুইভেল

7

সিএসএসে বেশিরভাগ ব্রাউজার সমর্থন আরজিবিএ কোড রয়েছে তবে কেবল আইই 8 এবং নীচে স্তরগুলি আরজিবিএস সিএস কোড সমর্থন করে না। এর জন্য এখানে সমাধান। সমাধানের জন্য আপনাকে অবশ্যই এই কোডটি অনুসরণ করতে হবে এবং এর ক্রমটি অনুসরণ করা ভাল better নইলে আপনি নিজের ইচ্ছানুযায়ী নিখুঁত আউটপুট পাবেন না। এই কোডটি আমার দ্বারা ব্যবহৃত হয় এবং এটি বেশিরভাগ ক্ষেত্রে নিখুঁত। এটি নিখুঁত হলে মন্তব্য করুন।

.class
 {
        /* Web browsers that does not support RGBa */
        background: rgb(0, 0, 0);
        /* IE9/FF/chrome/safari supported */
        background: rgba(0, 0, 0, 0.6);
        /* IE 8 suppoerted */
        /* Here some time problem for Hover than you can use background color/image */
        -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000, endColorstr=#88000000)";
        /* Below IE7 supported */
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000, endColorstr=#88000000);
 }

5

অস্বচ্ছতা পরিবর্তন করতে আপনি CSS ব্যবহার করেন। আইই সামাল দিতে আপনার এমন কিছু দরকার:

.opaque {
    opacity : 0.3;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
    filter: alpha(opacity=30);
}

তবে এটির সাথে একমাত্র সমস্যাটি হ'ল এর অর্থ পাত্রে থাকা অভ্যন্তরের যে কোনও কিছুই হ'ল ০.২ অস্বচ্ছতাও বটে। সুতরাং আপনাকে আপনার এইচটিএমএলকে অন্য কন্টেইনারে পরিবর্তন করতে হবে, স্বচ্ছের অভ্যন্তরে নয়, এতে আপনার সামগ্রী রয়েছে।

অন্যথায় png কৌশল, কাজ করবে। আইআই for এর জন্য আপনার কোনও স্থির প্রয়োজন বাদে এটি নিজেই সমস্যার কারণ হতে পারে।


4
একটি ব্রাউজারের হাহা সাধারণ ক্ষেত্রে অন্যের মতো কাজ করে না, এবং সেই ব্রাউজারের প্রতিটি সংস্করণ একই ব্রাউজারের অন্যান্য সংস্করণের মতো অভিনয় করে না ... কেবল মাইক্রোসফ্ট এটিকে এতো সফলভাবে অর্জন করতে পারে ...
ক্লারকিবয়

3
@ পল ডি ওয়েইট: ব্রাউজারগুলি কীভাবে বিষয়বস্তু সরবরাহ করে তা ছাড়াও অনেকগুলি, অনেকগুলি বৈশিষ্ট্য রয়েছে। অনুমান থেকে বিচ্যুতি কোনও বৈশিষ্ট্য নয় (বা হওয়া উচিত নয়)।
ববি জ্যাক

@ পোল ডি ওয়েইট: ঠিক আছে আমি আপনার বক্তব্যটি দেখতে পাচ্ছি, তবে আমার অর্থ হ'ল আই এর বিভিন্ন সংস্করণ এতই আলাদা কাজ করে যে আমি নিজেকে প্রতিটি সংস্করণের জন্য আলাদা স্টাইলশিট তৈরি করতে দেখি ... আইই 6, 7 এবং আমার জন্য আলাদা স্টাইলশিট রয়েছে 8 ... তবুও আমার কাছে কেবল সমস্ত এফএফ / ক্রোম / অপেরা / সাফারি এর জন্য একটি স্টাইলশিট রয়েছে। @ ববি জ্যাক: সেকেন্ডেড ...
ক্লারকিবয়

@ ববি: অবশ্যই, তবে আইই 8 অবশ্যই আই 7 বা আইই 6 এর চেয়ে বেশি স্ট্যান্ডার্ড থেকে বিচ্যুত হবে না?
পল ডি ওয়েট

@ ক্লারকিবয়: নিশ্চিত আমি দেখতে পেয়েছি আমার আই 8 স্টাইলশিটটি যদিও আমার আই 6 6 স্টাইলশিটের চেয়ে অনেক সহজ সরল। IE হ'ল ব্রাউজারগুলির মধ্যে বিজোড়, তবে এটি অন্যদের সাথে ধীরে ধীরে সারিবদ্ধ হয়। ফায়ারফক্স rgba()3 সংস্করণ 3 পর্যন্ত সমর্থন করে না, এবং অপেরা 10 সংস্করণ পর্যন্ত এটি সমর্থন করে না
পল ডি ওয়েট

4

আমি পার্টিতে দেরি করছি, তবে অন্য কারও কাছে যারা এটি খুঁজে পায় - এই নিবন্ধটি খুব দরকারী: http://kilianvalkhof.com/2010/css-xhtml/how-to-use-rgba-in-ie/

এটি শক্ত তবে স্বচ্ছ রঙ প্রদর্শন করতে গ্রেডিয়েন্ট ফিল্টার ব্যবহার করে।



2

rgbaআইইতে পটভূমি ব্যবহার করার জন্য একটি ফ্যালব্যাক রয়েছে।

আমাদের ফিল্টার সম্পত্তি ব্যবহার করতে হবে। যে ব্যবহার করেARGB

    background:none;
    -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff,endColorstr=#33ffffff);
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff,endColorstr=#33ffffff);
    zoom: 1;

এই জন্য ফ্যালব্যাক rgba(255, 255, 255, 0.2)

#33ffffffআপনার অনুযায়ী পরিবর্তন করুন ।

কীভাবে গণনা ARGBকরা যায়RGBA


আরজিবিএ রূপান্তরকারীকে চিরকালের জন্য সেই এআরজিবি খুঁজছিল, ধন্যবাদ! web.archive.org/web/20131207234608/http://kilianvalkhof.com/…
জাস্টিন

1

আইই 8-তে সমস্যাটি সমাধান করার জন্য এটি আমার পক্ষে কাজ করেছে:

-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)";

চিয়ার্স


1

এই সমাধানটি সত্যিই কাজ করে, এটি চেষ্টা করে। আইই 8 তে পরীক্ষিত

.dash-overlay{ 
   -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4C000000,endColorstr=#4C000000)"; 
}

0

এটি আপনাকে খুব সহজেই দিতে হবে আপনাকে প্রথমে আপনাকে আরজিবি হিসাবে ব্যাকগ্রাউন্ড দিতে হবে কারণ ইন্টারনেট এক্সপ্লোরার 8 এর পরিবর্তে আরজিবি আরজিবি সমর্থন করবে এবং তারপরে আপনাকে ধূলোব্যাধি দিতে হবে filter:alpha(opacity=50);

background:rgb(0,0,0);
filter:alpha(opacity=50);

0

আই ই এক্স সহ বেশিরভাগ ব্রাউজারের জন্য এটি স্বচ্ছতার সমাধান

.transparent {
    /* Required for IE 5, 6, 7 */
    /* ...or something to trigger hasLayout, like zoom: 1; */
    width: 100%; 

    /* Theoretically for IE 8 & 9 (more valid) */   
    /* ...but not required as filter works too */
    /* should come BEFORE filter */
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";

    /* This works in IE 8 & 9 too */
    /* ... but also 5, 6, 7 */
    filter: alpha(opacity=50);

    /* Older than Firefox 0.9 */
    -moz-opacity:0.5;

    /* Safari 1.x (pre WebKit!) */
    -khtml-opacity: 0.5;

    /* Modern!
    /* Firefox 0.9+, Safari 2?, Chrome any?
    /* Opera 9+, IE 9+ */
    opacity: 0.5;
}

0

সবচেয়ে ভালো সমাধান আমি এতদূর পাওয়া তার ডেভিড জে Marland দ্বারা প্রস্তাবিত এক ব্লগ , পুরাতন ব্রাউজার (আইই 6+) সমর্থন অস্বচ্ছতা করুন:

.alpha30{
    background:rgb(255,0,0); /* Fallback for web browsers that don't support RGBa nor filter */ 
    background: transparent\9; /* backslash 9 hack to prevent IE 8 from falling into the fallback */
    background:rgba(255,0,0,0.3); /* RGBa declaration for browsers that support it */
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cFF0000,endColorstr=#4cFF0000); /* needed for IE 6-8 */
    zoom: 1; /* needed for IE 6-8 */
}

/* 
 * CSS3 selector (not supported by IE 6 to IE 8),
 * to avoid IE more recent versions to apply opacity twice
 * (once with rgba and once with filter)
 */
.alpha30:nth-child(n) {
    filter: none;
}

0

অনেকগুলি অনুসন্ধানের পরে, আমি নিম্নলিখিত সমাধানগুলি পেয়েছি যা আমার ক্ষেত্রে কাজ করছে:

.opacity_30{
    background:rgb(255,255,255); /* Fallback for web browsers that don't support neither RGBa nor filter */ 
    background: transparent\9; /* Backslash 9 hack to prevent IE 8 from falling into the fallback */
    background:rgba(255,255,255,0.3); /* RGBa declaration for modern browsers */
    -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4CFFFFFF,endColorstr=#4CFFFFFF); /* IE 8 suppoerted; Sometimes Hover issues may occur, then we can use transparent repeating background image :( */
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4CFFFFFF,endColorstr=#4CFFFFFF); /* needed for IE 6-7 */
    zoom: 1; /* Hack needed for IE 6-8 */
}

/* To avoid IE more recent versions to apply opacity twice (once with rgba and once with filter), we need the following CSS3 selector hack (not supported by IE 6-8) */
.opacity_30:nth-child(n) {
    filter: none;
}

* গুরুত্বপূর্ণ: আরজিবিএ থেকে এআরজিবি (আইইএস এর জন্য) গণনা করতে, আমরা অনলাইন সরঞ্জামগুলি ব্যবহার করতে পারি:

  1. https://kilianvalkhof.com/2010/css-xhtml/how-to-use-rgba-in-ie/
  2. http://web.archive.org/web/20131207234608/http://kilianvalkhof.com/2010/css-xhtml/how-to-use-rgba-in-ie/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.