Olá Luciano, tudo bem?
A tag <div>
, como o próprio nome faz referência, serve para criar divisões na página. Ele representa um container ou agrupador mais genérico e deve ser utilizado quando não fizer sentido a utilização de um container mais semântico, como por exemplo: <section>, <article>, <nav>, <header>
etc.
O id e o class são seletores que são atribuídas as tags, para que elas sejam referenciadas no CSS e sejam estilizadas. Por boa prática, utilizamos esses seletores, mas também podemos estilizar um elemento setando a própria tag no CSS, veja no exemplo:
div {
display:flex
}
Não é o mais indicado fazer dessa forma, o ideal é utilizar class e id como citei anteriormente, mas utilizei o exemplo para mostrar que a <div>
não dependente desses seletores para criar os containers e modificar a estrutura do HTML, pois esse é o seu papel por padrão.
Espero ter ajudado, qualquer dúvida fique a vontade para perguntar. Bons estudos!