Maison > interface Web > tutoriel CSS > Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

青灯夜游
Libérer: 2021-01-14 18:49:13
avant
2381 Les gens l'ont consulté

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

(Partage vidéo d'apprentissage : tutoriel vidéo CSS)

Généralement, nous utilisons souvent le placeholder sélecteur de pseudo-classe pour modifier la valeur par défaut style et copie. Soudain, j'ai découvert le sélecteur de pseudo-classe placeholder-shown L'explication la plus officielle est que la pseudo-classe CSS

représente tout élément de formulaire qui affiche du texte d'espace réservé.

Pour faire simple, lorsque le contenu de l'espace réservé de la zone de saisie est affiché, que fait la zone de saisie ?

La compatibilité est la suivante, il n'y a aucun problème sur les terminaux mobiles

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

placeholder-showComment ça marche ?

:placeholder-shown La pseudo-classe CSS prend effet lorsque l'élément <input> ou <textarea></textarea> affiche un texte d'espace réservé. En termes simples, elle ne prend effet que lorsque l'espace réservé a une valeur, comme indiqué ci-dessous :

// html
<input placeholder="placeholder text" />
<textarea placeholder="placeholder text"></textarea>

// css 
input:placeholder-shown, textarea:placeholder-shown{ 
  border:1px solid pink;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Si

est videplaceholder cela n'aura aucun effet : placeholder-show

// html
<input placeholder="" />
<textarea placeholder=" text"></textarea>
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

 : placeholder-shown vs ::placeholder

Nous pouvons utiliser

pour styliser l'élément :placeholder-shown. input

input:placeholder-shown {
  border: 1px solid pink;
  background: yellow;
  color: green;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Notez quelques problèmes étranges - nous avons défini

, mais cela ne fonctionne pas. En effet, color: green ne cible que :placeholder-shown lui-même. Pour le texte d'espace réservé réel, le pseudo-élément input doit être utilisé. ::placeholder

input::placeholder {
  color: green;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

J'ai remarqué qu'il existe d'autres attributs qui affecteront également le style de

si ::placeholder-shown est appliqué. placeholder

input:placeholder-shown, textarea:placeholder-shown{ 
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 5px;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Je ne sais pas ce qui se passe, c'est peut-être parce que ces attributs sont

Hérité, si vous connaissez la raison, merci de laisser un message et dites-moi, merci. placeholder

:placeholder-show vs :empty

est un objet spécifiquement utilisé pour déterminer si un élément affiche un espace réservé. Nous l'utilisons principalement pour vérifier si le contenu :placeholder-shown est vide. (En supposant que tous input aient un espace réservé). Vous vous demandez peut-être : est-il acceptable d'utiliser input ? Jetons un coup d'oeil. empty

// html
<input value="not empty">
<input><!-- empty -->

// css
input:empty {
  border: 1px solid pink;
}

input {
  border: 1px solid black;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

On dirait que

fonctionne ici parce que nous voyons une bordure rose, mais cela ne fonctionne pas réellementempty

La raison pour laquelle il est affiché en rose est que la pseudo classe augmente le poids du CSS. Semblable aux sélecteurs de classe (c'est-à-dire

) ayant un poids plus élevé que les sélecteurs de type (c'est-à-dire .form-input). Les sélecteurs de haute autorité remplaceront toujours les styles définis par une faible autorité. input

On peut donc dire ceci : n'utilisez pas

pour vérifier si l'élément d'entrée est vide. :empty

Comment vérifier si le contenu d'entrée est vide (sans marqueurs de points) ?

La seule façon de vérifier si l'entrée est vide est d'utiliser

. Mais que se passe-t-il si notre élément d'entrée n'a pas d'espace réservé ? Voici une astuce : transmettez une chaîne vide :placeholder-shown. " "

// html
<input placeholder=" "><!--  pass empty string -->

//css
input:placeholder-shown {
  border-color: pink;
}
Copier après la connexion

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Combiner d'autres sélecteurs

On peut utiliser la pseudo-classe

pour faire l'inverse de quelque chose. Ici, nous pouvons positionner si l'entrée n'est pas vide. :not

//html
<input placeholder="placeholder" value="not empty" />

// css
input:not(:placeholder-shown) {
  border: 1px solid green;
}
Copier après la connexion

Combat pratique

En utilisant

nous pouvons obtenir l'effet d'animation suivantplaceholder-shown

Explication détaillée de : pseudo-classe affichée par un espace réservé en CSS

Le code spécifique est la suivante :

Html

<div class="input">
    <input class="input-fill" placeholder="邮箱">
    <label class="input-label">邮箱</label>
</div>
Copier après la connexion

Css

.input{
   position: relative;
 }
.input-fill{
  border: 1px solid #ececec;
  outline: none;
  padding: 13px 16px 13px;
  font-size: 16px;
  line-height: 1.5;
  width: fit-content;
  border-radius: 5px;
}
.input-fill:placeholder-shown::placeholder {
  color: transparent;
}
.input-label {
  position: absolute;
  font-size: 16px;
  line-height: 1.5;
  left: 16px; top: 14px;
  color: #a2a9b6;
  padding: 0 2px;
  transform-origin: 0 0;
  pointer-events: none;
  transition: all .25s;
}
.input-fill:focus{
  border: 1px solid #2486ff;
}
.input-fill:not(:placeholder-shown) ~ .input-label,
.input-fill:focus ~ .input-label {
  transform: scale(0.75) translate(0, -32px);
  background-color: #fff;
  color: #2486ff;
}
Copier après la connexion

Adresse originale : https://www. samanthaming.com/tidbits /88-css-placeholder-shown/

Auteur : Samantha Ming

Pour plus de connaissances liées à la programmation, veuillez visiter : Introduction à la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal