Com canviar el color del text del marcador de posició als camps d'entrada HTML mitjançant CSS

Com canviar el color del text del marcador de posició als camps d'entrada HTML mitjançant CSS
CSS

Estil del text de marcador de posició amb CSS

Quan treballeu amb formularis HTML, és possible que vulgueu personalitzar l'aparença del text del marcador de posició dins dels camps d'entrada. Tot i que Chrome v4 i altres navegadors admeten l'atribut de marcador de posició als elements input[type=text], simplement aplicar estils CSS a aquest atribut no sempre funciona com s'esperava.

Per exemple, intentar canviar el color del text del marcador de posició mitjançant els selectors CSS estàndard no donarà els resultats desitjats. Aquest article explora com podeu modificar de manera eficaç el color del text del marcador de posició mitjançant els pseudoelements CSS correctes i les regles específiques del navegador.

Comandament Descripció
::placeholder Un pseudoelement en CSS que s'utilitza per estilitzar el text del marcador de posició d'un camp d'entrada.
:focus Una pseudo-classe en CSS que s'utilitza per aplicar estils quan un element està enfocat, com ara quan un usuari fa clic en un camp d'entrada.
opacity Una propietat CSS que estableix el nivell de transparència d'un element. S'utilitza aquí per garantir que el text del marcador de posició sigui totalment visible.
DOMContentLoaded Un esdeveniment de JavaScript que s'activa quan el document HTML inicial s'ha carregat i analitzat completament.
querySelector Un mètode JavaScript que retorna el primer element del document que coincideix amb un selector CSS especificat.
addEventListener Un mètode JavaScript que enllaça un controlador d'esdeveniments a un element sense sobreescriure els controladors d'esdeveniments existents.
setAttribute Un mètode JavaScript que estableix el valor d'un atribut a l'element especificat. S'utilitza aquí per actualitzar el text del marcador de posició.

Entendre les tècniques d'estil de text de marcador de posició

El primer guió utilitza ::placeholder, un pseudoelement CSS que s'orienta específicament al text de marcador de posició d'un camp d'entrada. Això és crucial perquè els selectors CSS estàndard no afecten el text del marcador de posició. Mitjançant l'ús de input::placeholder, podem aplicar estils directament al text del marcador de posició, com ara canviar-ne el color a vermell. A més, l'script inclou selectors específics del navegador com ara input:-moz-placeholder per a Mozilla Firefox i input::-ms-input-placeholder per a Internet Explorer i Microsoft Edge. Aquests selectors garanteixen la compatibilitat entre els diferents navegadors, permetent que el color del text del marcador de posició tingui un estil uniforme independentment de l'elecció del navegador de l'usuari.

El segon script utilitza JavaScript per canviar dinàmicament el color del text del marcador de posició. Comença amb el DOMContentLoaded esdeveniment per assegurar-se que l'script només s'executa després que el document HTML inicial estigui completament carregat. El querySelector llavors s'utilitza el mètode per seleccionar l'element d'entrada. Els oients d'esdeveniments s'afegeixen a aquest element per gestionar els esdeveniments de focus i desenfocament. Quan el camp d'entrada guanya el focus, el text del marcador de posició s'esborra i el color del text d'entrada s'estableix en negre. Quan el camp d'entrada perd el focus, el text del marcador de posició es restaura i el seu color es configura en vermell. El setAttribute El mètode s'utilitza per actualitzar l'atribut de marcador de posició dinàmicament, assegurant que el text del marcador de posició apareix i desapareix tal com s'esperava.

Canviar el color del text del marcador de posició amb CSS

Ús de pseudo-elements CSS

input::placeholder {
  color: red;
  opacity: 1; /* Firefox */
}

/* For Mozilla Firefox */
input:-moz-placeholder {
  color: red;
  opacity: 1;
}

/* For Internet Explorer 10-11 */
input:-ms-input-placeholder {
  color: red;
}

/* For Microsoft Edge */
input::-ms-input-placeholder {
  color: red;
}

Implementació de la lògica de fons per gestionar els colors del text del marcador de posició

Ús de JavaScript per a l'estil de marcador de posició dinàmic

document.addEventListener("DOMContentLoaded", function() {
  var input = document.querySelector('input[type="text"]');

  input.addEventListener('focus', function() {
    input.style.color = "black";
    input.setAttribute('placeholder', '');
  });

  input.addEventListener('blur', function() {
    input.style.color = "red";
    input.setAttribute('placeholder', 'Value');
  });
});

Tècniques avançades d'estil de marcador de posició

Més enllà dels mètodes bàsics de CSS i JavaScript, hi ha tècniques més avançades per estilitzar el text de marcador de posició. Un d'aquests mètodes és utilitzar variables CSS per crear un sistema d'estil més dinàmic. Les variables CSS, també conegudes com a propietats personalitzades, permeten als desenvolupadors emmagatzemar valors que es poden reutilitzar al llarg del full d'estil. Això pot simplificar el procés d'actualització d'estils en diversos elements. Per exemple, en definir una propietat personalitzada per al color del marcador de posició, podeu canviar fàcilment el color en un sol lloc sense modificar diverses regles CSS.

Un altre aspecte a tenir en compte és l'ús de marcs i biblioteques que ofereixen capacitats d'estil ampliades. Biblioteques com Bootstrap i marcs com Tailwind CSS ofereixen classes predefinides que poden ajudar a estilitzar els elements de forma, inclosos els marcadors de posició. Aquestes eines poden estalviar temps i garantir la coherència entre les diferents parts de l'aplicació. A més, l'aprofitament de preprocessadors com SASS o LESS pot millorar encara més CSS amb funcions com la nidificació, mixins i herència, fent que el codi sigui més fàcil de mantenir i escalable.

Preguntes freqüents sobre l'estil del text de marcador de posició

  1. Com puc canviar el color del text del marcador de posició en tots els navegadors?
  2. Utilitzar el ::placeholder, :-moz-placeholder, :-ms-input-placeholder, i ::-ms-input-placeholder selectors per garantir la compatibilitat entre diferents navegadors.
  3. Puc utilitzar JavaScript per canviar el color del text del marcador de posició de manera dinàmica?
  4. Sí, podeu fer servir JavaScript per afegir oients d'esdeveniments per focalitzar i desenfocar esdeveniments i, després, utilitzar-los setAttribute per canviar el text del marcador de posició i el seu color.
  5. Què són les variables CSS i com poden ajudar amb els marcadors de posició d'estil?
  6. Les variables CSS us permeten emmagatzemar valors que es poden reutilitzar al llarg del full d'estil, cosa que facilita l'actualització dels estils de manera coherent en diversos elements.
  7. Quin és l'avantatge d'utilitzar preprocessadors CSS com SASS o LESS?
  8. Els preprocessadors CSS ofereixen funcions com l'imbricació, els mixins i l'herència, que fan que el codi CSS sigui més fàcil de mantenir i escalable.
  9. Els marcs com Bootstrap o Tailwind CSS poden ajudar amb els marcadors de posició d'estil?
  10. Sí, aquests marcs proporcionen classes predefinides que poden ajudar a estilitzar els elements de forma, inclosos els marcadors de posició, estalviant temps i garantint la coherència.
  11. Hi ha alguna manera d'animar el color del text del marcador de posició?
  12. Tot i que no és possible l'animació directa del text del marcador de posició, podeu utilitzar JavaScript per canviar el text del marcador de posició i aplicar transicions CSS al camp d'entrada per obtenir un efecte similar.
  13. Puc utilitzar CSS en línia per estilitzar el text del marcador de posició?
  14. No, CSS en línia no admet pseudoelements com ::placeholder. Heu d'utilitzar un full d'estil o un <style> bloc dins de l'HTML.
  15. Quins són alguns dels inconvenients habituals a l'hora d'estilitzar el text de marcador de posició?
  16. Els inconvenients habituals inclouen no tenir en compte la compatibilitat entre navegadors, oblidar-se d'incloure l'opacitat per al Firefox i no utilitzar els pseudoelements correctes o els selectors específics del navegador.

Consideracions finals sobre les tècniques d'estil de marcadors de posició

Canviar el color del text del marcador de posició als camps d'entrada HTML requereix una combinació de solucions CSS i JavaScript. L'ús de pseudoelements CSS i selectors específics del navegador garanteix la compatibilitat, mentre que JavaScript permet canvis dinàmics basats en les interaccions de l'usuari. Les tècniques avançades com les variables CSS, els marcs i els preprocessadors poden millorar encara més el procés d'estil, fent-lo més eficient i fàcil de mantenir. Dominar aquests mètodes permet un millor control sobre l'estètica de la forma, millorant l'experiència de l'usuari.