Jump to content
php.lv forumi

IE un png attēls caurspīdīgā div elementā.


Maris-S

Recommended Posts

Saskāros ar jaunu (priekš manis) problēmu png bildēm IE pārlūkā. Pārbaudīju IE8, bet domāju ka 7., 6. un 5 ar atbilstošu png caurspīdīguma hacku būs tas pats.

 

Tātad paša png caurspīdīguma atbalsts ir, strādā labi, bet kad png bildīte tiek ielikta div elementā, kam ir filter (daļējas caurspīdības) opcija, tā png bilde paliek tāda dīvaina ar tumšu toni, kādai viņai nevajadzētu būt. Pašai bildei jābūt ar caurspīdīgumu, ja ir bez, tad viss ir kārtībā.

 

<div style="filter:alpha(opacity=100)"><img src="images/transparent_image.png" alt=""></div>

 

Pie tam opacity var būt arī 100, vienīgi ja opacity ir tuvs 0 un neko neredz, tad protams neredz arī problēmu. Šī problēma neizpaužas arī tad, ja div elementam backgroundam piešķir kādu krāsu.

 

<div style="background: lime; filter:alpha(opacity=100)"><img src="images/transparent_image.png" alt=""></div>

 

Mozillā un operā (ar atbilstošajām css caurspīdības vērtībām) viss strādā labi. Varbūt kāds zin, kā varētu pielabot, lai strādātu arī IE pārlūkā?

Link to comment
Share on other sites

Principā ir viens risinājums, īstenībā līdzīga pieeja kā piemērā, ko iedeva Mefisto, nepētīju pat kas tur atšķiras īpaši, jo man vienalga tāda pieeja nederēs:

 

div#wrapper { /* block level elements support filters in IE */
opacity:.5; /* for FF, Safari, other browsers */
filter:alpha(opacity=50);
}
span#image{
display:inline-block;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://site/path/to/image.png', sizingMethod='scale');
height:150px; /* what ever width the image is */
width:150px; /* what ever height the image is */
}

 

Avots: http://channel9.msdn.com/forums/TechOff/257324-IE7-alpha-transparent-PNG--opacity

 

Problēma ir tā ka šajā gadījumā jāielādē bilde caur css, bet manā gadījumā bildes mainās ar javascript veidojot slideshowu, iespējams ka arī varēja to līdzīgi atrisināt, bet vieglāk sanāca izveidot bildi ar atbilstošo fonu un neizmantot caurspīdīgumu.

Link to comment
Share on other sites

Tai linkā ko es iedevu, zemak ir "flaws".

Tur ir aprakstītas problēmas.

 

Ja tev vajag slideshow tad tev ir jārēķinās ar šādām fīčām:

* tu nevari izmantio position: relative/absolute tiesā veidā uz elementiem kas satur bildes

* elementiem jābūt ar hasLayout ( http://haslayout.net/haslayout )

* tu nevarēsi izmantot <img /> tagus

* tev būs jāizmanto inline style vai javascrits

 

Ja tu izmanto inline veidā style="" tad tev ir jānosaka browseris server-pusē.

Tevi interesē IE6 un IE7 ( uz 8tā IE viss ir ok ).

 

 

P.S slideshow'os parasti neizmanto semi-transparetus attēlus

Link to comment
Share on other sites

Bubu, paldies par linku.

 

Mefisto, sorry, pasteidzos, nepaskrollēju uz leju, tā ir ka baigi jāsteidzās. Diemžēl IE8 ir arī tā problēma (nu, ja patiešo samazina opacity, kā rādīju piemēros, bez visādiem hackiem). Lieta tāda ka īpaši es to slideshowu nevaru pārtaisīt, nu varēt varu, bet tas ir no interneta nokopēts javascript kods, nav liels, bet vienalga ātrāk bija iekļaut fona bildi attēlos. Opacity tur tiek izmantots fade efektam, bilde mainās pirmajai lēnām izgaistot un nākošajai lēnām parādoties.

 

Vārdu sakot IE tā arī nav pilnīgi izveidojis png caurspīdīguma atbalstu.

Link to comment
Share on other sites

Thesnarkie, tāpēc ka priekšniecība un lielāka daļa mājas lapas apmeklētāju izmanto populārāko šodienas pārlūku un viņiem būs vienalga ka MS neseko web standartiem un nevar sataisīt bez bugiem savu pārlūku, pat ja uztaisīs, vienalga liela daļa neliks jaunāko versiju, bet saits ir jāuztaisa tāds kāds viņš ir sākotnēji paredzēts.

 

Visumā tomēr daļa patiesības Tavā teiktajā ir, nav jēga noņemties, tikai nevis ar IE problēmām, bet gan ar png caurspīdīgajiem attēliem, pēc šī buga sapratu ka labāk viņus izmantot pēc iespējas retāk, kur nu patiešām tas atvieglos dizaina veidošanu, nevis to sarežģīs.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...