Zástupný štýl css. Pridanie štýlu CSS do zástupného symbolu

Zástupný symbol – prvok vstupného poľa, do ktorého môžete umiestniť nápovedu. Keď používateľ začne zadávať údaje, text pomocníka zmizne, aby neprekážal. Každý prehliadač má svoj vlastný názor na spôsob zobrazenia tohto prvku a niekedy predvolené štýly narušia celý dizajn. Na ich ovládanie je potrebné použiť špeciálne pravidlo CSS pre zástupný symbol.

Kde je zástupný symbol?

Problém je v tom, že nápoveda vstupného poľa je bezpečne ukrytá v tieňovom DOM a nie je také ľahké sa k nemu dostať. Na tento účel sa používa špeciálny neštandardný pseudoprvok CSS::placeholder. Pomocou neho môžete ovládať vlastnosti popisku.

Bude vás zaujímať:

Štýl zástupného symbolu v CSS vyzerá takto:

input::placeholder ( farba: červená; nepriehľadnosť: 1; štýl písma: kurzíva; )

Podpora prehliadača

Pseudoprvok zástupného symbolu CSS zvládne každý dobre moderné prehliadače a na podporu starších prehliadačov môžete použiť predpony:

  • ::-webkit-input-placeholder - pre prehliadače webkit (Safari, Chrome, Opera);
  • ::-moz-placeholder - pre prehliadače Firefox nad verziou 19;
  • :-moz-placeholder - pre starý Firefox;
  • :-ms-input-placeholder - pre internet Explorer vyššie verzie 10.

Ako vidíte, staré Prehliadače Mozilla a tiež IE považuje zástupný symbol za pseudotriedu CSS, nie za pseudoprvok. Nebudeme sa s nimi hádať, len tento aspekt zohľadníme pri štylizácii vstupného poľa.

Možnosti stylingu

Pre zástupný pseudoelement v CSS môžete nastaviť nasledujúce parametre:

  • background - skupina vlastností pozadia. Pozadie nápovedného bloku sa rozprestiera na celé vstupné pole. Nastaviť si môžete nielen farbu (background-color), ale aj obrázok (background-image).
  • farba textu - farba;
  • transparentnosť – nepriehľadnosť;
  • podčiarknutie, prečiarknutie alebo prečiarknutie - text-dekorácia;
  • register - textová transformácia;
  • vypchávka – výplň. Nepodporujú všetky prehliadače. Rovnako ako v prípade vložených prvkov sa horná a spodná výplň ignoruje.
  • zobrazenie písma - vlastnosti skupiny písiem, výška riadku a rôzne zarážky (text-odsadenie, letter-spacing, word-spacing);
  • vertikálne zarovnanie v línii - vertical-align;
  • orezanie textu pri pretečení kontajnera - 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 zameraní

V predvolenom nastavení zmizne nápoveda zo vstupného poľa iba vtedy, ak je doň zadaný aspoň jeden znak. Pseudoprvok zástupného symbolu CSS vám však umožňuje implementovať zmiznutie okamžite, keď je pole zamerané. Aby ste to dosiahli, musíte ju skombinovať s pseudotriedou :focus.

input:focus::placeholder ( farba: transparentná; )

V niektorých prehliadačoch je prijateľné animovať zmenu v množstve vlastností zástupného symbolu pomocou príkazu prechodu.

input::placeholder ( farba: čierna; prechod: farba 1s; ) input:focus::placeholder ( color: white; )

V prehliadači Google Chrome farba nápovedy pri zaostrení na takéto pole sa plynule zmení v priebehu jednej sekundy.

Zástupné symboly, tie často sivé textové prvky vo vstupe, môžu byť náročné na štýl. Našťastie sme získali krátke, ale efektívne riešenie CSS, aby sme upravili zástupný text vášho vstupu do ľubovoľnej farby a nepriehľadnosti, ktorú si želáte. Prečítajte si kód.

Zmena farby zástupného textu

Začnime jednoduchým vstupom a nejakým zástupným textom, pre tento príklad použijeme slovo „hľadať“, ale môžete použiť čokoľvek chcete. Základné HTML je nižšie:

HTML


Vstupný text (a textarea) má predvolenú svetlošedú farbu, môžeme to však zmeniť niekoľkými riadkami CSS. Tu zafarbíme vstupný text na červeno pomocou názvu farby HTML, ale postačí akýkoľvek farebný spôsob (HEX, RGB, HSL).

css
::-webkit-input-placeholder ( /* Chrome */ farba: červená; ) :-ms-input-placeholder ( /* IE 10+ */ farba: červená; ) ::-moz-placeholder ( /* Firefox 19 + */ farba: červená; nepriehľadnosť: 1; ) :-moz-placeholder ( /* Firefox 4 - 18 */ farba: červená; nepriehľadnosť: 1; )

Upozorňujeme, že je dôležité zahrnúť predpony rôznych dodávateľov, aby sa podporilo čo najviac prehliadačov. Iba vstupný zástupný text prehliadača Firefox má predvolenú miernu priehľadnosť, takže nie je potrebné nastavovať vlastnosť nepriehľadnosti v prehliadači IE alebo Chrome.

Zmena farby textu zamerania zástupného symbolu

Dobre, úspešne sme zmenili farbu zástupného textu na červenú, ale bolo by pekné, keby sa niečo stalo, keď používateľ klikne do nášho vstupu. Pomocou rovnakých vlastností CSS s predponou od dodávateľa môžeme zmeniť nepriehľadnosť vstupného zástupného textu na zameranie.

css
vstup ( obrys: žiadny; výplň: 12px; polomer okraja: 3px; okraj: 1px plná čierna; ) ::-webkit-input-placeholder ( /* Chrome */ farba: červená; prechod: nepriehľadnosť 250 ms easy-in-out ; ) :focus::-webkit-input-placeholder ( nepriehľadnosť: 0,5; ) :-ms-input-placeholder ( /* IE 10+ */ farba: červená; prechod: nepriehľadnosť 250 ms easy-in-out; ) :focus :-ms-input-placeholder ( nepriehľadnosť: 0,5; ) ::-moz-placeholder ( /* Firefox 19+ */ farba: červená; nepriehľadnosť: 1; prechod: nepriehľadnosť 250 ms easy-in-out; ) :focus:: -moz-placeholder ( nepriehľadnosť: 0,5; ) :-moz-placeholder ( /* Firefox 4 - 18 */ farba: červená; nepriehľadnosť: 1; prechod: nepriehľadnosť 250 ms easy-in-out; ) :focus:-moz-placeholder ( nepriehľadnosť: 0,5; )

Vo vyššie uvedenom príklade sme na samotný vstup pridali niekoľko základných štýlov a pridali sme prechod na nepriehľadnosť, aby bol zážitok o niečo krajší. Pozrite si ukážku a experimentujte s ďalšími vlastnosťami a prechodmi CSS.

Zástupný symbol – prvok vstupného poľa, do ktorého môžete umiestniť nápovedu. Keď používateľ začne zadávať údaje, text pomocníka zmizne, aby neprekážal. Každý prehliadač má svoj vlastný názor na spôsob zobrazenia tohto prvku a niekedy predvolené štýly narušia celý dizajn. Na ich ovládanie je potrebné použiť špeciálne pravidlo CSS pre zástupný symbol.

Kde je zástupný symbol?

Problém je v tom, že nápoveda vstupného poľa je bezpečne ukrytá v tieňovom DOM a nie je také ľahké sa k nemu dostať. Na tento účel sa používa špeciálny neštandardný zástupný symbol ::. Pomocou neho môžete ovládať vlastnosti popisku.

Štýl zástupného symbolu v CSS vyzerá takto:

Vstup::placeholder ( farba: červená; nepriehľadnosť: 1; štýl písma: kurzíva; )

Podpora prehliadača

Pseudoprvok zástupného symbolu CSS dobre zvládajú všetky moderné prehliadače a na podporu starších prehliadačov možno použiť predpony:

  • ::-webkit-input-placeholder - pre prehliadače webkit (Safari, Chrome, Opera);
  • ::-moz-placeholder - pre prehliadače Firefox nad verziou 19;
  • :-moz-placeholder - pre starý Firefox;
  • :-ms-input-placeholder – pre Internet Explorer nad verziou 10.

Ako vidíte, staršie prehliadače Mozilla, ako aj IE, považujú zástupný symbol za pseudotriedu CSS, nie za pseudoprvok. Nebudeme sa s nimi hádať, len tento aspekt zohľadníme pri štylizácii vstupného poľa.

Možnosti stylingu

Pre zástupný pseudoelement v CSS môžete nastaviť nasledujúce možnosti:

  • pozadie - skupina blokov tipov sa vzťahuje na celé vstupné pole. Nastaviť si môžete nielen farbu (background-color), ale aj obrázok (background-image).
  • farba textu - farba;
  • transparentnosť – nepriehľadnosť;
  • podčiarknutie, prečiarknutie alebo prečiarknutie - text-dekorácia;
  • register - textová transformácia;
  • vypchávka – výplň. Nepodporujú všetky prehliadače. Rovnako ako v prípade vložených prvkov sa horná a spodná výplň ignoruje.
  • zobrazenie písma - vlastnosti skupiny písiem, výška riadku a rôzne zarážky (text-odsadenie, letter-spacing, word-spacing);
  • vertikálne zarovnanie v línii - vertical-align;
  • orezanie textu pri pretečení kontajnera - 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 zameraní

V predvolenom nastavení zmizne nápoveda zo vstupného poľa iba vtedy, ak je doň zadaný aspoň jeden znak. Ale zástupný symbol vám umožňuje implementovať zmiznutie okamžite pri zaostrení na pole. Aby ste to dosiahli, musíte ju skombinovať s pseudotriedou :focus.

Input:focus::placeholder ( farba: transparentná; )

V niektorých prehliadačoch je prijateľné animovať zmenu v množstve vlastností zástupného symbolu pomocou príkazu prechodu.

Input::placeholder ( farba: čierna; prechod: farba 1s; ) input:focus::placeholder ( color: white; )

AT Prehliadač Google Farba popisku Chrome pri zaostrení na takéto pole sa plynule zmení v priebehu jednej sekundy.

Atribút zástupného symbolu sa používa na vytváranie popisov v prázdnych vstupných poliach (značky a