Подскажите как решить проблему в css

360
31 декабря 2017, 06:11

Делаю форму регистрации, при нажатии на поля текст, текст из поля поднимается вверх и если он прошел проверку браузером по type ( :valid ) то остается верху. Проблема заключается в поле email если некорректно введен email то текст падает на введенный текс в поле ввода с другими полями такой проблемы нет. Вот мой код

* { 
  outline: none; 
} 
 
body { 
  background: white; 
} 
 
form { 
    text-align: left; 
} 
 
label { 
    display: block; 
    padding-top: 15px; 
    text-align: left; 
} 
 
label .label-text { 
    color: grey; 
    cursor: text; 
    font-size: 14px; 
    -moz-transform: translateY(-34px); 
    -ms-transform: translateY(-34px); 
    -webkit-transform: translateY(-34px); 
    transform: translateY(-34px); 
    transition: all 0.3s; 
} 
 
label input { 
    border: 0; 
    border-radius: 2px; 
    border-bottom: 1px solid #F3F5F7; 
    color: grey; 
    font-size: 14px; 
    padding: 5px 0px; 
    text-align: left; 
    transition: all 0.5s; 
    width: 260px; 
     
} 
 
label input:focus { 
    border-bottom: 2px solid #c3d2eb; 
} 
 
label input:focus + .label-text { 
    color: grey; 
    font-size: 13px; 
    -moz-transform: translateY(-44px); 
    -ms-transform: translateY(-44px); 
    -webkit-transform: translateY(-44px); 
    transform: translateY(-44px); 
} 
 
label input:valid + .label-text { 
    font-size: 13px; 
    -moz-transform: translateY(-44px); 
    -ms-transform: translateY(-44px); 
    -webkit-transform: translateY(-44px); 
    transform: translateY(-44px); 
}
<div class="form"> 
    <label>     
    <input type="text" class="nick" required autofocus/>     
    <div class="label-text">Никнейм</div> 
    </label> 
    <label>     
    <input type="email" class="email" required />     
    <div class="label-text">E-mail</div> 
    </label> 
    <label>     
    <input type="password" class="pass" required />     
    <div class="label-text">Пароль</div>  
     </label> 
    <label>     
    <input type="password" class="pass2" required />     
    <div class="label-text">Повторите пароль</div>  
     </label> 
    <button class="btn btn-reg">Зарегистрироваться</button> 
    <div class="social_networks_form"> 
        <a href=""> 
            <div class="element"><i class="fa fa-vk" aria-hidden="true"></i></div> 
        </a> 
        <a href=""> 
            <div class="element"><i class="fa fa-facebook" aria-hidden="true"></i></div> 
        </a> 
        <a href=""> 
            <div class="element"><i class="fa fa-youtube-play" aria-hidden="true"></i></div> 
        </a> 
    </div> 
    <a href="register" class="btn-vhod">Уже есть аккаунт</a> 
</div>

Поменять тип input ( email ) не могу

Помогите пожалуйста

введите сюда код
Answer 1

Потому что браузер проверяет и получает ответ, что неправильная запись в форме и возвращает стили. Попробуйте прописать отдельно стили для вариантов, когда значение неверно.

 input:invalid:not(:placeholder-shown) {...}

Добавьте:

label input:invalid:not(:placeholder-shown) + .label-text {
font-size: 13px;
-moz-transform: translateY(-44px);
-ms-transform: translateY(-44px);
-webkit-transform: translateY(-44px);
transform: translateY(-44px);
}

а также добавьте пустой placeholder во ВСЕ input

<input type="email" class="email" required placeholder=" "/>

https://codepen.io/anon/pen/JMWQvw

READ ALSO
Размытое пятно CSS

Размытое пятно CSS

Здравствуйте, как сделать эффект такого размытого пятна как внизу на скриншоте?

427
MYSQL внешние ключи

MYSQL внешние ключи

Прочел про внешние ключи MYSQL 7 статей и так и не понялПочему не понял - не нашел ответа на вопрос: Предположим у нас есть таблицы

273
Post запрос ASP.NET web api

Post запрос ASP.NET web api

при попытке отправки Post запроса с клиента(Angular2) на сервер ASPNET web api, в ответе с сервера приходит ошибка

325
Ограничения компилятора в обобщениях

Ограничения компилятора в обобщениях

Зачем компилятор запрещает делать такие штуки как

251