Здравствуйте. padding подгоняется не четко, при изменении масштаба видно изъяны (подсветка кнопки не на всю высоту или на оборот больше чем нужно)
Возможно ли это без js?
У флекса по умолчанию все внутренние элементы (в данном случае a) растягиваются на всю высоту родителя. У li высота неопределена, точнее на всю выстоту ul, которая у вас задана через line-height.
Можно было бы сделать и так https://jsfiddle.net/sok0nw7m/ (цветом фона выделил размер li. Но тогда пришлось быть придумать как растянуть высоту a до размеров li.