Autor | Zpráva | ||
---|---|---|---|
Petroff Profil |
#1 · Zasláno: 27. 1. 2008, 21:37:42
Řešení:
selektor { ....... ;background: url(image.png)...;} Pro korektní zobrazení i v ie6 lze převést na: selektor { ....... } html>body selektor {background: url(image.png)...;} * html selektor {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png',sizingMethod='scale');} V jednotlivých případech je vše OK, ale IE6 umí potrápit: klasické použití 3 obrázků vedle sebe - prostřední natahovací v x-směru: <div id="paticka"> <div class="paticka1"></div> <div class="paticka2"> ..... </div> <div class="paticka3"></div> </div> .paticka1 {float:left; width:26px; height:48px; } html>body .paticka1 {background:url(../images/paticka1.png) no-repeat;} * html .paticka1 {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../ima ges/paticka1.png',sizingMethod='scale');} .paticka2 {float:left; width:733px; height:31px; padding:17px 0 0 0; } html>body .paticka2 {background:url(../images/paticka2.png) repeat-x;} * html .paticka2 {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../ima ges/paticka2.png',sizingMethod='scale');} .paticka3 {float:left; width:26px; height:48px; } html>body .paticka3 {background:url(../images/paticka3.png) no-repeat;} * html .paticka3 {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/paticka3.png',sizingMethod='scale');} Mezi druhým a třetím blokem se objeví 1pixelová mezera, tvořená pozadím 2.bloku Ale nemusí. Zkoušeno s jinými obrázky a jinými jednotlivými hodnotami width a height se někdy objevuje a někdy ne. Záhada je, na čem to závisí (rozhodně ne na pozici v layoutu) Docela to štve - pokud na to někdo přijde, má mé gratulace. Jinak použití prostředního png bez repeat-x vzniku skuliny zabrání, horší je, že se zobrazí trochu světlejší. Taky neznám důvod. >>> v ostatních browserech je to ve všech případech OK <<< |
||
Davex Profil |
#2 · Zasláno: 27. 1. 2008, 22:39:19
A když by byla paticka2 se sudými rozměry, tak by to náhodou nepomohlo?
|
||
Miloš Profil |
#3 · Zasláno: 27. 1. 2008, 22:47:58
A co jednoduché řešení pomocí iepngfix.htc?
Zdroj je http://www.twinhelix.com a tady na fóru o tom vcelku nedavno habendorf: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=5&topic=61 388 |
||
Miloš Profil |
#4 · Zasláno: 27. 1. 2008, 22:48:48
horší je, že se zobrazí trochu světlejší
Za tohle prý může jakási gamma-korekce či co |
||
Petroff Profil |
#5 · Zasláno: 27. 1. 2008, 22:49:12
Toto je horní a spodní hrana sloupce se zaoblenými rohy.
Spodní je v pořádku, horní s mezerou. .stredhore1 {float:left; width:25px; height:34px; } .stredhore2 {float:left; width:398px; height:34px; } suda => ERROR .stredhore3 {float:left; width:27px; height:34px; } .streddole1 {float:left; width:33px; height:22px; } .streddole2 {float:left; width:385px; height:22px; } licha => OK .streddole3 {float:right; width:32px; height:22px; } asi to není ono |
||
Petroff Profil |
#6 · Zasláno: 27. 1. 2008, 22:52:05
To Miloš
Chci se vyhnout použití JS |
||
Miloš Profil |
#7 · Zasláno: 27. 1. 2008, 22:58:49
Petroff
Jak je libo; jen mi to připadá jako drbání se levou nohou za pravým uchem. Obzvlášť když průsvitné png umí už i IE7, zatímco podíl IE6 bude stále klesat. |
||
Petroff Profil |
#8 · Zasláno: 27. 1. 2008, 23:29:50
* html xxxx {padding-right:1px; margin-right:-1px}
Tímto se mezera vyruší => lze použít univerzálně (ať už vzniká či ne) - to aby ses nemusel pokaždé za tím uchem ... Chápu že mnozí si oddechnou, až podíl IE6 klesne na 0% ; já tyhle problémy nemám (nerad čekám). S šestkou se člověk nenudí a tajemno mi (v rozumné míře nevadí). Nelíbí se mi představa, že někdo s vyp.JS zírá na grafiku krásnou, leč šedě vykachličkovanou.... |
||
Miloš Profil |
#9 · Zasláno: 27. 1. 2008, 23:46:16
Petroff
Nelíbí se mi představa, že někdo s vyp.JS zírá na grafiku krásnou, leč šedě vykachličkovanou.... To ti chválím, ale docela by mě zajímalo, kolika procent návštěvníků se to bude týkat. Chci říci, že jestliže podíl IE 6 je v současnosti odhaduji 40 % (v listopadu podle Navrcholu to bylo 45,97 %), zajímalo by mě, kolik z těch 40 % má vypnutý javascript. To bude menšina; kdyby byla třeba 5%, pak 5 % z 40 % = 2 %, neboli dva lidi ze sta. Opravdu bych si s alfakanálem v IE6 nedělal přespříliš zbytečné vrásky. |
||
Railbot Profil |
#10 · Zasláno: 28. 1. 2008, 07:21:25
Podle navrcholu kdysi minulý rok mělo JS vypnutý 1,něco% uživatelů.
|
||
Miloš Profil |
#11 · Zasláno: 28. 1. 2008, 09:22:56
Railbot
Takže i kdyby to byla 2 % ze všech, pak to bude v případě IE 6 pouhých 0.8%, což opravdu za snahu ani nestojí. |
||
habendorf Profil |
#12 · Zasláno: 28. 1. 2008, 09:28:47
horší je, že se zobrazí trochu světlejší
Za tohle prý může jakási gamma-korekce či co Je to tzv. gamma chunk, který lze odstranit různými programy. http://www.google.cz/search?hl=cs&q=remove+gamma+chunk&btnG=Vyhledat+G ooglem&lr= |
||
Petroff Profil |
#13 · Zasláno: 28. 1. 2008, 10:52:09 · Upravil/a: Petroff
habendorf
Gamma to v mém případě asi není - totiž když jsem ten originální obrázek: background:url(../images/paticka2.png) repeat-x; co se AlphaImageLoaderem roztahuje (a má v IE6 správnou tmavost) nahrál do Photoshopu a pak znovu uložil, tak ve všech prohlížečích vypadal nezměněně, ale v IE6 byl světlejší. Tohle je zdroj chyby - ten roztažený obrázek jsem vyrobil taky ve PhSh úpravou toho OK originálu, bohužel po 2týdnech mám za sebou základy práce s PhSh (a jestli mám něco špatně nastavené tak mi pls poraďte) |
||
Petroff Profil |
#14 · Zasláno: 29. 1. 2008, 12:38:57
Davex
Byl jsi ze všech nejblíže. Vygeneroval jsem několik desítek bloků .paticka2 s šířkami měnícími se o 1px. Roztahovaný obrázek má šířku 15, tak jsem k zápisu hodnoty šířek do bloků přidal cyklus 0 1 2...14 0 1 2... <div id="patickaB"> <script> var imgW = 15; /* šířka roztahovacího obrázku */ var N=600-1, eNd=750; /* testuj od 600=15*40 do 750=15*50 */ function zapis(){var Nmod=N%imgW; var Ndiv=(N-Nmod)/imgW; return N+'='+imgW+'x'+Ndiv+'+'+Nmod+'<-> '} while(N++<eNd)document.write('<div class="paticka2" style="width:'+N+'px">'+zapis()+'</div>'); </script> </div> Poznačil jsem si správně a chybně zobrazené bloky: 600=15x40+0 <+> 601=15x40+1 <-> 602=15x40+2 <+> 603=15x40+3 <+> 604=15x40+4 <-> 605=15x40+5 <-> 606=15x40+6 <+> 607=15x40+7 <+> 608=15x40+8 <-> 609=15x40+9 <-> 610=15x40+10<+> 611=15x40+11<+> 612=15x40+12<-> 613=15x40+13<-> 614=15x40+14<+> 615=15x41+0 <+> 616=15x41+1 <-> 617=15x41+2 <+> 618=15x41+3 <+> 619=15x41+4 <-> 620=15x41+5 <-> 621=15x41+6 <+> 622=15x41+7 <+> 623=15x41+8 <-> 624=15x41+9 <-> 625=15x41+10<+> 626=15x41+11<+> 627=15x41+12<-> 628=15x41+13<-> 629=15x41+14<+> 630=15x42+0 <+> 631=15x42+1 <-> 632=15x42+2 <+> 633=15x42+3 <+> 634=15x42+4 <-> atd......každých 15 se výsledky opakují ZÁVĚR: Určitě by se dal sestavit výraz, určující, jak se zobrazí img-div (2 vstup.parametry => šířka DIVu a šířka obrázku) Pro obrázek o šířce 1px se blok vždy zobrazí správně. Zlobím se na Photoshop - jak může kvalitní aplikace otevřít soubor a (aniž bych provedl jedinou úpravu) - bez upozornění - jej uložit změněný, což dělá s PNG soubory. |
||
Časová prodleva: 16 let
|
0