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

Posição do ìcone do nome

O meu ícone só ficou na posição correta com o top em 40%. Se coloco top 100% o ícone fica em cima da label "email", e se coloco bottom 100% fica em cima do nome. O que eu fiz de errado?

label[for],
button {
    display:block;
}

legend, .mensagem {
    font-weight:bold;
    margin-top:1em;
}

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

button{
    display:block;
    font-family: "Open Sans Condensed", "Arial", sans-serif;
    font-size:1.2em;
    background-color: #3C1D3D;
    color: white;
    padding: .5em 1em;
    /*float:right;
    clear:right;*/
    border:0;
    margin-left: auto;
    margin-top: 1em;

}

.assunto>fieldset{
    display:inline;
    }

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

input[name="outro-assunto"]{
    width:auto;
}


input:invalid{
    box-shadow: 0 0 3px red;
}

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


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

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

label[for="nome"]{
    position:relative;
}

label[for="nome"]:after{
    content:"";
    background-image:url(../imagens/usuario.png);
    background-size: 50% 50%;
    background-position: center;
    background-color:#666;
    background-repeat: no-repeat;
    width: 2em;
    height: 2em;
    position: absolute;
    top:40%;
    left:0;

}

#nome{
    width: calc(100% - 2em);
    position: relative;
    left: 2em;
}
3 respostas

Opa, esqueci de colocar o html...

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Contato - João da Silva</title>
    <link rel="icon" href="imagens/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" 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">
</head>
<body>
    <main>
        <h1 class="titulo-principal">Contato</h1>
        <div class="container">
            <form>
               <!-- <label for="nome">Nome:</label>                    <input id="nome" name="nome" placeholder="Seu nome aqui"> uma sintaxe diferente para inclusão de termos num formulário-->
               <fieldset class="dados-pessoais">   
                    <legend>Seus Dados</legend>  
                    <label for="nome">
                        Nome: 
                        <input  id ="nome" name="nome" placeholder="Seu nome aqui" type="text" required autofocus pattern="[A-Za-z ']{4,}" title="O nome precisa ter pelo menos 4 caracteres">
                    </label>
                    <label for="email">
                        E-mail:
                        <input type="email" name="email" placeholder="seu@email.com" required>

                    </label>
                </fieldset>

            <fieldset class="assunto">
                    <legend>Assunto</legend>
                   <!-- <select>
                        <optgroup>
                            <option value="blog">Blog</option>
                            <option value="servico">Serviço</option>
                            <option value="outro">Outros</option>
                        </optgroup>
                    </select>-->
                   <label>
                       <input type="radio" name="assunto" value="blog">
                        Blog
                    </label>
                    <label>
                        <input type="radio" name="assunto" value="serviço">
                        Serviço
                    </label>
                    <!-- <label>
                        <input type="radio" name="assunto" value="Outro">
                        Outro
                    </label>-->
                  <fieldset>
                <input type="radio" value="Outro" id="outro" name="assunto">
                <label for="outro">Outro</label>
                <input type="text" name="outro-assunto">
            </fieldset>
        </fieldset>

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


            </form>
        </div>
    </main>
    <img src="imagens/eu.jpg" alt="Minha foto" class="minha-foto">
    <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 href="https://github.com/joaodasilva" class="github" data-legenda="conheça meus projetos opensource">
                    Github
                </a>
            </li>
            <li>
                <a href="https://twitter.com/joaodasilva" class="twitter" data-legenda="Siga-me no Twitter">
                    Twitter
                </a>
            </li>
            <li>
                <a href="https://br.linkedin.com/pub/joão-da-silva/32/4/508" class="linkedin" data-legenda="veja meu currículo">
                    LinkedIn
                </a>
            </li>
        </ul>
    </aside>
    <footer class="rodape-pagina">
        &copy; João da Silva 2014
    </footer>
</body>
</html>
solução!

Fala Clarisse, tudo bom?

O que aconteceu foi o seguinte: no seu html o input é filho da tag label

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

A altura da label é o tamanho do seu conteúdo, ou seja, o texto "Nome" e o "input". Ao atribuir 100% a propriedade top, você está definindo 100% da altura, ou seja para ficar abaixo.

Você pode resolver da seguinte forma:

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

Assim o ícone com top: 100% ficará abaixo da label que agora contém apenas o nome. Ou seja acima do input que está logo abaixo dela.

Muito obrigada! Ajustei o código e funcionou perfeitamente!