Во-первых национальные формировались далеко не сразу в привычном нам виде.
В средневековье не было национальных границ,да и стран как таковых еще не было.
Были уделы,княжества,герцогства,феодальная система и куда большую роль играли дворяне и личные отношения между ними.У феодалов были свои гербы,дарованые им королем.У короля был свой герб.И именно на основе герба властителя формировался флаг.
После французской революции зародились именно национальные движения в привычном нам виде.
Почему такие цвета?Их легче было получить в природе.В сравнении с зеленым например.
Еще одна причина -панславянское движение в 19ом веке.Именно синий,белый и красный чаще всего встречаются на флагах славянскихстран (конечно не без исключений).
Все очень-очень просто и произошло с людьми, придумавшими эти флаги еще в детстве. Белое - молоко матери, синее - небо над головой, а красное - папины руки. Все врезалось в память так сильно, что геральды сделали это флагами.