นอกเหนือจากข้อเท็จจริงที่ว่า PNG เป็นรูปแบบรูปภาพที่ธรรมดากว่านี้มีเหตุผลทางเทคนิคใดบ้างที่จะให้ความโปรดปราน favicon.png กับ favicon.ico?
ฉันรองรับเบราว์เซอร์รุ่นใหม่ที่สนับสนุนไอคอนโปรดของ PNG
นอกเหนือจากข้อเท็จจริงที่ว่า PNG เป็นรูปแบบรูปภาพที่ธรรมดากว่านี้มีเหตุผลทางเทคนิคใดบ้างที่จะให้ความโปรดปราน favicon.png กับ favicon.ico?
ฉันรองรับเบราว์เซอร์รุ่นใหม่ที่สนับสนุนไอคอนโปรดของ PNG
คำตอบ:
คำตอบถูกแทนที่ (และเปลี่ยนเป็น Community Wiki) เนื่องจากมีการอัปเดตและบันทึกย่อมากมายจากผู้อื่นในหัวข้อนี้:
อย่าลังเลที่จะศึกษาคำตอบอื่น ๆ ที่นี่เพื่อรับรายละเอียดเพิ่มเติม
เบราว์เซอร์ที่ทันสมัยทั้งหมด (ทดสอบด้วย Chrome 4, Firefox 3.5, IE8, Opera และ Safari 10 4) มักจะขอให้มีการยกเว้นในกรณีที่คุณได้ระบุไว้ทางลัดผ่านไอคอนfavicon.ico
<link>
ดังนั้นหากคุณไม่ได้ระบุอย่างชัดเจนคุณควรมีfavicon.ico
ไฟล์เสมอเพื่อหลีกเลี่ยง 404 Yahoo! แนะนำให้คุณทำให้มันเล็กและแคช
และคุณไม่ต้องไปรับ PNG เพียงเพื่อความโปร่งใสของอัลฟา ไฟล์ ICOรองรับความโปร่งใสอัลฟ่าได้ดี (เช่นสี 32 บิต) แต่เครื่องมือแทบจะไม่อนุญาตให้คุณสร้าง ฉันใช้ตัวสร้างFavIcon Generator ของไดรฟ์แบบไดนามิกเพื่อสร้างfavicon.ico
ไฟล์อย่างโปร่งใสด้วยอัลฟา มันเป็นเครื่องมือออนไลน์เดียวที่ฉันรู้ว่าสามารถทำได้
นอกจากนี้ยังมีปลั๊กอิน Photoshopฟรีที่สามารถสร้างได้
.ico
การแก้ไขใน PS และแม้ว่าคุณจะทำผลลัพธ์สุดท้ายนั้นแย่มากคุณคิดว่า.bmp
เป็นรูปแบบที่ดีกว่า (มันเพิ่มข้อมูลจำนวนมากที่ทำให้การแก้ไขอีกครั้งมีความเจ็บปวดอย่างมาก)
ไฟล์ .png จะดี แต่ไฟล์ .ico ให้อัลฟาช่องโปร่งใสเกินไปบวกกับพวกเขาให้คุณทำงานร่วมกันหลัง
ดูที่ประเภทStackOverflowใช้ตัวอย่าง (โปรดสังเกตว่ามันโปร่งใส):
<link rel="shortcut icon" href="http://sstatic.net/so/favicon.ico">
<link rel="apple-touch-icon" href="http://sstatic.net/so/apple-touch-icon.png">
สิ่งที่ apple-itouch สำหรับผู้ใช้ iphone ที่สร้างทางลัดไปยังเว็บไซต์
ข้อได้เปรียบทางทฤษฎีของไฟล์ * .ico คือมันเป็นคอนเทนเนอร์ที่สามารถเก็บได้มากกว่าหนึ่งไอคอน ตัวอย่างเช่นคุณสามารถจัดเก็บภาพที่มีช่องอัลฟาและรุ่น 16 สีสำหรับระบบเดิมหรือคุณสามารถเพิ่มไอคอน 32x32 และ 48x48 (ซึ่งจะปรากฏขึ้นเมื่อเช่นการลากลิงก์ไปยัง Windows Explorer)
อย่างไรก็ตามความคิดที่ดีนี้มีแนวโน้มที่จะขัดแย้งกับการใช้งานเบราว์เซอร์
PNG มีข้อดี 2 ข้อ: มันมีขนาดที่เล็กกว่าและใช้กันอย่างแพร่หลายและรองรับมากกว่า (ยกเว้นในกรณี favicons) ตามที่กล่าวไว้ก่อนหน้า ICO สามารถมีไอคอนหลายขนาดซึ่งมีประโยชน์สำหรับแอปพลิเคชันเดสก์ท็อป แต่ไม่มากเกินไปสำหรับเว็บไซต์ ฉันอยากจะแนะนำให้คุณใส่ favicon.ico ลงในรูทของใบสมัครของคุณ ตอบถ้าคุณมีการเข้าถึงส่วนหัวของหน้าเว็บไซต์ของคุณให้ใช้แท็กเพื่อชี้ไปที่ไฟล์ png เบราว์เซอร์ที่เก่ากว่าจะแสดง favicon.ico และ png ที่ใหม่กว่า
เครื่องมือโซเชียลบางอย่างเช่น Google+ ใช้วิธีง่าย ๆ ในการรับ favicon สำหรับลิงก์ภายนอกเรียก http://your.domainname.com/favicon.ico
เนื่องจากไม่ได้ดึงเนื้อหา HTML ล่วงหน้า<link>
แท็กจะไม่ทำงาน ในกรณีนี้คุณอาจต้องการใช้กฎ mod_rewrite หรือเพียงวางไฟล์ในตำแหน่งเริ่มต้น
ICO สามารถเป็น PNG
แม่นยำยิ่งขึ้นคุณสามารถจัดเก็บ png หนึ่งรูปแบบขึ้นไปในรูปแบบคอนเทนเนอร์ขนาดเล็กนี้แทนบิตแมป + อัลฟาปกติที่ทุกคนเชื่อมโยงกับ ico อย่างยิ่ง
การสนับสนุนนั้นเก่าแล้วปรากฏใน Windows Vista (2007) และได้รับการสนับสนุนอย่างดีจากเบราว์เซอร์ แต่ไม่จำเป็นต้องใช้ซอฟต์แวร์แก้ไขไอคอน
png ที่ถูกต้อง (รวมถึงส่วนหัวทั้งหมด) ที่ถูกต้องสามารถนำมารวมกันได้โดยส่วนหัว 6 ไบต์ icoและไดเรกทอรีรูปภาพ 16 ไบต์
GIMP มีการสนับสนุนดั้งเดิม เพียงส่งออกเป็น ico และทำเครื่องหมาย "บีบอัด (PNG)"
หลีกเลี่ยง PNG ไม่ว่ากรณีใด ๆ หากคุณต้องการความเข้ากันได้ของ IE6 ที่เชื่อถือได้
<link>
ในรหัสหน้าสำหรับเบราว์เซอร์สมัยใหม่
สำหรับสิ่งที่คุ้มค่าฉันทำสิ่งนี้:
<!-- Favicon - Generic -->
<link rel="icon" href="path/favicon-32_x_32.png" sizes="32x32">
<link rel="icon" href="path/favicon-57_x_57.png" sizes="57x57">
<link rel="icon" href="path/favicon-76_x_76.png" sizes="76x76">
<link rel="icon" href="path/favicon-96_x_96.png" sizes="96x96">
<link rel="icon" href="path/favicon-128_x_128.png" sizes="128x128">
<link rel="icon" href="path/favicon-192_x_192.png" sizes="192x192">
<link rel="icon" href="path/favicon-228_x_228.png" sizes="228x228">
<!-- Favicon - Android -->
<link rel="shortcut icon" href="path/favicon-196_x_196.png" sizes="196x196">
<!-- Favicon - iOS -->
<link rel="apple-touch-icon" href="path/favicon-120_x_120.png" sizes="120x120">
<link rel="apple-touch-icon" href="path/favicon-152_x_152.png" sizes="152x152">
<link rel="apple-touch-icon" href="path/favicon-180_x_180.png" sizes="180x180">
และฉันยังเก็บ favicon.ico ไว้ในรูท