Zanim przejdę do samych styli to chciałbym jeszcze powiedzieć parę słów na temat różnic w dodawaniu CSSów. Nie ma najlepszego sposóbu! Są różne ;)
Gdy dodajemy style przez znacznik <style> strona po wczytaniu pliku HTML jest w stanie wyświetlać się poprawnie! Zyskujemy na szybkość strony. Nie musimy czekać na wczytanie osobnego pliku CSS do którego ścieżkę poznamy dopiero po przeanalizowaniu strony. Minusem jest brak możliwości cachowania tych styli css.
Gdy dodamy style CSS poprzez znacznik <link> z ścieżka do CSSów zyskamy możliwość cachowania pliku CSS w przeglądarce. Jednak strona bedzie dostawała plik CSS wolniej z racji wymiany nagłówków cachujących z serwerem.
Sam zalecam dodawanie styli poprzez znacznik <style> gdy plik HTML razem z stylami nie przekroczy rozmiaru jednej paczki sieciowej (32 kb). lub stosować znacznik <link> połączony z HTTP/2 i serwer push ;)
Po więcej odnośnie optymalizacji zapraszam pod : https://forum.pasja-informatyki.pl/430985/moja-prezentacja-na-temat-przyspieszania-stron-internetowych 
----------------------------------
Ok przejdźmy do pytania! Bardzo dobry sposób opisał @BT101 czyli metodologie BEM. Jednak chciałbym umotywować taki sposób działania abyś się do niego przekonał i wiedział dlaczego jest potrzebny.
1) Łatwość edycji - gdy postanowisz nagle na stronie zmienić kolor bordera na taki sam kolor jak czcionka będziesz musiał dopisywać wszedzie na stronie ten kolor w style="" trudno będzie znaleźć wszystkie wystąpienia a inline będzie się powoli rozrastał.
2) Możliwość zrezygnowania z stylu. Gdy coś posiadasz w znacznikach style="" ma to wyższy priorytet od styli CSS. Aby w plikach CSS nadpisać taką wartość musisz używać !important co jest nie za dobrym rozwiązaniem. Kiedy możesz chcieć nadpisać tak wyglądające style? Tworząc szablon wydruku! Podczas drukowania być może będziesz chciał zamienić kolor na czarny i będziesz zmuszony używać !important. Problem może pojawić się również podczas tworzenia ciemnego schematu kolorystycznego strony.
3) Klasy kolorów mogą się przydać w menu widocznym na komórkach i na komputerach. Często są to dwa odrębne menu przez co będziesz miał kopie kolorów w dwóch miejscach.
Jadnak da się wykonać twój pomysł używając style="" i nie posiadać problemów wymienionych powyżej. Z pomocą przychodzą zmienne CSS. Ja zrealizował bym toi w taki sposób:
CSS:
--red: #f00;
--blue: #0f0;
--green: #00f;
.menuItem {
--item-color: var(--red);
color: var(--item-color);
[...]
}
HTML :
<div class="menuItem" style="--item-color: var(--blue)">
<div class="menuItem" style="--item-color: var(--green)">