Jak změnit barvu textu popisku v zástupném symbolu pomocí stylů CSS? Přidejte styl CSS pro zástupný symbol Styling: změňte barvu CSS zástupného symbolu

Zástupné symboly, často zašedlé textové prvky uvnitř vstupu, mohou být náročné na styl. Naštěstí jsme získali krátké, ale účinné řešení CSS, které stylizuje zástupný text vašeho vstupu do libovolné barvy a neprůhlednosti, kterou si přejete. Přečtěte si kód.

Změna barvy zástupného textu

Začněme jednoduchým vstupem a nějakým zástupným textem, pro tento příklad použijeme slovo „hledat“, ale můžete použít cokoli chcete. Základní HTML je níže:

HTML

Vstupní (a textarea) zástupný text má výchozí světle šedou barvu, ale můžeme to změnit pomocí několika řádků CSS. Zde obarvíme vstupní text červeně pomocí názvu barvy HTML, ale postačí jakákoli barevná metoda (HEX, RGB, HSL).

CSS
::-webkit-input-placeholder ( /* Chrome */ barva: červená; ) :-ms-input-placeholder ( /* IE 10+ */ barva: červená; ) ::-moz-placeholder ( /* Firefox 19 + */ barva: červená; neprůhlednost: 1; ) :-moz-placeholder ( /* Firefox 4 - 18 */ barva: červená; neprůhlednost: 1; )

Všimněte si, že je důležité zahrnout předpony různých dodavatelů, aby bylo podporováno co nejvíce prohlížečů. Pouze vstupní zástupný text Firefoxu má ve výchozím nastavení mírnou průhlednost, takže není nutné nastavovat vlastnost opacity v IE nebo Chrome.

Změna barvy textu zaměření zástupného symbolu

Dobře, úspěšně jsme změnili barvu zástupného textu na červenou, ale bylo by hezké, kdyby se něco stalo, když uživatel klikne do našeho vstupu. Pomocí stejných vlastností CSS s předponou dodavatele můžeme změnit neprůhlednost vstupního zástupného textu na zaměření.

CSS
input ( obrys: žádný; odsazení: 12px; okraj-poloměr: 3px; okraj: 1px plná černá; ) ::-webkit-input-placeholder ( /* Chrome */ barva: červená; přechod: neprůhlednost 250 ms náběh ; ) :focus::-webkit-input-placeholder ( neprůhlednost: 0,5; ) :-ms-input-placeholder ( /* IE 10+ */ barva: červená; přechod: neprůhlednost 250 ms easy-in-out; ) :focus :-ms-input-placeholder ( neprůhlednost: 0,5; ) ::-moz-placeholder ( /* Firefox 19+ */ barva: červená; neprůhlednost: 1; přechod: neprůhlednost 250 ms náběh a výstup; ) :focus:: -moz-placeholder ( neprůhlednost: 0,5; ) :-moz-placeholder ( /* Firefox 4 - 18 */ barva: červená; neprůhlednost: 1; přechod: neprůhlednost 250 ms easy-in-out; ) :focus:-moz-placeholder (neprůhlednost: 0,5; )

Ve výše uvedeném příkladu jsme přidali několik základních stylů na samotný vstup a přidali přechod na neprůhlednost, aby byl zážitek o něco hezčí. Podívejte se na demo a experimentujte s dalšími vlastnostmi a přechody CSS.

Zástupný symbol je prvek vstupního pole, do kterého lze umístit popisek. Když uživatel začne zadávat data, podpůrný text zmizí, aby nepřekážel. Každý prohlížeč má svůj vlastní názor na to, jak by se měl tento prvek zobrazovat, a někdy výchozí styly rozbijí celý design. Chcete-li je spravovat, musíte použít speciální pravidlo pro zástupný symbol CSS.

Kde je zástupný symbol?

Problém je v tom, že popisek vstupního pole je pevně skryt ve stínovém DOM a není tak snadné se k němu dostat. K tomu slouží speciální nestandardní ::placeholder. S jeho pomocí můžete spravovat vlastnosti popisku.

Stylování zástupného symbolu v CSS vypadá takto:

Vstup::placeholder ( barva: červená; neprůhlednost: 1; styl písma: kurzíva; )

Podpora prohlížeče

Pseudoprvek zástupného symbolu CSS je dobře zpracován všemi moderními prohlížeči a pro podporu starších prohlížečů můžete použít následující předpony:

  • ::-webkit-input-placeholder - pro prohlížeče webkit (Safari, Chrome, Opera);
  • ::-moz-placeholder - pro prohlížeče Firefox starší verze 19;
  • :-moz-placeholder - pro starší Firefox;
  • :-ms-input-placeholder - pro internet Explorer výše verze 10.

Jak vidíš, starý Prohlížeče Mozilla, stejně jako IE, považují zástupný symbol za pseudotřídu CSS, nikoli za pseudoprvek. Nehádejme se s nimi, jen tento aspekt zohledníme při stylování vstupního pole.

Možnosti stylingu

Pro zástupný pseudoelement v CSS můžete nastavit následující možnosti:

  • pozadí - skupina bloků popisků se vztahuje na celé vstupní pole. Můžete nastavit nejen barvu (background-color), ale i obrázek (background-image).
  • barva textu - barva;
  • průhlednost - neprůhlednost;
  • podtržení, podtržení nebo přeškrtnutí - text-dekorace;
  • case - text-transform;
  • vnitřní prohlubně - vycpávka. Není podporováno všemi prohlížeči. Stejně jako u vkládaných prvků je horní a spodní výplň ignorována.
  • zobrazení písma - vlastnosti skupiny písem, výška řádku a různé odsazení (text-odsazení, letter-spacing, word-spacing);
  • vertikální zarovnání v řádku - vertical-align;
  • oříznutí textu při přetečení kontejneru - text-overflow.
.input1::placeholder ( background-image: linear-gradient(lime, blue); color: white; ) .input2::placeholder (text-decoration: line-through; color: purple; font-weight: bold; ) . input3::placeholder ( font-size: 16px; letter-spacing: 10px; ) .input4::placeholder ( background: brown; color: white; text-overflow: elipsy; )

V zaměření

Ve výchozím nastavení zmizí popisek ze vstupního pole pouze v případě, že do něj zadáte alespoň jeden znak. Ale zástupný symbol vám umožňuje implementovat zmizení okamžitě při zaměření na pole. Chcete-li to provést, musíte jej zkombinovat s pseudo-class:focus.

Vstup:focus::placeholder ( barva: průhledná; )

V některých prohlížečích je možné animovat změny v řadě vlastností zástupného symbolu pomocí příkazu transition.

Vstup::placeholder ( barva: černá; přechod: barva 1s; ) input:focus::placeholder ( barva: bílá; )

V Prohlížeč Google Barva popisku Chrome se při zaměření na takové pole plynule změní během jedné sekundy.

Atribut placeholder se používá k vytváření popisků uvnitř prázdných vstupních polí (tagů A