Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Tags header, main e div

<!DOCTYPE html>
<html lang="pt">
    <head>
        <meta charset="UTF-8">
        <title>Contato</title>
        <link rel="stylesheet" href="css/reset.css">
        <link rel="stylesheet" href="css/site.css">
        <link rel="stylesheet" href="css/index.css">
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Shadows+Into+Light">
    </head>
    <body>
        <header class="titulo-principal">
            <h1>Contato</h1>
        </header>
        <main>
            <div  class="container">
                <form>
                    <fieldset>
                        <legend>Seus Dados</legend>
                        <label>Nome <input type="text" name="Nome"></label>
                        <label>E-mail <input type="email" name="Email"></label>
                    </fieldset>
                    <fieldset>
                        <legend>Assunto</legend>
                        <label><input type="radio" name="assunto" value="Consultoria">Consultoria</label>
                        <label><input type="radio" name ="assunto"value="Blog">Blog</label>
                        <fieldset>
                            <input type="radio" name="assunto" value="Outro" id="outro">
                            <label for="outro">Outro</label>
                            <input type="text" name="outro-assunto">
                        </fieldset>
                        <label>Mensagem <textarea name="msg" id="mensagem" cols="60" rows="10"></textarea></label>
                        <button type="submit">Enviar mensagem</button>
                    </fieldset>
                </form>
            </div>    
        </main>
    </body>
</html>

Bom, a primeira dúvida que tenho é quanto a tag header. Como podem ver no meu código acima eu coloquei o título da minha página dentro de um header. Mas na resolução do instrutor o título foi para dentro da tag main (código abaixo). Isso me deixou confuso... Acho que faz mais sentido usar um header.

 <main>
            <h1 class="titulo-principal">Contato</h1>
            <div class="container">
                <!-- formulário virá aqui -->
            </div>
</main>

Outra dúvida que tenho é por que usar div se existe a tag main (Especificamente neste caso, em outros acho que faz sentido)? Quero dizer algo como:

 <main class="container">
                <!-- formulário virá aqui -->
</main>

Ah outra dúvida é quanto a tag label. Só preciso usar o atributo for se eu não colocar elementos dentro da tag, certo? Exemplo:

 <label>Nome <input type="text" name="Nome"></label>
<label>E-mail <input type="email" name="Email"></label>

<! -- com atributo for -->
<input type="radio" name="assunto" value="Outro" id="outro">
<label for="outro">Outro</label>
2 respostas
solução!

Fala Geovane,

Tranquilo?

Então cara, tudo depende de como você cria a separação do seu site e etc.

Sobre o header por exemplo, se você tiver um código abaixo


    <!-- Página Inicial -->
    <header>
        <img src="logo.png" alt="Logo" />
        <nav>
            <ul>
                <li><a href="#">Página Inicial</a></li>
                <li><a href="#">Empresa</a></li>
            </ul>
        </nav>
    </header>
    <main>
        <h1>Olá Mundo!</h1>
    </main>
    <footer>
    </footer>

    <!-- Empresa -->
    <header>
        <img src="logo.png" alt="Logo" />
        <nav>
            <ul>
                <li><a href="#">Página Inicial</a></li>
                <li><a href="#">Empresa</a></li>
            </ul>
        </nav>
    </header>
    <main>
        <h2>Empresa</h2>
    </main>
    <footer>
    </footer>

Não faz muito sentido colocar o h1 dentro do header pois o header irá se repetir em todas as páginas, e o título será apresentado para o usuário apenas na página inicial, já o que mudará será o main então isso ajuda a não precisar repetir o código e deixa-lo mais estruturado, mas se você criar uma página que em todas as páginas terá um título, daí poderia estar no header, como disse, depende do seu projeto.

Sobre o main mais uma vez depende de como você vai criar o site, antigamente sem os pseudo-elementos (:before e :after) precisávamos criar divs e divs e mais divs para adicionar elementos, hoje podemos reduzir estas criações usando os pseudo-elementos, mas ainda há casos que precisamos ter uma hierarquia de uma tag para outra, não sei se é o caso deste exercício, mas por exemplo, você quer que a tag main tenha um tamanho e um espaçamento específico, e o que tiver dentro dela tenha um outro fundo, daí faz sentido criar um


<main>
    <div class="container">...</div>
<main>

Mas o main não tiver nenhuma especificação, e ser apenas uma separação de tag, que ao aplicar a classe da div interna nela não afetar a semantica e estrutura do site, pode deixar como o código abaixo que não terá problema nenhum.


<main class="container">
    ...
<main>

Mais uma vez depende da estrutura que você está montando.

Sobre o label é isso mesmo, só é necessário usar o for se o input/checkbox/select estiver fora do label, assim o navegador saberá a quem se refere aquele label, mas se estiver dentro, o navegador saberá que aquele input/checkbox/select já é do label que o envolve.

Espero ter ajudado!

Abraços!

Valeu Luiz!