One rule
Choose the element that describes the job of the content. Style it later with CSS.
A page made only from div tags can look fine, but it gives browsers, search engines, and assistive tech less meaning.
Meaning beats looks
HTML is the structure of your project. CSS is the look. Keep those jobs separate.
If something is the main content, use main. If it is site navigation, use nav. If it is a page footer, use footer. Do not pick tags because they are block or inline.