Favicon (.ico) לעומת PNG
ICO ו-PNG אינם מתחרים - הם שותפים. ההגדרה המודרנית של favicon משתמשת ב-.ico בגדלים רבים בתור ה-fallback האוניברסלי וקבצי PNG להקשרי DPI גבוהים ולניידים. הבנת מה כל פורמט עושה ומה לא עוזר לך לבנות הגדרת favicon שעובדת על כל דפדפן ומערכת הפעלה. ה-favicon generator מייצר את שני הפורמטים ממקור אחד, וה-ICO vs PNG tutorial מספק השוואה טכנית עמוקה יותר.
פורמט ה-.ico נוצר במיוחד כדי להחזיק מספר גדלי אייקונים במיכל בינארי אחד. favicon.ico בנוי היטב מכיל פריימים ב-16×16, 32×32, 48×48 ו-64×64 פיקסלים. כאשר דפדפן זקוק ל-favicon עבור כרטיסייה, הוא פותח את קובץ ה-.ico, קורא את ספריית ICO ובוחר את המסגרת המתאימה ביותר לגודל התצוגה הנדרש. יכולת ריבוי גדלים זו היא היתרון המובהק של .ico על פני PNG.
PNG הוא פורמט של תמונה אחת. קובץ PNG מכיל תמונה אחת בדיוק ברזולוציה אחת. כדי לכסות גדלים מרובים עם PNG בלבד, אתה צריך מספר קבצים ותגי `<link>` מרובים עם תכונות `sizes=` מפורשות. זה יותר מילולי אבל מאפשר שליטה מדויקת על איזו תמונה תוגש בכל רזולוציה. PNG תומך גם בדחיסה נטולת אובדן טובה יותר מאשר במסגרות ICO מקודדות BMP בכל רזולוציה נתונה.
תאימות דפדפן היא המקום שבו .ico מנצח באופן מכריע. כל דפדפן - כולל IE מדור קודם, Edge ישנות, גרסאות Safari עתיקות ודפדפני נישה לא ברורים - שואב את /favicon.ico משורש הדומיין ללא צורך בתג `<link>`. גם אם תשמיט לחלוטין את תג הקישור, הדפדפנים ינסו את GET /favicon.ico כמוסכמה. PNG דורש תגי '<link rel='icon' type='image/png'>' מפורשים עם סוגי MIME נכונים או שמתעלמים ממנו.
תמיכת השקיפות שווה בין .ico ל-PNG. שני הפורמטים תומכים בערוץ אלפא של 8 סיביות (שקיפות מלאה לכל פיקסל). עם זאת, .ico שומר על שקיפות רק כאשר המסגרות הפנימיות שלו משתמשות בדחיסת PNG, לא ב-BMP. מקודד ICO ישנים לפעמים כברירת מחדל ל-BMP, שיש לו שקיפות מוגבלת (1-bit). השתמש תמיד בגנרטור מודרני המייצר מסגרות .ico דחוסות של PNG.
השוואת גודל הקובץ תלויה בהקשר. קובץ יחיד בגודל 32×32 PNG קטן יותר מקובץ .ico בגדלים רבים שמאגד פריימים של 16, 32, 48 ו-64 פיקסלים. עם זאת, ה-.ico מחליף ארבעה קבצי PNG נפרדים בתוספת ארבע תגי קישור. עבור המטען הכולל, .ico דחוס היטב בגדלים רבים הוא כמעט תמיד קטן יותר מהקבוצה המקבילה של PNG בודדים ביחד.
PNG מנצח על יעילות דחיסה בכל גודל בודד. אלגוריתם הדחיסה PNG (DEFLATE/zlib) יעיל במיוחד עבור לוגואים בצבע שטוח ויצירות אמנות בסגנון אייקון עם קצוות חדים ופלטות צבעים מוגבלות. לוגו 32×32 PNG בדחיסה אופטימלית יכול להיות מתחת ל-200 בתים. מסגרת ה-BMP המקבילה בתוך .ico היא תמיד 4 KB ללא קשר לתוכן התמונה.
עבור כשירות לסמלים של חיפוש Google, הן .ico והן PNG נתמכות. הסורק של Google מביא תחילה את ה-favicon המקושר ב-HTML שלך, או נופל בחזרה ל-/favicon.ico. הדרישה המינימלית היא 48×48 פיקסלים וכתובת אתר נגישה לציבור. PNG בגודל מתאים המקושר עם `<link rel='icon' type='image/png' sizes='48x48' href='/favicon-48x48.png'>` מספק את זה בדיוק כמו חבילת .ico באותו גודל.
התנהגות מצב כהה שונה בין הפורמטים. קבצי PNG אינם יכולים להסתגל לערכת הצבעים של המשתמש - תזדקק ל-JavaScript כדי להחליף את תג הקישור href באופן דינמי, שהוא שביר. לפורמט .ico אין יכולת של מצב כהה בכלל. עבור התאמת favicon במצב כהה, רק SVG תומך בו באופן מקורי דרך בלוק משובץ בסגנון `@media (prefers-color-scheme: dark)`. יש להתאים את PNG ו-.ico עם שכבת-על SVG.
ההגדרה המודרנית האופטימלית משלבת את שני הפורמטים. השתמש ב-<link rel='icon' href='/favicon.ico'>` בתור החזרה האוניברסלית, ב-`<link rel='icon' type='image/png' sizes='32x32' href='/favicon-32x32.png'>` לבהירות הרשתית, וב-<link rel='icon' type='image/svg+xml' href='/favicon.svg'>` לתמיכה במצב כהה שניתן להרחבה. דפדפנים שמבינים SVG favicons בוחרים את SVG; אחרים נופלים עד PNG; דפדפנים עתיקים מקבלים את ה-.ico.
שילוב מערכת ההפעלה Windows הוא דומיין .ico בלבד. קיצורי דרך בשולחן העבודה, סמלי סייר הקבצים וסיכות שורת המשימות Windows קוראים כולם את פורמט ico. אם מישהו מהמשתמשים שלך מצמיד את האתר שלך לשורת המשימות Windows או יוצר קיצור דרך בשולחן העבודה לכתובת האתר שלך, רק /favicon.ico משמש כסמל קיצור הדרך. בהקשר זה מתעלמים לחלוטין מקבצי PNG.
עבור 180×180 apple-touch-icon, PNG הוא הפורמט התקף היחיד. iOS אינו קורא את .ico עבור סמלי מסך הבית - הוא מצריך ספציפית PNG מקושר באמצעות `<link rel='apple-touch-icon'>`. זהו מקרה אחד שבו PNG לא רק מועדף אלא נדרש.
אין להתעלם מתצורת השרת. שרתי אינטרנט רבים משרתים .ico עם סוג תוכן שגוי (`text/plain` במקום `image/x-icon`) אם לא מוגדר במפורש. לקבצי PNG יש תמיכה רחבה יותר מסוג MIME בין פלטפורמות אירוח. אם אתה רואה את ה-favicon.ico שלך לא נטען, בדוק שהשרת שלך מחזיר `Content-Type: image/x-icon` או `image/vnd.microsoft.icon` עבור בקשות ICO.
ה-favicon generator מוציא את שני הפורמטים בו זמנית. אתה לא צריך לבחור - חבילת ההורדה כוללת favicon.ico, קבצי PNG עצמאיים ב-32×32 ו-180×180, ו-SVG עבור הערימה המודרנית המלאה. השימוש בחבילה זו פירושו שהשאלה ICO לעומת PNG נענית אוטומטית: השתמש בשניהם, כל אחד בהקשר שבו הוא מצטיין.
להשוואת פורמטים מלאה המכסה גם את SVG, ראה best favicon format guide. המדריך הזה מסביר איזה פורמט לתעדף עבור כל מקרה שימוש - אתר רגיל, PWA, חנות מסחר אלקטרוני וכלי מפתחים - ומספק מטריצת החלטות לבחירת ערימת ה-favicon שלך.
איך זה עובד
- 1
התחל ממקור מרובע של 512×512
PNG עם רקע שקוף או SVG עם ריבוע viewBox. זוהי הקלט הבודד הנדרש על ידי המחולל עבור כל היציאות.
- 2
צור גם .ico וגם PNG בו זמנית
העלה ל-[favicon generator](tool:favicon-generator). הוא מייצר favicon.ico (רב-גדלים), favicon-32x32.png, apple-touch-icon.png (180×180), ואת המניפסט PNGs 192/512 במעבר אחד.
- 3
פרוס את כל הקבצים לשורש האתר שלך
מקם את favicon.ico, favicon-32x32.png, apple-touch-icon.png ואת כל המניפסטים PNG באותה ספרייה שמשרתת את ה-index.html שלך.
- 4
קשר את שני הפורמטים ב-<head>
הוסף את `<link rel='icon' href='/favicon.ico'>` תחילה בתור החזרה, לאחר מכן את `<link rel='icon' type='image/png' sizes='32x32' href='/favicon-32x32.png'>` עבור DPI גבוה, ולאחר מכן את גרסת SVG למעלה.
- 5
אמת במספר דפדפנים
סמן את Chrome (כרטיסייה 32px), Safari (כרטיסייה + מסך פתיחה iOS), Firefox (סרגל הסימניות) ו-Edge (Windows קיצור דרך). השתמש ב-[favicon tester](utility:favicon-tester) להדמיית דפדפנים.
נסה עכשיו
צור גם .ico וגם PNG
מחולל פביקוןשאלות נפוצות
האם עלי להשתמש ב-.ico או PNG עבור ה-favicon שלי?+
השתמש בשניהם. .ico הוא הכשל האוניברסלי שכל דפדפן מביא אוטומטית. PNG מספק עיבוד חד יותר בגדלים בודדים על צגי DPI גבוה. הם משרתים תפקידים משלימים - ההגדרה המודרנית כוללת .ico בגדלים רבים ועוד לפחות PNG עצמאי אחד.
למי יש גודל קובץ קטן יותר - .ico או PNG?+
PNG יחיד קטן מ-.ico באותה רזולוציה. אבל .ico מרובה גדלים שמחליף ארבעה או חמישה PNGs בודדים הוא בדרך כלל קטן יותר מכל אותם PNGs ביחד. השתמש ב-.ico עבור החבילה מרובת הגדלים, PNG עבור הצהרות בודדות של DPI גבוה.
האם חיפוש Google תומך ב-PNG מועדפים?+
כן. Google מקבלת גם .ico וגם PNG, עם גודל מינימלי של 48×48 פיקסלים. קשר את ה-PNG שלך עם `<link rel='icon' type='image/png' sizes='48x48' href='/favicon-48x48.png'>` והסורק של Google יאסוף אותו.
האם PNG יכול לתמוך במצב כהה?+
לא ישירות. PNG הוא פורמט רסטר סטטי ללא מודעות לסכמת צבעים. לתמיכה ב-favicon במצב כהה, הוסף גרסת SVG המשתמשת בלוק בסגנון `@media (prefers-color-scheme: dark)` לצד PNG ו-.ico שלך.
מה קורה אם אני שולח רק סמל PNG favicon?+
דפדפנים מודרניים יציגו אותו בצורה נכונה אם תכלול את תג הקישור. אבל כל דפדפן, כלי או מערכת הפעלה שינסה להביא את /favicon.ico ישירות יקבלו 404. דפדפנים מדור קודם לא יציגו סמל פביקון כלל. כלול תמיד .ico בגדלים מרובים בתור החזרה.
האם .ico תומך בשקיפות?+
כן, כאשר המסגרות הפנימיות משתמשות בדחיסת PNG (לא BMP). מחוללי ICO מודרניים - כולל FetchFavicon - מייצרים תמיד פריימים דחוסים של PNG המשמרים את ערוץ האלפא. למסגרות BMP בתוך .ico יש שקיפות של סיביות אחת בלבד.
האם אוכל לשנות שם של קובץ .png ל-.ico?+
לא. שינוי שם משנה את סיומת הקובץ אך לא את המבנה הבינארי. דפדפנים ומערכות הפעלה בודקים את כותרת הקובץ, לא את הסיומת, כדי לקבוע את הפורמט. השתמש במקודד ICO מתאים כדי להמיר את PNG לפורמט המכולה ICO.