La ragione è che si utilizza percentuale per impostare la larghezza dell'elemento del logo è a (elemento principale)
Questo significa che il logo viene prima rasterizzato da vettoriale a una bitmap interna che è 100 % della dimensione impostata per l'immagine. Quindi nella tua regola #header css stai utilizzando l'80% per l'elemento di intestazione in cui si trova l'immagine.
Ciò che accade è che la bitmap interna utilizzata dal browser per contenere l'immagine vettoriale rasterizzata viene ridimensionata dal 100% all'80% anziché rasterizzare il vettore. Poiché ciò comporta l'interpolazione, si avranno dei bordi sfocati. Questa è una scelta prestazionale operata dai browser per i contenuti dei genitori.
La soluzione è rimuovere il ridimensionamento dell'80% dell'elemento di intestazione (padre). Puoi aggiungere una nuova regola e impostare la larghezza dell'immagine in questo modo (ovviamente puoi usare la percentuale - purché l'elemento genitore non sia ridimensionato non sarà un problema) - f.ex:
#header {
margin: 0 auto;
padding: 0;
text-align: center;
/*width: 80%;*/
}
.header-img {
width:200px;
height:auto;
}
Poi, nel tuo codice html:
<img class="header-img" src="logo.svg" alt="" />
(si sarebbe potuto impostare #header img {...}
ma questo ha una riduzione delle prestazioni).
Ecco proof-of-concept (una piccola differenza 100 a 80%, ma visibile - confrontare l'ultima parte):
utilizzando il 100% bitmap rasterizzato per dimensioni logo scalato dal browser al 80%:
Rimozione 80% da elemento di intestazione (madre) e per fare un esempio impostando larghezza e 200px:
hai provato lo zoom _in_ per vedere cosa sta succedendo? –
Il tuo logo è perfettamente nitido e ha un bell'aspetto al 100%. Non puoi migliorare senza perdere l'antialias o disegnare un'immagine bitmap. –