seogrenci adlı üyeden alıntı: mesajı görüntüle
listeye float verildiğinden ortalanmıyor.
Listelerde float yerine alternatif olarak

display:inline-block;
kullanabilirsiniz.

ul.topnav li {display:inline-block;}
yaptıktan sonra artık
artık ul etiketini sağa-ortaya-sağa hizalayabilirsiniz.
  text-align:center;
Şuradan değiştirilmiş haline bakabilirsiniz.
http://www.w3schools.com/code/tryit....e=FB3EJC6B8KOM

Ayrıca yukardaki arkadaşın verdiği yöntem ile mobil boyuta geldiğinde menü de bozulmalar meydana geliyor.
Arkadaşımızın önermiş olduğu yöntem doğrudur. Birde ben bir not ekleyeyim.

Display: inline-block ile çalıştığınızda "inline-block" özelliğinin standart boşlukları vardır. yanyana elementlerde yüzde mantığında sıralandığında elementler aşağı satıra taşacaktır. bunu önlemenin yolu ise display: inline-block özelliğini kullandığınızda margin-right: -4px kodumuzu css koduna eklemeliyiz...