Как правильно перебрать 10 li и задать каждому разные свойства?
Конечно псевдокласс :nth-child это плохой тон. Пользователи будут открывать код страницы, увидят его и перестанут пользоваться вашим сайтом. Одного JavaScript для этой задачи будет тоже мало, нужен JS фреймворк Angular 2.0 + Bootstrap + мощный севревный скрипт так же на основе хорошего фреймворка, PHP оставьте для делетантов, используйте модный многопоточный Go.
Сделайте через JS и не занимайтесь билебердой !