<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;Htm - אחלה טיפים לבניית אתרים &#187; פילטרים&#8236;</title>	<atom:link href="http://www.htm.co.il/tag/%d7%a4%d7%99%d7%9c%d7%98%d7%a8%d7%99%d7%9d/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htm.co.il</link>
	<description>&#8235;מדריכים ומאמרים בנושא בניית אתרים. כל יום משהו חדש ללמוד, וליישם.&#8236;</description>	<lastBuildDate>Wed, 18 Jan 2012 09:32:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>il</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;שקיפות PNG עבור Internet Explorer 6&#8236;</title>		<link>http://www.htm.co.il/2009/02/05/%d7%a9%d7%a7%d7%99%d7%a4%d7%95%d7%aa-png-%d7%a2%d7%91%d7%95%d7%a8-internet-explorer-ie6/</link>
		<comments>http://www.htm.co.il/2009/02/05/%d7%a9%d7%a7%d7%99%d7%a4%d7%95%d7%aa-png-%d7%a2%d7%91%d7%95%d7%a8-internet-explorer-ie6/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 13:49:08 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[עיצוב אתרים]]></category>
		<category><![CDATA[הצגת PNG]]></category>
		<category><![CDATA[פילטרים]]></category>
		<category><![CDATA[שקיפות]]></category>
		<category><![CDATA[שקיפות תמונות]]></category>

		<guid isPermaLink="false">http://htm.co.il/?p=34</guid>
		<description><![CDATA[&#8235;תמונות הן חלק אינטגרלי מעיצוב אתרים. שימוש בתמונות שקופות הוא דבר נפלא, אך לא באינטרנט אקספלורר 6 (IE6) שלא מציג שקיפות של תמונות בפורמט PNG. במאמר הבא נציע פתרון להתמודדות עם הבעיה באמצעות פילטר.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><address dir="rtl"><strong>הרצון: </strong>שימוש בתמונות בעלות שקיפות (PNG) באינטרנט.</address>
<address dir="rtl"><strong>הבעיה: </strong>אינטרנט אקספלורר 6.</address>
<address dir="rtl"><strong>הפיתרון:</strong> שימוש בפילטרים.</address>
<p dir="rtl">
<p dir="rtl">בדומה לפורמטי התמונות JPEG ו-GIF, גם קבצי PNG הם קבצים שימושיים <strong>בבנייה ובעיצוב אתרים</strong> באינטרנט.<br />
היתרון המרכזי של פורמט ה-PNG על שאר הפורמטים היא האפשרות לתמיכה בשקיפות <em>(</em><em>Opacity)</em>, דבר חשוב מאוד כאשר מעוניינים ליצור עיצוב מעניין שמשלב שימוש במספר שכבות.<br />
רובכם ודאי יודעים כי גם הפורמט GIF תומך בשקיפות, אך יש הבדל גדול בין הפורמטים. בעוד GIF תומך בשקיפות <em>(</em><em>opacity)</em>, פורמט PNG תומך ב&quot;שקיפות אלפא&quot; (<em>alpha transparency).</em></p>
<h3 dir="rtl"><strong>מה זה &quot;שקיפות אלפא&quot;?</strong></h3>
<p><strong></strong>קבצי GIF מסוגלים לבחור אם להציג פיקסל מסוים שקוף או אטום לחלוטין, בעזרת טכניקה המכונה בשפה המקצועית שקיפות בינארית (<em>binary transparency</em>). לעומתם, קבצי PNG מסוגלים לטפל בשקיפות חלקית שברמתה ניתן לשלוט לפי פרמטר (בין 0 ל255).</p>
<p dir="rtl">
<p dir="rtl"><strong></strong></p>
<div id="attachment_40" class="wp-caption alignnone" style="width: 130px"><strong><strong><img class="size-full wp-image-40" title="main-picsm" src="http://htm.co.il/wp-content/uploads/2009/02/main-picsm.png" alt="תמונה להמחשת שקיפות למחצה בPNG " width="120" height="133" /></strong></strong><p class="wp-caption-text">תמונה להמחשת שקיפות משתנה בPNG </p></div>
<p><strong></strong></p>
<p dir="rtl">כל <strong>מעצב גרפי</strong> יודע להשתמש בשקיפות ומכיר את היתרונות בעיצוב בעזרת שכבות. שילוב של טכניקות שקיפות יכולות להוסיף הרבה לאופי של העיצוב גם בתוך אתר אינטרנט.<br />
למרות היתרונות הברורים של פורמט ה-PNG שפירטתי לעומת פורמט GIF עדיין אנו נראה שברשת האינטרנט פורמט GIF פופולרי בהרבה. רבים שואלים את עצמם &quot;מדוע?&quot;. ובכן, הסיבה לא תפתיע הרבה אנשים &#8211; דפדפן אקספלורר 6 (IE6).</p>
<p dir="rtl"><strong>מעצבי אתרים </strong>רבים המעוניינים לבנות אתר מקצועי ירצו להתאים את עיצוב האתר לכל הדפדפנים. אם תשאלו אותם לאיזה דפדפן הכי קשה/מעצבן/מעייף להתאים את הקוד (עיצוב) רוב הפעמים זה יהיה IE6.</p>
<p dir="rtl">ובכן גם כאן, הבעיה שקיימת בשימוש בקבצי PNG היא ש-IE6 פשוט לא תומך בשקיפות שלהם.<br />
בעוד ששאר הדפדפנים כמו safari,firefox,IE7 תומכים בשקיפות של קבצי PNG, כאשר מנסים להציג קובץ חצי שקוף בפורמט PNG בIE6 אנו נתקלים בבעיה (בד&quot;כ מעין רקע אפור) ואנחנו צריכים לעבוד קצת יותר קשה כדיי למצוא פתרון.</p>
<h3 dir="rtl"><strong>הפתרון של ביל גייטס</strong></h3>
<p dir="rtl">הפתרון שמייקרוסופט הביאה על מנת לפתור את הבעיה בדפדפן שלהם הוא שימוש בפילטרים.<br />
פילטרים הם תוספת שאפשר לתת לכל אלמנט בתוך מאפיין הSTYLE שלו. הפילטרים פותחו ופועלים אך ורק בדפדפני אקספלורר מגרסת 4 ומעלה. ישנם פילטרים שניתן ליצור בעזרתם אפקטים גרפיים רבים (כמו טשטוש תמונה <em>[</em><em>blur]</em>, הוספת צל ועוד רבים).</p>
<p dir="rtl">אחד מהפילטרים שמוצעים ע&quot;י מייקרוסופט הוא ה-&quot;AlphaImageLoad&quot; שבעזרתו אפשרי להציג קבצי PNG עם שקיפות חלקית גם בIE6.</p>
<p dir="rtl">אני בחרתי כאן לא לפרט יותר מידיי על נושא הפילטרים וכיצד הם עובדים (תוכלו לקרוא וללמוד עוד באתר של מייקרוסופט ובחיפוש פשוט בגוגל), הסיבה היא שבשביל המעצב הפשוט זה מיותר. ישנן מספר דרכים נוספות לממש את הוספת הפילטר לעיצוב האתר, אך אני אתרכז בפתרון אחד שלדעתי הוא הנוח ביותר ובנוסף אני אוסיף טיפ שימושי מניסיוני האישי לייעול העובדה עם הפילטר.</p>
<h3 dir="rtl">כיצד לכלול שקיפות PNG ב IE6</h3>
<p dir="rtl">השיטה המעודפת עליי היא השיטה של האתר <a href="http://homepage.ntlworld.com/bobosola/">http://homepage.ntlworld.com/bobosola</a> והיא הוספה של קובץJS  (JavaScrip) שמרנדר את כל קבצי הPNG שנמצאים בעמוד האינטרנט לפני טעינת העמוד, אוטומטית. על מנת להפעיל את הקוד באתרכם עבדו לפי השלבים הבאים:</p>
<ol type="1">
<li dir="rtl">הורידו את קובץ ה-      <a href="http://homepage.ntlworld.com/bobosola/pngfix.js">pngfix.js</a> דרך האתר של bobosola.</li>
<li dir="rtl">העלו      את הקובץ לאתרכם לתיקייה הרצויה.</li>
<li dir="rtl">בקובץ      האתר טענו את קובץ הJS באמצעות הוספת הקוד הבא בתוך תגית &lt;head&gt;:</li>
</ol>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">&lt;!--[if lt IE 7.]&gt;</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp;&lt;script defer type=&quot;text/javascript&quot; src=&quot;pngfix.js&quot;&gt;&lt;/script&gt;</span><br />
<span style="color: #808080; font-style: italic;">&lt;![endif]--&gt;</span></div></td></tr></tbody></table></div>
<ol type="1">
<li dir="rtl">זה הכל. בעצם כמעט הכל.</li>
</ol>
<p dir="rtl">מה עשינו כאן פשוט מאוד. תחילה, הקוד שהוספנו נמצא בתוך הערה שרק דפדפן אקספלורר מתייחס אליה. שימו לב למילה defer (לדחות), למעשה הקוד יטען תמיד לפני שאר הדף, כלומר הוא יעכב את טעינת הדף עד לאחר ביצוע הסקריפט. כך נמנע את המצבים בהם הקוד לא סיים לעבור על כל התמונות והדף כבר נטען (במקרה זה נראה תמונות מהבהבות או תמונות לא שקופות). הסקריפט יעבור אוטומטית על כל הקבצים בעלי סיומת PNG ויוסיף להם פילטר שקיפות.</p>
<h3 dir="rtl"><strong>טיפ אישי</strong></h3>
<p dir="rtl">כמו שהבטחתי הגיע השלב של הטיפ האישי. הסברתי לפני מספר פסקאות כי ישנם כמה דרכים לממש את הפילטר של מייקרוסופט אך מניסיוני הפילטר לא עובד כמו שצריך תמיד. דוגמא היא שכאשר אנחנו נשתמש בקוד זה בדף שמכיל תמונות רבות של PNG הדף לא יטען את כל תמונות כמו שצריך, חלק מהתמונות ישנו את גודלן באופן קיצוני ובמקרה הגרוע הדף יתקע ואף יתקע את המחשב.</p>
<p dir="rtl">על מנת להימנע ממצב זה, מצאתי פתרון פשוט. שמתי לב שלא על כל תמונות הPNG אני מעוניין להחיל את הפילטר. שינוי קטן בקוד הJS אומר לו לעבור רק על התמונות שהclass שלהן שווה לtrans. כעת הוסיפו אלמנט class שיהיה שווה לtrans לכל התמונות שאתם רוצים שיחול עליהם הפילטר. באמצעות שינוי הקוד אנחנו חוסכים ריצה של קוד לחינם וגורמים לכל להיות יותר פשוט ומהיר.</p>
<p dir="rtl">על-מנת לבצע את השינוי בקוד:</p>
<p dir="rtl">1.      פתחו את קובץ pngfix.js באמצעות עורך טקסט פשוט.</p>
<p dir="rtl">2.      הוסיפו לתנאי-</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>imgName.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>imgName.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> imgName.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;PNG&quot;</span><span style="color: #009900;">&#41;</span></div></td></tr></tbody></table></div>
<p dir="rtl">את הבדיקה:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&amp;&amp;</span> img.<span style="color: #660066;">className</span><span style="color: #339933;">==</span><span style="color: #3366CC;">&quot;trans&quot;</span></div></td></tr></tbody></table></div>
<p dir="rtl">כלומר:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>imgName.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>imgName.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> imgName.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;PNG&quot;</span> <span style="color: #339933;">&amp;&amp;</span> img.<span style="color: #660066;">className</span><span style="color: #339933;">==</span><span style="color: #3366CC;">&quot;trans&quot;</span><span style="color: #009900;">&#41;</span></div></td></tr></tbody></table></div>
<p dir="rtl">3.      כעת הוסיפו את האלמנט &quot;class=&quot;trans לכל התמונות שאתם מעוניינים בשקיפותן.</p>
<p dir="rtl">
<p dir="rtl">לסיכום, תמונות בעלות שקיפות הן הכרחיות מפעם לפעם לעיצוב אתר אינטרנט. לא פחות חשוב הוא התאמת האתר לכל הדפדפנים. במאמר זה סקרנו פיתרון אחד <strong>לבעיית תצוגת </strong><strong>PNG ב- </strong><strong>Internet Explorer 6 </strong>בעזרת הוספת קוד קצר לאתר. פיתרון זה הינו פשוט, והכרחי.</p>
<p dir="rtl">אז פעם הבאה שאתם משתמשים ב-PNG אל תשכחו לדאוג גם להוסיף את הפילטר.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2010/01/17/%d7%92%d7%9c%d7%a8%d7%99%d7%99%d7%aa-%d7%a4%d7%9c%d7%90%d7%a9-%d7%a2%d7%9c-%d7%91%d7%a1%d7%99%d7%a1-xml-%d7%9e%d7%aa%d7%a0%d7%94/" title="גלריית פלאש על בסיס XML מתנה!"><img src="http://htm.co.il/wp-content/post-images/988.jpg" />גלריית פלאש על בסיס XML מתנה!</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/09/24/%d7%98%d7%a2%d7%99%d7%a0%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%91%d7%90%d7%9e%d7%a6%d7%a2%d7%95%d7%aa-jquery/" title="טעינת תמונות באמצעות jQuery"><img src="http://htm.co.il/wp-content/post-images/599.jpg" />טעינת תמונות באמצעות jQuery</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/02/05/%d7%a9%d7%a7%d7%99%d7%a4%d7%95%d7%aa-png-%d7%a2%d7%91%d7%95%d7%a8-internet-explorer-ie6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>



