Kā mainīt rīka padoma teksta krāsu vietturā, izmantojot CSS stilus? Viettura CSS stila pievienošana Stils: mainiet viettura CSS krāsu
Vietturi, tie bieži pelēkoti teksta elementi ievadē, var radīt grūtības. Par laimi, mēs esam ieguvuši īsu, bet efektīvu CSS risinājumu, lai veidotu ievades viettura tekstu jebkurā vēlamajā krāsā un necaurredzamībā. Lasiet tālāk, lai uzzinātu kodu.
Viettura teksta krāsas maiņa
Sāksim ar vienkāršu ievadi un kādu viettura tekstu. Šajā piemērā mēs izmantosim vārdu "meklēt", bet jūs varat izmantot visu, ko vēlaties. Pamata HTML ir zemāk:
HTML
Ievades (un teksta apgabala) viettura tekstam pēc noklusējuma ir gaiši pelēka krāsa, taču mēs to varam mainīt, izmantojot dažas CSS rindiņas. Šeit mēs iekrāsosim ievades tekstu sarkanā krāsā, izmantojot HTML krāsas nosaukumu, taču pietiks ar jebkuru krāsu metodi (HEX, RGB, HSL).
CSS
::-webkit-input-placeholder ( /* Chrome */ krāsa: sarkana; ) :-ms-input-placeholder ( /* IE 10+ */ krāsa: sarkana; ) ::-moz-placeholder ( /* Firefox 19 + */ krāsa: sarkana; necaurredzamība: 1; ) :-moz-placeholder ( /* Firefox 4 - 18 */ krāsa: sarkana; necaurredzamība: 1; )Ņemiet vērā, ka ir svarīgi iekļaut dažādus piegādātāju prefiksus, lai atbalstītu pēc iespējas vairāk pārlūkprogrammu. Tikai Firefox ievades viettura teksts pēc noklusējuma ir nedaudz caurspīdīgs, tāpēc nav nepieciešams iestatīt necaurredzamības rekvizītu pārlūkprogrammā IE vai Chrome.
Viettura fokusa teksta krāsas maiņa
Labi, mēs esam veiksmīgi nomainījuši viettura teksta krāsu uz sarkanu, taču būtu jauki, ja kaut kas notiktu, kad lietotājs noklikšķina mūsu ievadē. Izmantojot tos pašus piegādātāja prefiksa CSS rekvizītus, mēs varam mainīt ievades viettura teksta necaurredzamību. fokusā.
CSS
ievade ( kontūra: nav; polsterējums: 12 pikseļi; apmales rādiuss: 3 pikseļi; apmale: 1 pikseļi, vienkrāsains melns; ) ::-webkit-input-placeholder ( /* Chrome */ krāsa: sarkana; pāreja: necaurredzamība 250 ms atvieglota ievadīšana un izvadīšana ; ) :focus::-webkit-input-placeholder ( necaurredzamība: 0,5; ) :-ms-input-placeholder ( /* IE 10+ */ krāsa: sarkana; pāreja: necaurredzamība 250 ms easy-in-out; ) :focus :-ms-input-placeholder ( necaurredzamība: 0,5; ) ::-moz-placeholder ( /* Firefox 19+ */ krāsa: sarkana; necaurredzamība: 1; pāreja: necaurredzamība 250 ms, viegla ieeja-out; ) :focus:: -moz-placeholder ( necaurredzamība: 0,5; ) :-moz-placeholder ( /* Firefox 4 - 18 */ krāsa: sarkana; necaurredzamība: 1; pāreja: necaurredzamība 250 ms easy-in-out; ) :focus:-moz-placeholder (necaurredzamība: 0,5;)Iepriekš minētajā piemērā mēs esam iekļāvuši dažus pamata stilus pašai ievadei un pievienojuši necaurredzamības pāreju, lai padarītu pieredzi tikai nedaudz jaukāku. Apskatiet demonstrāciju un eksperimentējiet ar citiem CSS rekvizītiem un pārejām.
Vietturis ir ievades lauka elements, kurā var ievietot rīka padomu. Kad lietotājs sāk ievadīt datus, atbalsta teksts pazūd, lai netraucētu. Katrai pārlūkprogrammai ir savs viedoklis par to, kā šis elements ir jāparāda, un dažreiz noklusējuma stili sabojā visu dizainu. Lai tos pārvaldītu, ir jāizmanto īpašs CSS viettura noteikums.
Kur ir vietturis?
Problēma ir tā, ka ievades lauka rīka padoms ir stingri paslēpts ēnu DOM, un tam nav tik viegli piekļūt. Šim nolūkam tiek izmantots īpašs nestandarta ::placeholder. Ar tās palīdzību jūs varat pārvaldīt rīka padoma rekvizītus.
Viettura stils CSS formātā izskatās šādi:
Ievade:: vietturis ( krāsa: sarkana; necaurredzamība: 1; fonta stils: slīpraksts; )
Pārlūka atbalsts
CSS viettura pseidoelementu labi apstrādā visas mūsdienu pārlūkprogrammas, un, lai atbalstītu vecākas pārlūkprogrammas, varat izmantot šādus prefiksus:
- ::-webkit-input-placeholder - tīmekļa komplektu pārlūkprogrammām (Safari, Chrome, Opera);
- ::-moz-placeholder — Firefox pārlūkprogrammām, kas vecākas par 19. versiju;
- :-moz-placeholder — vecākam Firefox;
- :-ms-input-placeholder - for Internet Explorer virs versija 10.
Kā redzat, vecs Mozilla pārlūkprogrammas, kā arī IE uzskata, ka vietturis ir CSS pseidoklasi, nevis pseidoelementu. Nestrīdēsimies ar viņiem, mēs vienkārši ņemsim vērā šo aspektu, veidojot ievades lauku.
Stila iespējas
Viettura pseidoelementam CSS var iestatīt šādas opcijas:
- fons — rīka padomu bloku grupa attiecas uz visu ievades lauku. Var iestatīt ne tikai krāsu (fona krāsa), bet arī attēlu (fona attēls).
- teksta krāsa - krāsa;
- caurspīdīgums - necaurredzamība;
- pasvītrošana, pārvilkšana vai izsvītrošana - teksta dekorēšana;
- case - text-transform;
- iekšējie ievilkumi - polsterējums. Neatbalsta visas pārlūkprogrammas. Tāpat kā ar iekļautajiem elementiem, augšējais un apakšējais polsterējums tiek ignorēts.
- fontu displejs - fontu grupas īpašības, rindas augstums un dažādas atkāpes (teksta atkāpe, burtu atstarpes, vārdu atstarpes);
- vertikālā izlīdzināšana līnijā - vertikālā izlīdzināšana;
- teksta apgriešana, kad konteiners pārplūst — teksta pārpilde.
Fokusā
Pēc noklusējuma rīka padoms pazūd no ievades lauka tikai tad, ja tajā ir ievadīta vismaz viena rakstzīme. Bet vietturis ļauj nekavējoties īstenot pazušanu, koncentrējoties uz lauku. Lai to izdarītu, jums tas jāapvieno ar pseidoklase: fokuss.
Ievade:focus::placeholder ( krāsa: caurspīdīga; )
Dažās pārlūkprogrammās ir iespējams animēt izmaiņas vairākos viettura rekvizītos, izmantojot pārejas paziņojumu.
Ievade::placeholder ( krāsa: melna; pāreja: krāsa 1s; ) input:focus::placeholder ( krāsa: balta; )
IN Google pārlūkprogramma Chrome rīka padoma krāsa, fokusējoties uz šādu lauku, vienmērīgi mainīsies vienas sekundes laikā.
Viettura atribūts tiek izmantots, lai izveidotu rīka padomus tukšos ievades laukos (tagos Un
Sāksim ar piemēru tiem, kuri vēl nezina, kas ir vietturis un kā to lietot:
Izstrādājot saskarnes, jāņem vērā vietturu uzvedība. Viettura teksts pazūd, tiklīdz sākas rakstīšana. Tāpēc nevajadzētu tos izmantot, lai pārsūtītu informāciju par pašu ievades lauku (cik un kādām rakstzīmēm tajā vajadzētu būt). Šiem nolūkiem vislabāk ir izmantot tagu
Stilizācija
Vietturu stila veidošanai tiek izmantoti šādi noteikumi:
::-webkit-input-placeholder ( krāsa : zila ; ) ::-moz-placeholder ( krāsa : zila ; ) /* Firefox 19+ */ :-moz-placeholder ( krāsa : zila ; ) /* Firefox 18- * / :-ms-input-placeholder ( krāsa : zila ; )Izskatās šausmīgi, vai ne? Un tam ir iemesls - līdz šim vietturu CSS noteikumi nav standartizēti, un ieviešana katrā pārlūkprogrammā ir atšķirīga. Plašāku informāciju par visiem nepieciešamajiem prefiksiem var atrast vietnē caniuse.
Ja izmantojat CSS priekšapstrādātāju, visticamāk, visērtāk būs rakstīt vienkāršu kombināciju, lai piemērotu stilus vietturiem. Piemērs valodā Sass:
@mixin vietturis ( & : :- webkit-input-placeholder ( @content ; ) & : - moz-placeholder ( @content ; ) & : :- moz-placeholder ( @content ; ) & : - ms-input-placeholder ( @saturs ; ) )Atkarībā no konteksta kombināciju var izmantot, lai piemērotu stilus vai nu globāli, vai uz atsevišķiem elementiem (izmēģiniet to vietnē SassMeister):
// Globāli katram ievades laukam@include vietturis ( krāsa : zila ;) // Konkrētiem ievades laukiem.input ( @include vietturis ( krāsa : zaļa ; ) )Piemērs
Zils teksts vietturam (nekad to nedariet):
.blue-text ::-webkit-input-placeholder ( krāsa : #2e8ece ; ) .blue-text :-moz-placeholder ( krāsa : #2e8ece ; ) .blue-text ::-moz-placeholder ( krāsa : #2e8ece ; ) .blue-text :-ms-input-placeholder ( krāsa : #2e8ece ; )
Atbalstītie rekvizīti
Ne katrs CSS īpašums var izmantot ar vietturiem. Šeit pilns saraksts atbalstītie rekvizīti:
- fonts un visi saistītie rekvizīti (fonta lielums, fontu saime utt.)
- fons un visas saistītās īpašības (fona krāsa, fona attēls utt.)
- necaurredzamība
- teksta atkāpe
- teksta pārpilde
- krāsa
- teksta pārveidošana
- līnijas augstums
- vārdu atstarpes
- burtu atstarpes
- teksta dekorēšana
- vertikāli izlīdzināt
Animācijas
Animācijas idejas pieder emuāram html5.by.
Visi tālāk minētie piemēri ir rakstīti, izmantojot Sass priekšapstrādātāju. Katrai no tām ir saite uz SassMeister, kur var atrast apkopoto CSS kodu.
Visticamāk, ja ievades laukā ir fokuss, vietturiem vēlēsities lietot animācijas. Tas viss tiek darīts pavisam vienkārši. Pietiek tikai dažas reizes izmantot iepriekš uzrakstīto vietturu miksu:
.input ( @include vietturis ( // Normāla stāvokļa stili) & :focus ( @include vietturis ( // Stili pēc fokusa notikuma } } }Mainiet caurspīdīgumu
.input ( @include vietturis ( krāsa : # aaa ; necaurredzamība : 1 ; pāreja : necaurredzamība 300 ms ; ) & :focus ( @include vietturis ( necaurredzamība : 0 ; ) ))
Pārslēdziet pa labi un pa kreisi
Jo plašāks ir ievades lauks, jo lielākai jābūt teksta atkāpes rekvizīta vērtībai. Standarta ievades laukam pietiks ar 500 pikseļiem, plašākiem laukiem tas jāizvēlas manuāli. Animācijas ātrums ir atkarīgs no ievades lauka platuma un teksta atkāpes vērtības. Lai pārslēgtos pa kreisi, ir jāizmanto negatīvas vērtības, piemēram, -500 pikseļi .
Pārslēdziet uz leju
Tāpat kā iepriekšējā piemērā, animācija ir atkarīga no ievades lieluma, taču šajā gadījumā pievērsiet uzmanību augstumam. Lielākajai daļai ievades lauku vajadzīgā rindas augstuma vērtība būs 100 pikseļu robežās. Diemžēl line-height rekvizītu nevar izmantot, lai radītu augšupejošas nobīdes efektu, jo rekvizīts nepieņem negatīvas vērtības.
.input ( @include vietturis ( teksta atkāpe : 0px ; pāreja : teksta atkāpe 300 ms ; ) & :focus ( @include vietturis ( teksta atkāpe : 500 pikseļi ; ) ) )
Kopā
Lai vietturu animācijas koda izmantošana būtu patīkama un ērta, jebkuram priekšapstrādātājam varat uzrakstīt nelielu mixīnu bibliotēku. Bibliotēka izskatās šādi ():
@mixin vietturis ( & : :- webkit-input-placeholder ( @content ) & : - moz-placeholder ( @content ) & : :- moz-placeholder ( @content ) & : - ms-input-placeholder ( @content ) ) @mixin pl-shift ($side : left , $position : 500px , $duration : 200ms ) ( @include placeholder ( text-indent : 0 ; pāreja : text-indent $duration ; ) & :focus ( @include vietturis ( text-indent : if ($side == left , - $position , $position ); ) ) ) @mixin pl-slide-down ($position : 5 , $duration : 200ms ) ( @include vietturis ( line-height : 1 ; pāreja : līnijas augstums $ilgums ; ) & :focus ( @include placeholder ( line-height : $position ; ) ) ) @mixin pl-fade-out ($duration : 200ms ) ( @include vietturis (necaurredzamība : 1) ; pāreja : necaurredzamība $ilgums ; ) & :focus ( @include vietturis ( necaurredzamība : 0 ; ) ) )Tas ir ļoti vienkārši lietojams. Pietiek, lai pievienotu vēlamo mixin jebkuram ievades laukam vai vienkārši izveidotu vienu globālu noteikumu visiem lapas tempa turētājiem:
// Atsevišķiem elementiem.pl-shift-right ( @include pl-shift ( pa labi ); ) .pl-fade-out ( @include pl-fade-out ; ) // Par visu pārējo@include pl-shift (pa kreisi);Autoprefiksators
Ja neizmantojat priekšapstrādātāju un joprojām nevēlaties, lai jūsu CSS avota fails pārvērstos par prefiksu haosu, ko visi redzētu iespējamās pārlūkprogrammas, tad pievērsiet uzmanību Autoprefixer. Ar viņa palīdzību tīrs CSS var padarīt netīru (bet citā failā), visiem rekvizītiem pievienojot visus nepieciešamos prefiksus. Lai spraudnis darbotos ar vietturiem, vienkārši izmantojiet pseidoelementu::placeholder:
::placeholder ( krāsa : oranža ; ) . ievade::placeholder(krāsa:zila;)Pēc stilu parsēšanas Autoprefixer izveidos atsevišķu CSS failu, kurā tas ierakstīs visus nepieciešamos prefiksus visām jūsu norādītajām pārlūkprogrammām.
Ko tālāk
Kā jau rakstīju iepriekš, viss, kas saistīts ar stilu piemērošanu vietturiem, vēl nav standartizēts. Tas drīzumā tiks novērsts. Selector Level 4 specifikācija pievienoja pseidoklasi: placeholder-shown , kas beidzot standartizēs pašlaik pastāvošo neprātīgo pseidoklasešu un pseidoelementu sajaukumu. Varat pārraudzīt caniuse atbalstu (šobrīd tas netiek atbalstīts nevienā pārlūkprogrammā).
Stilu lietošana ar :placeholder-shown būs daudz vienkāršāka:
.input :placeholder-showd ( krāsa : zila ; )Sveiki! Šodien jūs nevienu nepārsteigsit, izmantojot vietturi ievadei. Vietturis ir pagaidu teksts ar piemēru ievades iekšpusē, kas pazūd, ievadot tekstu. Mēs šodien mēģināsim uzrakstīt viettura CSS stilu.
Uzdevums: izveidojiet savu CSS stilu vietturim
Pieņemsim, ka mums ir stilīga vietne, kuras ievadē tiek izmantots vietturis. Ir jāpanāk, lai viettura pelēkais, garlaicīgais teksta stils atbilstu vietnes vispārējam stilam. Kā to var panākt? Uzreiz teikšu, ka tas vēl nedarbojas visās pārlūkprogrammās. Konkrētāk, tas vispār nedarbojas IE versijās 9 un jaunākās versijās; 10 un jaunākās versijās tas joprojām darbojas ar lielām grūtībām. Firefox un tīmekļa komplektu pārlūkprogrammas ir cits jautājums.
Risinājums: css stils vietturim
Tātad, mēs esam izvirzījuši uzdevumu, kā mēs to atrisināsim?
Vispirms izveidosim testēšanas laukumu:
Gatavs, tagad apskatīsim, ko varam darīt ar stilu: Webkit un mozilla ir savi modifikatori, kas ļauj vietturim piešķirt īpašu stilu: ::-webkit-input-placeholder un:-moz-placeholder. Apskatīsim, kā tos izmantot:
Aprakstīsim pašas ievades stilu un tajā esošo tekstu (piemērā zilā krāsa kontrastam):
Ievade (platums: 250 pikseļi; krāsa: zila; fonta svars: normāls; fonta stils: normāls; )
Tagad rakstīsim īpašu viettura teksta stilu šajā ievadē Webkit pārlūkprogrammām (Chrome, Safari, Opera):
Ievade::-webkit-input-placeholder( krāsa: sarkana; fonta stils: slīpraksts; fonta svars: treknraksts; )
Padarīsim viettura tekstu sarkanu trekns slīpraksts. Ņemiet vērā, ka atšķirībā no citām CSS pseidoklasēm, kuras ir atdalītas ar vienu kolu, viettura stils tīmekļa komplektā ir atdalīts ar dubultu kolu.
Tagad rakstīsim tieši tādu pašu stilu Mozilla Firefox pārlūkprogrammas:
Ievade:-moz-placeholder( krāsa: sarkana; fonta stils: slīpraksts; fonta svars: treknraksts; )
Gatavs. CSS stils vietturim, protams, varat rakstīt jebkuru, kas ir piemērotāks jūsu dizainam. Darba demonstrāciju var apskatīt vietnē
Ja neesat pazīstams ar viettura atribūtu, tad nedaudz paskaidrosim, kas tas ir un kur tas tiek izmantots. To izmanto veidlapas ievades laukos. Atribūts ievades laukā parāda tekstu, kas atspoguļo noteikta mājiena lomu. Iepriekš mūsu vietnē bija javascript izmantošanas piemērs, pozitīvā puse šī metode Tas ir saderīgs ar vairākām pārlūkprogrammām. Tagad parunāsim par viettura atribūta stilu, kas tiek izmantots ievades un teksta apgabala elementos.
Ievades lauka kods mūsu piemērā izskatīsies apmēram šādi:
Izvadā mēs iegūstam šādu lauku:
Tagad iedomāsimies, ka mums ir jāveido vietturis, tāpēc mums CSS ir jāraksta noteikumu kopa:
::-webkit-input-placeholder ( krāsa: #c1c1c1; ) ::-moz-placeholder ( krāsa: #c1c1c1; ) /* Firefox 19+ */ :-moz-placeholder ( krāsa: #c1c1c1; ) /* Firefox 18- */ :-ms-input-placeholder ( krāsa: #c1c1c1; )
Mēs iegūstam:
Mēs nevaram mainīt visus rekvizītus, taču tālāk ir sniegts saraksts ar lielāko daļu no tiem, ko atbalsta mūsdienu pārlūkprogrammas:
fontu(arī saistītie īpašumi)
fons(arī saistītie īpašumi)
krāsa
vārdu atstarpes
burtu atstarpes
teksta dekorēšana
vertikāli izlīdzināt
teksta pārveidošana
līnijas augstums
teksta atkāpe
teksta pārpilde
necaurredzamība
IN dažādas pārlūkprogrammas noteikums ir rakstīts savādāk, jo Lai gan nav vienota standarta, šis ierakstu kopums joprojām ir aktuāls. IE pārlūkprogrammā, kā arī Firefox, kas jaunāka par 18. versiju, vietturis tiek uztverts kā pseidoklase, un jaunākās Firefox pārlūkprogrammas, Webkit un blink tiek uzskatīti par pseidoelementiem.
Teksta saīsināšana vietturā
Dažreiz rīka padomi var būt tik gari, ka nevar pilnībā iekļauties ievades laukā. Šiem nolūkiem varat izmantot arī papildu rekvizītus, kas ļaus saīsināt viettura tekstu ievades laukā.
Ievade ( text-overflow:ellipsis; ) input::-moz-placeholder ( text-overflow:ellipsis; ) input:-moz-placeholder ( text-overflow:ellipsis; ) input:-ms-input-placeholder ( text-overflow :elipse;)
Rezultātā mēs iegūstam ievades lauku ar vietturi, piemēram:
Slēpt tekstu, noklikšķinot uz lauka
Pēc noklusējuma katra pārlūkprogramma viettura atbildi interpretē atšķirīgi. Dažās pārlūkprogrammās tas tiek paslēpts uzreiz, noklikšķinot uz lauka, citās tas tiek paslēpts, ja ievades laukā ir vismaz viena rakstzīme. Panāksim, ka teksts pazūd, noklikšķinot uz lauka, vienādi visās pārlūkprogrammās.
:focus::-webkit-input-placeholder ( krāsa: caurspīdīga; ) :focus::-moz-placeholder ( krāsa: caurspīdīga; ) :focus:-moz-placeholder ( krāsa: caurspīdīga; ) :focus:-ms-input -vietturis (krāsa: caurspīdīga;)
Mēs saņemam šo darbību: