2016-03-23 1 views
1

J'ai une boîte de saisie. Je le personnalise dans l'état normal et sur le foyer.Conserver le style de mise au point si du texte est présent

Ma question est de savoir comment conserver le style CSS de mise au point si du texte est présent dans la zone de saisie?

.par input[type=sample]{ 
    width:75px; 
    background-color: #000; 
} 
.par input[type=sample]:focus{ 
    width:50px; 
    background-color: #FF0; 
} 
+0

Un certain texte ou simplement n'importe quel texte? CSS ne peut pas sélectionner et styler les éléments en fonction du contenu des zones de texte. – Harry

+0

@Harry Merci. N'importe quel texte – Becky

+0

Il n'est toujours pas simple à réaliser. Votre zone de texte est-elle un champ obligatoire? – Harry

Répondre

2

Il n'existe aucun sélecteur CSS pur permettant de sélectionner et de personnaliser directement les zones de texte en fonction de leur contenu. Mais si le champ est un champ obligatoire (c'est-à-dire que vous pouvez ajouter l'attribut required), le pseudo-sélecteur :valid peut être utilisé pour identifier si la zone de texte a un type de texte à l'intérieur ou non et appliquer les styles requis.

input[type=text] { 
 
    width: 75px; 
 
    background-color: #000; 
 
} 
 
input[type=text]:focus, 
 
input[type=text]:valid { 
 
    width: 50px; 
 
    background-color: #FF0; 
 
}
<input type="text" required /> 
 
<input type="text" required />

0
input[value=""]:focus { 
    background-color: yellow; 
} 

<input onkeyup="this.setAttribute('value', this.value);" value="" /> 

une autre façon serait de vérifier à l'aide jquery .. ': contient' sélecteur

-1

vous pouvez avoir un plus sélecteur avec: pseudo-classe valide.

.par input[type=sample]:valid{ 
    width:50px; 
    background-color: #FF0; 
    }