Culoarea substituentului. Adăugați stil CSS pentru substituent

Dacă nu sunteți familiarizat cu atributul substituent, atunci să explicăm puțin ce este și unde este folosit. Este folosit în câmpurile de introducere a formularelor. Atributul afișează un text în câmpul de introducere, reprezentând rolul unui anumit indiciu. Mai devreme pe site-ul nostru a fost un exemplu, cu folosind javascript, latura pozitiva această metodă Este compatibil cu browsere încrucișate. Acum să vorbim despre stilizarea atributului substituent, care este folosit pe elementele de intrare și zona de text.
Codul câmpului de introducere din exemplul nostru va arăta cam așa:

La ieșire obținem următorul câmp:

Acum să ne imaginăm că trebuie să stilăm substituentul, pentru aceasta trebuie să scriem un set de reguli în CSS:

::-webkit-input-placeholder ( culoare: #c1c1c1; ) ::-moz-placeholder ( culoare: #c1c1c1; ) /* Firefox 19+ */ :-moz-placeholder ( culoare: #c1c1c1; ) /* Firefox 18- */ :-ms-input-placeholder (culoare: #c1c1c1; )

Primim:

Nu putem schimba toate proprietățile, dar o listă a celor mai multe dintre ele acceptate de browserele moderne este prezentată mai jos:
font(de asemenea, proprietăți înrudite)
fundal(de asemenea, proprietăți înrudite)
culoare
spațierea cuvintelor
spațiere între litere
text-decor
vertical-align
text-transformare
înălțimea liniei
text-indentare
text-debordare
opacitate

ÎN browsere diferite regula este scrisă altfel, pentru că Nu încă standard uniform, acest set de înregistrări continuă să fie actual. În browserul IE, precum și firefox sub versiunea 18, substituentul este perceput ca o pseudo-clasă, iar în browserele noi firefox, webkit și blink este perceput ca un pseudo-element.

Scurtarea textului în substituent
Uneori, sfaturile instrumente pot fi atât de lungi încât nu se pot încadra complet în câmpul de introducere. În aceste scopuri puteți utiliza și proprietăți suplimentare care se va reduce text substituentîn câmpul de intrare.

Intrare ( text-overflow:elipse; ) input::-moz-placeholder ( text-overflow:elipse; ) input:-moz-placeholder ( text-overflow:elipse; ) input:-ms-input-placeholder ( text-overflow: :elipsă;

Ca rezultat, obținem un câmp de intrare cu un substituent ca acesta:

Ascundeți textul când faceți clic pe un câmp
În mod implicit, fiecare browser interpretează răspunsul substituentului în mod diferit. În unele browsere este ascuns imediat când dați clic pe câmp, în altele este ascuns când există cel puțin un caracter în câmpul de introducere. Să facem textul să dispară când dai clic pe câmp, la fel în toate browserele.

:focus::-webkit-input-placeholder (culoare: transparent; ) :focus::-moz-placeholder (culoare: transparent; ) :focus:-moz-placeholder (culoare: transparent; ) :focus:-ms-input -substituent (culoare: transparent; )

Obținem această acțiune:

Pseudo-element::culoarea substituentului (în unele cazuri pseudo clasă) vă permite să setați conținutul text al elementului de formular. Este setat folosind atributul substituent: .

Acest text poate fi stilat pentru a se potrivi celor mai multe browsere moderne folosind prefixe speciale:

::-webkit-input-placeholder ( /* Chrome/Opera/Safari */ culoare: roz; ) ::-moz-placeholder ( /* Firefox 19+ */ culoare: roz; ) :-ms-input-placeholder ( /* IE 10+ */ culoare: roz ) :-moz-placeholder ( /* Firefox 18- */ culoare: roz; )

Avertisment: aceasta este o sintaxă non-standard și are nume ciudate asociate cu ea. :placeholder-shown este un standard și chiar și autorii specificației probabil cred că ::placeholder este standardizat.

Ca și în cazul oricărui pseudo-element, îl puteți aplica la anumite elemente după cum urmează:

input.big-dog::-webkit-input-placeholder (culoare: portocaliu; )

Vezi exemplu

Diferența dintre: substituent-afișat și::substituent

:placeholder-sown are scopul de a evidenția formularul de intrare și Substituent CSS culoarea este responsabilă pentru stilul textului.

Uită-te la diagramă:

Acest lucru se dovedește a fi confuz pentru mulți oameni și văd adesea specificații în care există :placeholder-shown, dar nu ::placeholder .

Trebuie remarcat faptul că :placeholder-sown poate afecta stilul textului, deoarece este pentru el element părinte (de exemplu, puteți schimba dimensiunea fontului).

Vă rugăm să rețineți: :placeholder-shown este o pseudo-clasă ( element într-o anumită stare), iar :: substituent este un pseudo-element ( parte vizibilă care nu se află în DOM). Ele diferă prin ghilimele simple și duble.

Deoarece :placeholder-sown este o pseudo-clasă, trebuie să evidențieze un element existent. Și, prin urmare, evidențiază formularul de introducere atunci când este afișat textul din elementul de formular. Pseudo-elementul :: substituent cuprinde textul substituentului în sine.

Element sau clasă?

În acest sens, culoarea substituentului de intrare nu este standardizată. Aceasta înseamnă că fiecare browser are propria înțelegere a modului în care ar trebui să funcționeze.

Această pseudo-clasă a fost implementată inițial în browser Firefox. Această pseudo-clasă nu oferă prea mult spațiu de mișcare. De exemplu, dacă doriți să schimbați culoarea textului atunci când evidențiați un formular de introducere, va trebui să utilizați un selector precum input:focus::placeholder . Dar pseudoclasa nu permite acest lucru.

IE10 acceptă această funcționalitate mai degrabă ca pseudo-clasă decât ca element. În toate celelalte browsere este tratat ca un pseudo-element.

Culoarea substituentului în Firefox

Veți observa că culoarea substituenților arată plictisitoare în comparație cu alte browsere. Imaginea de mai jos arată Firefox 43 în stânga și Chrome 47 în dreapta:


Acest lucru se întâmplă deoarece, implicit, toate stub-urile din Firefox primesc sens suplimentar transparenţă. Pentru a scăpa de acest efect, avem nevoie rândul următor cod:

::-moz-placeholder ( opacitate: 1; )

Încercați să deschideți această demonstrație în Firefox.

Suport stil

Pseudoelementul acceptă următoarele proprietăți:

  • proprietățile fontului;
  • culoare;
  • proprietăți de fundal;
  • spațierea cuvintelor;
  • spațiere între litere;
  • text-decor;
  • vertical-align ;
  • text-transform ;
  • înălțimea liniei;
  • text-indentare;
  • opacitate;

Resurse suplimentare

Documentația MDN
Documentația IE
Articol detaliat pe blogul Treehouse

Atributul substituent este utilizat pentru a crea indicații în interiorul câmpurilor de introducere goale (etichete Şi