2
respostas

Consolidando o seu conhecimento (código completo e comentado)

Código completo e comentado, para quem tiver dúvidas. (nem tudo está tão claro kk)

contato.html

<!DOCTYPE html>

<html lang="pt-br">

    <head> <!-- Cabeça -->
        <title> Contato - Barbearia Alura </title>    <!-- Título do site -->
        <meta charset="utf-8">                        <!-- Pacote de linguagem HTML -->
        <link rel="stylesheet" href="reset.css">       <!-- Para limpar todas as configurações padrões do html -->
        <link rel="stylesheet" href="style.css">    <!-- Referenciando outro arquivo (no caso, é o arquivo CSS) -->
    </head>

    <body> <!-- Corpo -->
        <header> <!-- Cabeçalho -->
            <div class="caixa">    <!-- Divisão/ Para facilitar na hora da leitura dos comandos -->    
                <h1> <img src="logo.png" alt="Logo da Barbearia Alura"> </h1>
                <nav>                                <!-- Menu de navegação, comando que receberá links -->
                    <ul>                            <!-- UL - Lista desordenada -->
                        <li> <a href="index.html"> Home </a> </li> <!-- LI= topico / A= link -->
                        <li> <a href="produtos.html"> Produtos </a> </li>
                        <li> <a href="contato.html"> Contato </a> </li>
                    </ul>
                </nav>
            </div>
        </header>

        <main> <!-- Função principal -->
            <form> <!-- Formulário  -->
                <label for="nomesobrenome"> Nome e sobrenome: </label> <!-- Label/ Etiqueta para o input --> <!-- Texto que exibirá o que é pedido no campo -->
                <input type="text" id="nomesobrenome" class="input-padrao" required>    <!-- Entrada dos dados -->
                <!-- Label pertence ao input. Para se conectarem, devem possuir o mesmo nome. ID e FOR -->

                <label for="email"> Email </label>
                <input type="email" id="email" class="input-padrao" required placeholder="seuemail@dominio.com"> 
                <!-- Required/ torna o preenchimento do campo, obrigatório -->
                <!-- placeholder/ para exibir exemplo de preenchimento -->
                <!-- type="email"/ o formato do campo será de email, para que o usuário digite email num formato válido -->

                <label for="telefone"> Telefone </label>
                <input type="tel" id="telefone" class="input-padrao" required placeholder="(xx) xxxxx-xxxx"> 

                <label for="mensagem"> Mensagem </label> <!-- Campo de mensagem -->
                <textarea cols="50" rows="5" id="mensagem" class="input-padrao" > </textarea> <!-- Para, visualmente, aumentar o tamanho da caixa -->

                <fieldset> <!-- Fieldset/ Conjunto de campo -->
                    <!-- É usada quando queremos agrupar melhor os formulários -->
                    <!-- Para preenchimento de campos -->

                    <legend> Como prefere o nosso contato? </legend>
                    <!-- Opção de escolha -->

                    <label for="radio-email"><input type="radio" name="contato" value="email" id="radio-email"> Email </label>                
                    <!-- name=contato/    Recebem o mesmo nome para que a seleção seja permitida em apenas uma opção -->
                    <!-- Para que o input pertença ao label, deverão ter o mesmo nome de referência: FOR e ID -->

                    <label for="radio-telefone"><input type="radio" name="contato" value="telefone" id="radio-telefone"> Telefone </label>

                    <label for="radio-whatsapp"><input type="radio" name="contato" value="whatsapp" id="radio-whatsapp" checked> Whatsapp </label>
                    <!-- checked/ marcará a opção automaticamente, até que o usuário mude -->
                </fieldset>

                <fieldset>
                    <legend> Qual horário prefere ser atendido? </legend>
                    <select> <!-- Campo de seleção --> <!-- Irá conter as opções -->
                        <option>Manhã</option>
                        <option>Tarde</option>
                        <option>Noite</option>
                    </select>
                </fieldset>

                <label class="checkbox"> <input type="checkbox" checked> Gostaria de receber nossas novidades por email? </label> <!-- Caixa de seleção para SIM ou NÃO -->
                <!-- checkbox/ Caixa de seleção -->

                <input type="submit" value="Enviar Formulário">    <!-- Caixa de envio do formulário  -->
                <!-- submit/ Enviar -->
            </form>
        </main>

        <footer> <!-- Rodapé -->
            <img src="logo-branco.png">
            <!-- SÍMBOLO COPYRIGHT + TEXTO -->
            <p class="copyright"> &copy; Copyright Barbearia Alura - 2022 </p>    
        </footer>

    </body>
</html>
2 respostas

style.css

header {
    background: #AAAAAA;            /* Cor do plano de fundo do header */
    padding: 20px 0;                /* Espaçamento interno */
}

.caixa {
    position: relative;
    width: 950px;                    /* configuração padrão para o css */
    margin: 0 auto;                    /* configuração padrão para o css */
}

nav {
    position: absolute;
    top: 110px;                        /* Posição em relação ao topo */
    right: 0px;                        /* Posição em relação à direita */
}

nav li {
    display: inline;                /* Desbloqueio de 100% do conteúdo na horizontal (algo mais pode ser adicionado ao lado) */
    margin-left: 15px;                /* Margem externa à esquerda */
}

nav a {
    text-transform: uppercase;        /* O texto fica todo em maiúsculo */
    color: black;                    /* A cor do texto fica em negrito */
    font-weight: bold;                /* Reforçar a cor do texto */
    font-size: 22px;                /* Tamanho da fonte (padrão 16) */
    text-decoration: none;            /* Retirar as configurações padrões de link */

}

nav a:hover {                        /* Comando para mudar a cor do link quando o cursor passar por cima dele */
    color: #C78C19;
    text-decoration: underline;        /* Para retornar o sublinhado quando o cursor passar por cima do link */
    font-size: 23px;                /* Para aumentar o tamanho quando o cursor passar por cima */
}

.produtos {
    width: 940px;                    /* configuração padrão para o css */
    margin: 0 auto;                    /* (Sem expaçamento externo) configuração padrão para o css  */
    padding: 50px 0;                /* 50px espaçamento interno superior e inferior, 0 laterais */
}

.produtos li {
    display: inline-block;
    text-align: center;                /* Texto alinhado ao centro */
    width: 30%;                        /* Tamanho de cada banner */
    vertical-align: top;
    margin: 0 1.5%;                    /* Margem vertical e horizontal */
    padding: 30px 20px;                /* Espaçamento interno vertical e horizontal */
    box-sizing: border-box;            /* Espaçamento lateral dentro do percentual */
    border: 4px solid black;        /* Isso é igual a: border-width; border-style; border-color; */
    border-radius: 20px;            /* Medida de "arredondamento" do quadrado. será a medida em raios que irei adc nas bordas */
}

.produtos li:hover {                /* Quando o cursor passar por cima */
    border-color: #C78C19;            /* Cor da borda */
    color: #C78C19;                    /* Cor do texto */
}

.produtos li:active {                /* Quando o cursor for clicado */
    border-color: green;            /* Cor da borda */
    color: green;                    /* Cor do texto */
}

/* OBS: Para mudar o estilo de qualquer elemento quando o cursor passar por cima, eu devo especificar o elemento, pois 
os elementos são específicos, portanto, devem ser aplicadas as alterações dentro de cada nova chave. */ 

.produtos li:hover h2 {                /* Local que eu quero alterar (título) */
    font-size: 32px;
}

.produtos h2 {                        /* Título */
    font-size: 30px;                /* Tamanho do texto */
    font-weight: bold;                /* Para adicionar cor mais escura */
}

.produto-descricao {                /* Texto */
    font-size: 18px;                /* Tamanho do texto */
}

.produto-preco {                    /* Preço */
    font-size: 22px;                /* Tamanho do texto */
    font-weight: bold;                /* Para adicionar cor mais escura */
    margin-top: 10px;                /* margem apenas na parte superior */
}

footer {
    text-align: center;                /* Texto alinhado ao centro */
    background: url(bg.jpg);        /* Para adicionar plano de fundo na imagem */
    padding: 20px 0;
}

.copyright {                        /* Classe para fazer alteração no texto */
    color: #FFFFFF;
    font-size: 14px;
    margin: 20px 0 0;                /* Margem superior, para afastar a imagem do texto */
}

main {
    width: 940px;
    margin: 0 auto;
}

form {
    padding: 40px 0;
}

form label, form legend {                /* REPETINDO AS CONFIGURAÇÕES PARA PARÁGRAFO */
    display: block;
    font-size: 20px;
    margin-bottom: 10px;
}

.input-padrao {            /* TODAS AS CONFIGURAÇÕES SERÃO APLICADAS IGUALMENTE */
    display: block;
    margin: 10px 0;
    padding: 5px 10px;
    width: 40%;
}

.checkbox {                /* FOI CRIADA UMA CLASSE ESPECÍFICA PARA O PARÁGRAFO "GOSTARIA DE RECEBER..." */
    margin: 20px 0;
}

Boa Felipe Silva Lopes,

Gostei da solução que você propôs, afinal o resultado é o mesmo porém o código me parece muito mais robusto.

Para que mais pessoas consigam visualizar a sua solução proposta é recomendável com que você venha estar marcando este tópico como solucionado, assim pode estar ajudando ainda mais pessoas :)

Obrigado!!