Powodem jest to, że można użyć procent ustawić szerokość elementu logo znajduje się w (element nadrzędny)
To oznacza, że logo najpierw zrastrowane od wektora, który ma wewnętrzny mapę bitową, która jest 100 % rozmiaru ustawionego dla obrazu. Następnie w regule #header css używasz 80% dla elementu nagłówka, w którym znajduje się obraz.
Co się dzieje, to że wewnętrzna mapa bitowa używana przez przeglądarkę do przechowywania zrasteryzowanego obrazu wektorowego jest skalowana od 100% do 80% zamiast ponownego rasteryzacji wektora. Ponieważ wiąże się to z interpolacją, spowoduje to kilka rozmytych krawędzi. Jest to wybór wydajności dokonany przez przeglądarki dla zawartości rodzica.
Rozwiązaniem jest usunięcie skalowania 80% elementu nagłówka (rodzica). Możesz dodać nową regułę i ustawić szerokość obrazu w ten sposób (możesz oczywiście użyć wartości procentowej - o ile element główny nie jest skalowany, nie będzie to problemem) - f.ex:
#header {
margin: 0 auto;
padding: 0;
text-align: center;
/*width: 80%;*/
}
.header-img {
width:200px;
height:auto;
}
Następnie w hTML-kodu:
<img class="header-img" src="logo.svg" alt="" />
(mogłeś ustawić #header img {...}
ale to ma spadku wydajności).
Oto proof-of-concept (mała różnica 100 do 80%, ale widoczne - porównaj ostatnią część):
stosując 100% zrasteryzowany bitmapę do logo wielkości skalowane przez przeglądarkę do 80%:
usunięcie 80% z nagłówka (macierzystego) elementu i dla zapewnienia przykład ustawienie szerokości obrazu do 200px:
próbowałeś powiększanie _in_ aby zobaczyć, co się dzieje? –
Twoje logo jest idealnie gładkie i wygląda dobrze na 100%. Nie da się polepszyć bez utraty wygładzania krawędzi lub rysowania obrazu bitmapowego. –