Si vous ne visez que le HTML5, vous pouvez utiliser :
<input type="text" id="firstname" placeholder="First Name:" />
Pour les navigateurs non HTML5, je m'inspirerais de la réponse de Floern en utilisant jQuery et en rendant le javascript non intrusif. J'utiliserais également une classe pour définir les propriétés de flou.
$(document).ready(function () {
//Set the initial blur (unless its highlighted by default)
inputBlur($('#Comments'));
$('#Comments').blur(function () {
inputBlur(this);
});
$('#Comments').focus(function () {
inputFocus(this);
});
})
Fonctions :
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;
}
10 votes
Il s'agit d'une fonctionnalité appelée "placeholder". Chrome, Firefox et IE10 prennent en charge l'attribut placeholder html5.