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

Exercicio 9 - Estilizando formulário - Configs não funcionam

Ao formatar as legendas das <fieldset>, a <label> "mensagem" e o button, encontrei problemas:

Legendas e label: para espaçar dos campos anteriores a elas, o margin-top não funciona, só consegui usando o padding-top;

Button: para trazer o botão para o canto direito inferior do formulário, com a configuração "margin-left: auto" não funciona também, só consegui o resultado usando o "float: right".

DÚVIDA: Por que essas configurações indicadas nas respostas do exercício não funcionaram pro meu CSS, somente consegui o resultado solicitado através de outras? Alguém poderia me tirar essa dúvida, por gentileza?

Obrigadão!

Cód HTML e CSS abaixo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>João da Silva - Contato</title>
        <link rel="icon" href="img/favicon.png">
        <link rel="stylesheet" href="css/reset.css">
        <link rel="stylesheet" href="css/site.css">
        <link rel="stylesheet" href="css/contato.css">

        <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
        <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
    </head>
    <body>
        <main>
            <h1 class="titulo-pagina">Contato</h1>

            <div class="conteudo-principal">
                <form>
                    <fieldset>
                        <legend>Seus dados</legend>

                        <label for="nome">Nome:</label>
                        <input id="nome" type="text" name="nome-contato" placeholder="Digite seu nome..." autofocus="" required="" pattern="[A-Za-z ']{4,}" title="O nome precisa ter pelo menos 4 caracteres.">

                        <label for="email">E-mail:</label>
                        <input id="email" type="email" name="email-contato" placeholder="nome@email.com.br" required="">

                    </fieldset>

                    <fieldset>
                        <legend>Assunto</legend>
                        <label>
                            <input type="radio" name="assunto" value="Blog">
                            Blog
                        </label>
                        <label>
                            <input type="radio" name="assunto" value="Serviço" checked="">
                            Serviço
                        </label>
                        <fieldset>
                            <input id="outro" type="radio" name="assunto" value="Outro">
                            <label for="outro">Outro</label>
                            <input type="text" name="outro-assunto" placeholder="Especifique seu assunto...">
                        </fieldset>
                    </fieldset>

                    <label for="mensagem">Mensagem</label>
                    <textarea id="mensagem" name="msg" cols="60" rows="10" placeholder="Escreva sua mensagem..." required=""></textarea>
                    <button type="submit">Enviar mensagem</button>

                </form>
            </div>
        </main>

        <img class="minha-foto" src="img/eu.jpg" alt="Foto de João da Silva">

        <aside class="navegacao-site">
            <h1>João da Silva</h1>
            <nav>
                <ul>
                    <li><a href="index.html">Home</a></li>
                    <li><a href="portfolio.html">Portfolio</a></li>
                    <li><a href="bio.html">Sobre mim</a></li>
                    <li><a href="blog.html">Blog</a></li>
                    <li><a href="contato.html">Contato</a></li>
                </ul>
            </nav>
            <ul class="icones-redes-sociais">
                <li><a class="github" href="https://github.com/joaodasilva" data-legenda="Acesse Github">Github</a></li>
                <li><a class="twitter" href="https://twitter.com/joaodasilva" data-legenda="Acesse Twitter">Twitter</a></li>
                <li><a class="linkedin" href="https://br.linkedin.com/pub/joão-da-silva/32/4/508" data-legenda="Acesse LinkedIn">LinkedIn</a></li>
            </ul>
        </aside>
        <footer class="rodape-pagina clearfix">
            &copy; João da Silva 2014
        </footer>
    </body>
</html>
legend, label[for="mensagem"]{
    font-weight: bold;
    padding-top: 1.5em;
}

label[for]{
    display: block;
}

input[type="text"], input[type="email"], textarea {
    font-family: inherit;
    font-size: 100%;
    border: .15em solid #ccc;
    padding: .25em .5em;
    width: 100%;
    box-sizing: border-box;

}

fieldset > fieldset, label[for="outro"]{
    display: inline;
}

input[value="Outro"] ~ input{
    width: auto;
    display: none;
}

input[value="Outro"]:checked ~ input{
    display: inline;

}

input:focus, textarea:focus{
    background-color: #FFD;
}

input:invalid{
    box-shadow: 0 0 .2em red;
}

button{
    float: right;
    margin-top: 1em;
    background-color: #3C1D3D;
    color: #F2FFFC;
    font-family: "Open Sans Condensed", "Arial", sans-serif;
    font-size: 1.2em;
    border: 0;
    padding: .5em 1em;
}

button:hover, button:focus{
    background-color: #8C1D3D;
}
4 respostas

Olá Amadeu, tudo bom?

Poderias colocar o teu código HTML e o código CSS que te referes na pergunta? Basta editar o tópico, clicar em INSERIR CÓDIGO e colar o seu código no lugar indicado.

Dessa forma facilitaria para o pessoal encontrar o problema e por fim te ajudarem.

Abraço!

Com a situação que passei, como resolver o problema, por gentileza?

solução!

Fala Amadeu, beleza?

Faz tempo que essa pergunta foi feita. Você provavelmente já deve ter sanado suas dúvidas. Consegui sanar algumas e deixarei registrado para outras pessoas que tenham dúvidas parecidas:

1º: button é, por padrão, inline-block. Para que o margin-left funcione, é preciso declarar display: block

2º "Legendas e label: para espaçar dos campos anteriores a elas, o margin-top não funciona, só consegui usando o padding-top": no meu caso, o margin-top só não funcionou para as tags legends. Descobri que é algo relacionado ao Chrome, pois testei no Explorer e funcionou. Bom, nesse caso eu só sei onde está o problema, ainda não encontrei a solulção, rs.

Espero ter ajudado, abraços!

Muito obrigado, Lucas!

Ajudou sim, de certo modo, entendi de acordo com sua experiência no caso.

Abraço, Amadeu Gualter