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
Să începem cu un exemplu pentru cei care nu știu încă ce este un substituent și cum să-l folosească:
Când dezvoltați interfețe, ar trebui să țineți cont de comportamentul substituenților. Textul substituent dispare de îndată ce începe tastarea. De aceea nu ar trebui să le folosiți pentru a transmite informații despre câmpul de intrare în sine (câte și ce caractere ar trebui să conțină). În aceste scopuri, cel mai bine este să folosiți eticheta
Stilizare
Următoarele reguli sunt folosite pentru a stila substituenții:
::-webkit-input-placeholder ( culoare : albastru ; ) ::-moz-placeholder ( culoare : albastru ; ) /* Firefox 19+ */ :-moz-placeholder ( culoare : albastru ; ) /* Firefox 18- * / :-ms-input-placeholder ( culoare : albastru ; )Arată groaznic, nu-i așa? Și există un motiv pentru asta - până acum regulile CSS pentru substituenți nu au fost standardizate și implementarea este diferită în fiecare browser. Mai multe informații despre toate prefixele necesare pot fi găsite pe caniuse.
Dacă utilizați un preprocesor CSS, probabil că veți fi cel mai confortabil să scrieți un mixin simplu pentru a aplica stiluri substituenților. Exemplu în Sass:
Substituent @mixin ( & :- webkit-input-placeholder ( @content ; ) & : - moz-placeholder ( @content ; ) & :- moz-placeholder ( @content ; ) & : - ms-input-placeholder ( @conținut ) )În funcție de context, un mixin poate fi folosit pentru ambele aplicare globală stiluri și pentru elemente individuale (încercați pe SassMeister):
// La nivel global pentru fiecare câmp de intrare@include substituent (culoare: albastru;) // Pentru anumite câmpuri de intrare.input ( @include substituent ( culoare : verde ; ) )Exemplu
Text albastru pentru substituent (nu faceți niciodată acest lucru):
.blue-text ::-webkit-input-placeholder ( culoare : #2e8ece ; ) .blue-text :-moz-placeholder ( culoare : #2e8ece ; ) .blue-text ::-moz-placeholder ( culoare : #2e8ece ; ) .blue-text :-ms-input-placeholder ( culoare : #2e8ece ; )
Proprietăți acceptate
Nu fiecare proprietate CSS poate fi folosit cu substituenți. Aici lista completa proprietăți acceptate:
- font și toate proprietățile aferente (dimensiunea fontului, familia fontului etc.)
- fundal și toate proprietățile aferente (culoarea fundalului, imaginea de fundal etc.)
- opacitate
- text-indentare
- text-debordare
- culoare
- text-transformare
- înălțimea liniei
- spațierea cuvintelor
- spațiere între litere
- text-decor
- vertical-align
Animații
Ideile de animație aparțin blogului html5.by.
Toate exemplele următoare sunt scrise folosind preprocesorul Sass. Fiecare vine cu un link către SassMeister unde puteți găsi codul CSS compilat.
Cel mai probabil, veți dori să aplicați animații substituenților atunci când câmpul de intrare este focalizat. Toate acestea se fac destul de simplu. Este suficient să folosiți de câteva ori substituentul scris anterior:
.input ( @include substituent ( // Stiluri pentru starea normală) & :focus ( @include substituent ( // Stiluri după evenimentul de focalizare } } }Schimbați transparența
.input ( @include substituent ( culoare : #aaa ; opacitate : 1 ; tranziție : opacitate 300 ms ; ) & :focus ( @include substituent ( opacitate : 0 ; ) ) )
Schimbați la dreapta și la stânga
Cum latime mai mare câmpurile de intrare, cu atât valoarea proprietății text-indent ar trebui să fie mai mare. Pentru câmp standard O intrare de 500px va fi suficientă pentru cele mai largi, ar trebui să o selectați manual. Viteza animației depinde de lățimea câmpului de introducere și de valoarea indentării textului. Pentru a vă deplasa la stânga, trebuie să utilizați valori negative, de exemplu -500px .
Schimbați în jos
Ca și în exemplul anterior, animația depinde de dimensiunea intrării, dar în acest caz, acordați atenție înălțimii. Pentru marea majoritate a câmpurilor de intrare, valoarea necesară a înălțimii liniei va fi de 100 pixeli . Din păcate, proprietatea line-height nu poate fi utilizată pentru a crea un efect de schimbare în sus, deoarece proprietatea nu acceptă valori negative.
.input ( @include substituent ( text-indent : 0px ; tranziție : text-indent 300ms ; ) & :focus ( @include substituent ( text-indent : 500px ; ) ) )
Toți împreună
Pentru a face ca utilizarea codului de animație pentru substituenți să fie plăcută și convenabilă, puteți scrie o mică bibliotecă de mixuri pentru orice preprocesor. Biblioteca arată astfel ():
@mixin substituent ( & : :- placeholder webkit-input ( @content ) & : - substituent moz ( @conținut ) & : : - substituent moz ( @conținut ) & : - substituent de intrare ms ( @conținut ) ) @mixin pl-shift ($side : stânga , $position : 500px , $duration : 200ms ) ( @include substituent ( text-indent : 0 ; tranziție : text-indent $duration ; ) & :focus ( @include substituent ( text-indent : if ($partea == stânga , - $poziție , $poziție ) ) ) @mixin pl-slide-down ($poziție : 5 , $durată : 200ms ) ( @include substituent ( line-height : 1 ; transition : line-height $duration ; ) & :focus ( @include placeholder ( line-height : $position ; ) ) ) @mixin pl-fade-out ($duration : 200ms ) ( @include placeholder ( opacitate : 1 ; tranziție) : opacitate $durată ) & :focus ( @include substituent ( opacitate : 0 ; ) )Este foarte usor de folosit. Este suficient să conectați mixin-ul dorit la orice câmp de intrare sau pur și simplu să creați o regulă globală pentru toți pașii de pe pagină:
// Pentru elemente individuale.pl-shift-right ( @include pl-shift (dreapta); ) .pl-fade-out ( @include pl-fade-out ; ) // Pentru orice altceva@include pl-shift ( stânga );Autoprefixer
Dacă nu folosiți un preprocesor și tot nu doriți ca fișierul sursă CSS să se transforme într-o mizerie de prefixe pe care să le vadă toată lumea browsere posibile, apoi acordați atenție Autoprefixerului. Cu ajutorul lui CSS pur poate fi murdar (dar într-un fișier diferit) prin adăugarea tuturor prefixelor necesare la toate proprietățile. Pentru ca pluginul să funcționeze cu substituenți, trebuie doar să utilizați pseudo-element::placeholder:
:: substituent ( culoare : portocaliu ; ) . intrare::substituent(culoare:albastru;)După analizarea stilurilor dvs., Autoprefixer va crea CSS separat un fișier care va conține toate prefixele necesare pentru toate browserele pe care le specificați.
Ce urmează
După cum am scris mai sus, tot ceea ce este legat de aplicarea stilurilor la substituenți nu a fost încă standardizat. Acest lucru va fi rezolvat în curând. Specificația Selector Level 4 a adăugat o pseudo-clasă: placeholder-sown , care va standardiza în sfârșit amestecul nebun de pseudo-clase și pseudo-elemente care există în prezent. Puteți monitoriza suportul pe caniuse (în prezent nu este acceptat în niciun browser).
Aplicarea stilurilor cu :placeholder-sown va fi mult mai ușoară:
.input : substituent-afisat ( culoare : albastru ; )În acest tutorial veți învăța cum să schimbați culoarea alt text(culoarea textului substituent) câmpuri de formular.
Textul substituent al câmpului formular conține un sfat explicativ care indică datele așteptate în câmp. Acesta ar putea fi un exemplu sau scurtă descriere informatiile asteptate. Un scurt indiciu este afișat în câmp înainte ca utilizatorul să înceapă să introducă date.
În mod implicit, textul alternativ este gri deschis (care este modul în care browserele îl afișează). Pentru a adăuga la acest text stiluri personalizate Va trebui să utilizați prefixele browserului pentru proprietățile CSS.
Pentru a schimba culoarea textului alternativ, urmați aceste instrucțiuni:
- Teme WordPress (teme WooCommerce/Jigoshop) /wp-content/themes/themeXXXXX/style.css
- Șabloane Joomla (șabloane VirtueMart) /templates/themeXXXX/css/template.css
- Teme Drupal /sites/all/themes/themeXXX/css/style.css
- Șabloane web (HTML5) /css/style.css
- Teme Magento /skin/frontend /default/themeXXX/css/styles.css
- Teme PrestaShop /themes/themeXXXX/css/global.css
- Teme OpenCart /catalog/view/theme/themeXXX/stylesheet /stylesheet .css
- Teme ZenCart /includes/templates/themeXXX/css/stylesheet .css
- Șabloane osCommerce /css/stylesheet.css
- Șabloane Shopify stil.css.lichid
Salvați modificările și încărcați fișierele CSS pe server.
Cod conform următoarele informații(rețineți că trebuie să adăugați același cod de 4 ori pentru fiecare prefix de browser):
Selectați fișierul la care veți adăuga codul. Îl puteți adăuga la orice fișier CSS de pe site-ul dvs., dar am pregătit pentru dvs. o listă de fișiere în care este recomandat să adăugați Reguli CSS Pentru diferite tipuri motoarele de site:
Șabloane CMS:
Șabloane de comerț electronic:
Bună ziua, astăzi nu veți surprinde pe nimeni folosind un substituent pentru introducere. Substituent este un text temporar cu un exemplu în interiorul intrării, care dispare atunci când introduceți text. Stilul CSS pentru substituent, vom încerca să ne înregistrăm astăzi.
Sarcină: creați-vă propriul stil CSS pentru substituent
Să presupunem că avem un site web elegant care folosește un substituent în intrare. Trebuie să facem ca stilul gri sumbru al textului substituent stilul general site-ul. Cum se poate realiza acest lucru? Voi spune imediat că acest lucru nu funcționează încă în toate browserele. Mai exact, nu funcționează deloc în IE versiunile 9 și mai jos în 10 și mai târziu funcționează cu mare dificultate; Firefox și browserele webkit sunt o altă problemă.
Soluție: stilul css pentru substituent
Deci, am stabilit sarcina, cum o vom rezolva?
Mai întâi, să creăm un teren de testare:
Gata, acum să vedem ce putem face cu stilul: webkit și mozilla au propriii modificatori care vă permit să atribuiți un stil special substituentului: ::-webkit-input-placeholder și:-moz-placeholder. Să vedem cum să le folosim:
Să descriem stilul intrării în sine și textul din ea ( albastru pentru contrast în exemplu):
Intrare( lățime: 250px; culoare: albastru; greutate font: normal; stil font: normal; )
Acum să scriem un stil special pentru textul substituent din această intrare pentru browserele Webkit (Chrome, Safari, Opera):
Intrare::-webkit-input-placeholder (culoare: roșu; stil font: cursiv; greutate font: bold; )
Să facem textul substituentului roșu cursiv aldine. Rețineți că, spre deosebire de alte pseudoclase CSS, care sunt separate printr-un singur două puncte, stilul pentru substituent din webkit este separat prin două puncte.
Acum să scriem exact același stil pentru Mozilla Firefox browsere:
Intrare:-moz-placeholder(culoare: roșu; stil font: cursiv; greutate font: bold; )
Gata. Stilul CSS pentru substituent, bineînțeles că puteți scrie oricare care este mai potrivit pentru designul dvs. O demonstrație de lucru poate fi vizualizată pe jsFiddle sau chiar mai jos:
Sper că acest articol vă va ajuta să vă faceți site-ul mai ușor de utilizat.