Me pregunto por qué tan pocos sitios web modernos todavía usan solo PNG para los íconos (pero esta suposición se basa solo en mi observación). Hasta ahora, lo sé, las principales razones para usar PNG en lugar de SVG son IE8 y que SVG usa más potencia de CPU (pero no creo que esto sea un problema para los iconos simples de 1K). Puedo ver (y usamos actualmente) muchas ventajas en el uso de SVG, ya sea cuando se usa como sprites, como imágenes o como SVG en línea.
(Pregunta Buscando una investigación: PNG Sprite vs SVG sprite vs Icon fonts se enfoca en el rendimiento y no tiene una respuesta relevante, Icon Font vs SVG caché y la preocupación de la red se enfoca en el tráfico de red, pero se puede resolver fácilmente, por ejemplo, mediante plantillas).
Si el nuevo sitio web solo admite navegadores modernos, ¿hay alguna razón para no usar SVG (o hay alguna razón para usar PNG para los iconos)? Si no nos importa IE8 y el uso de SVG está respaldado por plantillas y / o almacenamiento en caché, ¿hay algún problema para confiar solo en SVG?
Respuestas:
Razones por las que SVG puede ser una buena opción:
background-size
Razones por las que PNG puede ser una buena opción:
Otras preocupaciones:
fuente
A menos que muestre formas / diseños muy simples o necesite modificar partes del gráfico con la aplicación, no hay muchos incentivos para usar SVG. Puede producir un PNG con el doble del tamaño original (para pantallas retina) y aún así tener un orden de magnitud más pequeño, sin mencionar una mejor cobertura para navegadores heredados (sin necesidad de javascript o polyfills).
Digo esto como alguien que crea interfaces de usuario con gráficos vectoriales. Es una herramienta de diseño impresionante, pero para la entrega / ancho de banda / alcance es difícil superar PNG. Anoche probé un logo muy conocido. CocaCola.svg era casi 20K. Como era un color sólido / plano, lo exporté como PNG-8 con una compresión de paleta de 12 colores y lo bajé a 1.6K (!!!) Para solo unos pocos logotipos no es gran cosa, pero cuando tienes que mostrar 40 de ellos ... bueno, te haces una idea.
La mejor parte es que puede convertir un PNG en una uri de datos base64 e incrustarlos directamente en su hoja de estilo. Esto no se recomienda con SVG, un formato que ya es famoso por problemas de rendimiento y compatibilidad, especialmente en navegadores móviles.
Para terminar, debo decir que hay fortalezas y casos de uso para ambos, pero PNG ha abierto muchos más caminos y te enfrentas a menos resistencia cuando sigues la corriente. Para esos casos extraños en los que SVG encaja mejor, recomiendo este artículo y este recurso de aprendizaje
¡Feliz diseño!
fuente
SVG es genial (cómo se describe muy bien FakeRainBrigand) y se renderiza maravillosamente, pero puede ser bastante complejo. Un navegador tiene más trabajo que hacer cuando se trata de datos vectoriales en lugar de imágenes basadas en píxeles. Una imagen es un elemento, un SVG puede tener muchos elementos secundarios que incluso se pueden agregar al DOM cuando se usa en línea.
No hice ninguna prueba de rendimiento valiosa, pero desde un punto de vista lógico, SVG debe usarse con cuidado cuando se trata de rendimiento, especialmente cuando se trata de navegadores móviles de mediana edad (estrés de CPU). Sería muy útil tener un gráfico en el que se pueda ver la potencia de la CPU consumida por 100 imágenes SVG frente a 100 imágenes PNG en diferentes dispositivos Android e IOS ...
Otro problema con SVG es que la etiqueta necesita un atributo de ancho y alto para algunos navegadores de Android / Samsung y nuestro viejo IE. Y la mayoría de los editores SVG modernos como A *** e Illustrator simplemente agregan el atributo "viewBox".
Lo mejor de SVG es que se reproduce de forma agradable y nítida en cualquier densidad de píxeles.
fuente
Es cierto, png se usa en casi todas partes. Creo que es porque el SVG, en la mayoría de los casos, es bastante inútil, la imagen debería ser más grande (creo) y la computadora tiene que regenerar la imagen cada vez que la amplías (porque siempre haces zoom en las imágenes, ¿no es así? ?) Creo que esta es la razón más importante.
fuente
Observemos que el SVG en cuanto al rendimiento puede volverse horrible. Incluso en navegadores modernos, como Chrome (¡escribiendo esto en 2019!), Una página similar a CMS con unos cientos (prácticamente 3-800) de íconos svg literalmente cuelga el navegador durante más de 5 segundos para terminar de renderizar. Mientras tanto, maximizando la CPU.
Como se señaló en otra parte, el recuento de SVG incrustados en la página aumenta exponencialmente la carga en el navegador, por lo que si se enfrenta a tal situación
Opción n. ° 1: convertir svgs en fuente web (consulte la tabla de rendimiento aquí: http://frozeman.de/blog/2013/08/why-is-svg-so-slow/ )
Opción n. ° 2: recurrir a PNG antiguos y sencillos
En tales situaciones en las que ~ nunca quieres hacer nada elegante como la modificación de color sobre la marcha, y tienes MUCHAS instancias de SVG, ¡el antiguo PNG hace el trabajo y salva el día!
fuente