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

Ícone do nome

já olhei varias vezes, meu ícone para o nome não aparece. Segue o código 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>
                <fieldset>
                    <legend>Seus dados</legend>
                    <label for="nome">Nome completo</label>
                    <input id="nome" type="text" name="nome" required autofocus 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" required placeholder="seu@email.com">
                </fieldset>
                <fieldset>
                    <legend>Assunto</legend>
                    <label>
                        <input type="radio" name="assunto" value="Blog">
                        Blog
                    </label>
                    <label>
                        <input type="radio" name="assunto" value="Serviço">
                        Serviço
                    </label>
                    <fieldset>
                        <input type="radio" name="assunto" value="Outro" id="outro">
                        <label for="outro">
                            Outro
                        </label>
                        <input type="text" name="outro-assunto">
                    </fieldset>
                </fieldset>
                <label for="mensagem">Mensagem</label>
                <textarea id="mensagem" name="mensagem" cols="60" rows="10" placeholder="Digite aqui sua mensagem"></textarea>
                <button type="submit">Enviar mensagem</button>
            </form>
        </div>
    </main>

CSS

legend,
label[for="mensagem"] {
    font-weight: bold;
    margin-top: 1em;
}
label[for],
button {
    display: block;
}
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 {
    border: 0;
    padding: .5em 1em;
    font-family: "Open Sans Condensed", sans-serif;
    background-color: #3C1D3D;
    color: white;
    font-size: 1.2em;
    margin-left: auto;
    margin-top: 1em;
}
input:invalid {
    box-shadow: 0 0 3px red;
}
input:focus,
textarea:focus {
    background-color: #FFD;
}
button:focus {
    background-color: #8C1D3D;
}
fieldset > fieldset {
    display: inline;
}
label[for="outro"] {
    display: inline;
}
input[name="outro-assunto"] {
    width: auto;
}
input[value="Outro"] ~ input {
    display: none;
}
input[value="Outro"]:checked ~ input {
    display: inline;

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

Não faço ideia do que possa ser!

2 respostas

Tente remover o espaço no seus seletores:


label[for="nome"]
label[for="nome"]:after
`
solução!

Oi Antenor, tudo bem?

O icone nao aparece, pode ser alguma regra, declaracao ou mesmo seletor que está errado.

Vamos reparar entao justamente nas regras que teriam que colocar o icone do nome:

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

Repara agora no seletor da primeira regra CSS, Veja que o que você está falando para o browser é "Browser, me vê um elemento qualquer que tenha o atributo for e que esse atributo tenha o valor "nome". Ah! E esse elemento qualquer precisa ser filho de um elemento label!"

Pegou a jogada? Sempre quando a gente coloca um espaço ali no seletor quer dizer o que? Filho! (Ou neto, bisneto, etc).

Mas no caso o elemento que tem o atributo for quem que é? A própria label!

Só tirar o espaço ali então que ele vai funcionar!

Espero ter ajudado e bons estudos,

Abcs!