HTML / CSS создание текстового поля с текстом, который неактивен, и исчезает, когда я нажимаю, чтобы ввести информацию, как?



Как сделать текстовое поле с серым содержимым, и когда я нажимаю на него, чтобы ввести текст, серую часть, она исчезает и позволяет мне ввести нужный текст?



пример:



текстовое поле "Имя". Слова " Имя " находятся внутри текстового поля серым цветом, когда я нажимаю, эти слова исчезают, и я пишу свое имя в нем.

523   8  

8 ответов:

этот ответ иллюстрирует подход до HTML5. Пожалуйста, взгляните на ответ Psytronic для современного решения с помощью .


HTML:

<input type="text" name="firstname" title="First Name" style="color:#888;" 
    value="First Name" onfocus="inputFocus(this)" onblur="inputBlur(this)" />

JavaScript:

function inputFocus(i) {
    if (i.value == i.defaultValue) { i.value = ""; i.style.color = "#000"; }
}
function inputBlur(i) {
    if (i.value == "") { i.value = i.defaultValue; i.style.color = "#888"; }
}

Chrome, Firefox, IE10 и Safari поддерживают атрибут заполнителя html5

<input type="text" placeholder="First Name:" />

чтобы получить более кросс-браузерное решение, вам нужно будет использовать javascript, там есть много готовых решений, хотя я не знаю ни одного из них с моей головы.

http://www.w3schools.com/tags/att_input_placeholder.asp

С HTML5, вы можете сделать это изначально с: <input name="first_name" placeholder="First Name">

это не поддерживается со всеми браузерами, хотя (IE)

Это может работать:

<input type="first_name" value="First Name" onfocus="this.value==this.defaultValue?this.value='':null">

в противном случае, если вы используете jQuery, вы можете использовать .фокус и. css для изменения цвета.

если вы ориентируетесь только на HTML5 вы можете использовать:

<input type="text" id="firstname" placeholder="First Name:" />

для браузеров, отличных от HTML5, я бы построил ответ Floern с помощью jQuery и сделал javascript не навязчивым. Я бы также использовал класс для определения размытых свойств.

$(document).ready(function () {

    //Set the initial blur (unless its highlighted by default)
    inputBlur($('#Comments'));

    $('#Comments').blur(function () {
        inputBlur(this);
    });
    $('#Comments').focus(function () {
        inputFocus(this);
    });

})

функции:

function inputFocus(i) {
    if (i.value == i.defaultValue) {
        i.value = "";
        $(i).removeClass("blurredDefaultText");
    }
}
function inputBlur(i) {
    if (i.value == "" || i.value == i.defaultValue) {
        i.value = i.defaultValue;
        $(i).addClass("blurredDefaultText");
    }
}

CSS:

.blurredDefaultText {
    color:#888 !important;
}

самый короткий путь-добавить код ниже в качестве дополнительных атрибутов в типе ввода, который вы хотите изменить.

onfocus="if(this.value=='Search')this.value=''" 
onblur="if(this.value=='')this.value='Search'"

обратите внимание: измените текст "поиск" на " go " или любой другой текст в соответствии с вашими требованиями.

это работает:

<input type="text" id="firstname" placeholder="First Name" />

Примечание: вы можете изменить заполнитель, идентификатор и значение типа на "электронная почта" или все, что соответствует вашим потребностям.

больше деталей W3Schools на:http://www.w3schools.com/tags/att_input_placeholder.asp

но на сегодняшний день лучшими решениями являются Floern и Vivek Mhatre ( под редакцией j0k )

у меня есть код ниже, это типичный веб страница.

.Submit {
    background-color: #008CBA;
    border: 3px;
    color: white;
    padding: 8px 26px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
}
div {
  background-color: yellow;
  }
<div>
  <center>
  <p>Some functions may not work, such as the css ect.
  <p>First Name:<input type="text" id="firstname" placeholder="John" />
  <p>Surname:<input type="text" id="surname" placeholder="Doe" />
  <p>Email:<input type="email" id="email" placeholder="[email protected]" />
  <p>Password:<input type="email" id="email" placeholder="[email protected]" />
  <br /><button class="submit">Submit</button>                 </center>
</div>

Это сложная версия, чтобы помочь вам понять

function setVolatileBehavior(elem, onColor, offColor, promptText){
elem.addEventListener("change", function(){
    if (document.activeElement == elem && elem.value==promptText){
        elem.value='';
        elem.style.color = onColor;
    }
    else if (elem.value==''){
        elem.value=promptText;
        elem.style.color = offColor;
    }
});
elem.addEventListener("blur", function(){
    if (document.activeElement == elem && elem.value==promptText){
        elem.value='';
        elem.style.color = onColor;
    }
    else if (elem.value==''){
        elem.value=promptText;
        elem.style.color = offColor;
    }
});
elem.addEventListener("focus", function(){
    if (document.activeElement == elem && elem.value==promptText){
        elem.value='';
        elem.style.color = onColor;
    }
    else if (elem.value==''){
        elem.value=promptText;
        elem.style.color = offColor;
    }
});
elem.value=promptText;
elem.style.color=offColor;
}

используйте вот так:

setVolatileBehaviour(document.getElementById('yourElementID'),'black','gray','Name');

вы можете использовать решение Floern. Вы также можете отключить ввод, когда вы устанавливаете цвет на серый. http://www.w3schools.com/tags/att_input_disabled.asp

Comments

    Ничего не найдено.