What you did is the easiest/best way… Pretty much all other ways, like adding a huge margin-right to the logo, or setting position properties, would be hacky.
I’m not sure though why you can’t use space-between on the #nav-header with that markup, that can hardly create spaces between the <li> elements, it only creates space between the logo and the <ul>.
Is there any syntax difference between having a navbar with only li items and then having one where the image is self contained?
I also remembered the below from a recent book I read, it works of course but one thing I’m trying to learn with CSS/HTML is limit the amount of tags I apply classes/id’s too unless it’s a container.
Not sure what you mean by “syntax difference”, the syntax is always the same. You can have a nav element with only a <ul> in it and within all your nav links, or you can have a logo on the left side, and the <ul> with nav links on the right side. The main concern in this case is accessibility. You could build a whole functioning page with only divs and spans, but the tags would be meaningless for a screenreader (or a search engine). So if you have a logo that also serves as a link “back to start page”, you should put it within the nav tags.
I think you worry too much about adding additional divs. It’s unavoidable if you want to build a layout that’s more complex than just stacking everything on top of each other. You have to group elements to style them, and to place them where you want them to be. It’s not dirty code, often it’s just the only way to achieve the look you want. Just be conscious about tags with semantic meaning like <nav>, <main>, <footer>. As for divs - it doesn’t matter.
Maybe go to a page you often use and that’s super popular like amazon or airbnb. Inspect their HTML and see for yourself how many nested container-divs they use for their layouts.