Graži paieškos forma css3. Gražios paieškos formos kūrimas naudojant CSS3. Ką prarandame kurdami šią formą naudodami HTML5 ir CSS3?

Vienas iš dažniausiai naudojamų bet kurios svetainės elementų yra paieškos forma. Jei norite padidinti savo svetainės naudojimo paprastumo lygį ir labai palengvinti tinkamos medžiagos paieškos procesą, turėtumėte rimtai pradėti kurti paieškos formą.

Taigi, šiandien norime papasakoti apie paieškos formos kūrimą naudojant CSS3 ypatybes.

Anksčiau tikriausiai jau radote vadovėlius, kaip sukurti paieškos formą CSS3, tačiau šiandien norime jums pasiūlyti kiek kitokį variantą – paieškos formą su 3D efektu, įgyvendintu naudojant parametrą box-shadow.

Žymėjimas

Žemiau galite pamatyti HTML kodą, naudotą kuriant šią formą. Atkreipkite dėmesį, kad mūsų užpildas buvo sukurtas naudojant HTML5 ir naudojome visus reikiamus atributus.

Iš pradžių norėjome naudoti HTML5 įvestą type="search", bet vėliau apsigalvojome dėl nesuderinamumo su daugeliu šiuolaikinių naršyklių. Dabar turėsime pridėti keletą papildomų CSS kodo eilučių, kad perrašytume pradines reikšmes.





CSS kodas

Pažvelkime į minimalius stilius, naudojamus kuriant gražią CSS3 paieškos formą:

Formos įvynioklis (
plotis: 450 pikselių;
pamušalas: 8px;
paraštė: 100 pikselių automatinis;
perteklius paslėptas;
kraštinės plotis: 1px;
apvado stilius: tvirtas;
kraštinės spalva: #dedede #bababa #aaa #bababa;
-moz-box-shadow: 0 3px 3px rgba(255,255,255,.1), 0 3px 0 #bbb, 0 4px 0 #aaa, 0 5px 5px #444;
-webkit-box-shadow: 0 3px 3px rgba(255,255,255,.1), 0 3px 0 #bbb, 0 4px 0 #aaa, 0 5px 5px #444;
langelio šešėlis: 0 3px 3px rgba(255,255,.1), 0 3px 0 #bbb, 0 4px 0 #aaa, 0 5px 5px #444;
-moz-border-radius: 10px;
-Webkit-border-radius: 10px;
kraštinės spindulys: 10 pikselių;
fono spalva: #f6f6f6;
background-image: -webkit-gradient(linijinis, kairėje viršuje, kairėje apačioje, nuo(#f6f6f6), iki(#eae8e8));
background-image: -webkit-linear-gradient(top, #f6f6f6, #eae8e8);
background-image: -moz-linear-gradient(top, #f6f6f6, #eae8e8);
background-image: -ms-linear-gradient(top, #f6f6f6, #eae8e8);
background-image: -o-linear-gradient(viršuje, #f6f6f6, #eae8e8);
background-image: linear-gradient(viršuje, #f6f6f6, #eae8e8);
}

Formos įvynioklis #search (
plotis: 330 pikselių;
aukštis: 20px;
užpildymas: 10 piks. 5 piks.;
plūdė: kairė;
šriftas: bold 16px "lucida sans", "trebuchet MS", "Tahoma";
kraštinė: 1px vientisas #ccc;
-moz-box-shadow: 0 1px 1px #ddd inset, 0 1px 0 #fff;
-Webkit-box-shadow: 0 1px 1px #ddd inset, 0 1px 0 #fff;
langelis-šešėlis: 0 1px 1px #ddd intarpas, 0 1px 0 #fff;
-moz-border-radius: 3px;
-Webkit-border-radius: 3px;
kraštinės spindulys: 3 pikseliai;
}

Formos įvynioklis #search:focus (
kontūras: 0;
kraštinės spalva: #aaa;
-moz-box-shadow: 0 1px 1px #bbb intarpas;
-webkit-box-shadow: 0 1px 1px #bbb inset;
langelis-šešėlis: 0 1px 1px #bbb intarpas;
}

Formos įvynioklis #search::-webkit-input-placeholder (
spalva: #999;
šrifto svoris: normalus;
}

Formos įvynioklis #search:-moz-placeholder (
spalva: #999;
šrifto svoris: normalus;
}

Formos įvynioklis #search:-ms-input-placeholder (
spalva: #999;
šrifto svoris: normalus;
}

Formos įvynioklis #submit (
plūdė: dešinė;
kraštinė: 1px solid #00748f;
aukštis: 42px;
plotis: 100 pikselių;
paminkštinimas: 0;
žymeklis: rodyklė;
šriftas: bold 15px Arial, Helvetica;
spalva: #fafafa;
teksto transformavimas: didžiosios raidės;
fono spalva: #0483a0;
background-image: -webkit-gradient(linijinis, kairėje viršuje, kairėje apačioje, from(#31b2c3), to(#0483a0));
background-image: -webkit-linear-gradient(top, #31b2c3, #0483a0);
background-image: -moz-linear-gradient(top, #31b2c3, #0483a0);
background-image: -ms-linear-gradient(top, #31b2c3, #0483a0);
background-image: -o-linear-gradient(viršuje, #31b2c3, #0483a0);
background-image: linear-gradient (viršuje, #31b2c3, #0483a0);
-moz-border-radius: 3px;
-Webkit-border-radius: 3px;
kraštinės spindulys: 3 pikseliai;
teksto šešėlis: 0 1px 0 rgba(0, 0 ,0, .3);
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0,3) įdėta, 0 1px 0 #fff;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 1px 0 #fff;
langelis-šešėlis: 0 1px 0 rgba(255, 255, 255, 0,3) įdėta, 0 1px 0 #fff;
}

Formos įvynioklis #submit:hover,
.form-wrapper #submit:focus (
fono spalva: #31b2c3;
background-image: -webkit-gradient(linijinis, kairėje viršuje, kairėje apačioje, from(#0483a0), to(#31b2c3));
background-image: -webkit-linear-gradient(top, #0483a0, #31b2c3);
background-image: -moz-linear-gradient(top, #0483a0, #31b2c3);
background-image: -ms-linear-gradient(top, #0483a0, #31b2c3);
background-image: -o-linear-gradient(viršuje, #0483a0, #31b2c3);
background-image: linear-gradient(viršuje, #0483a0, #31b2c3);
}

Formos įvynioklis #submit:aktyvus (
kontūras: 0;
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) inset;
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) inset;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) inset;
}

Form-wrapper #submit::-moz-focus-inner (
kraštinė: 0;
}
Naršyklės palaikymas

Žemiau galite pamatyti keletą ekrano kopijų, kuriose rodoma mūsų paieškos forma. Turėtumėte atkreipti dėmesį, kad jis taip pat veikia gerai, jei puslapis atidaromas senesnėje naršyklės versijoje. Taip pat norėčiau pridurti, kad ši CSS3 paieškos forma yra visiškai paruošta naudoti.

Šiuolaikinės naršyklės Chrome, Firefox, Safari, Opera, IE10:


Atminkite, kad „Opera“ šiuo metu palaiko vietos rezervavimo atributą HTML5, tačiau jo negalima formuoti.

Geros naujienos yra tai, kad IE10 taip pat palaiko HTML5 užpildą.

Ankstesnės IE versijos (6/7/8):


*

Apibendrinant

Jei skaitėte mūsų ankstesnius straipsnius, tikriausiai žinote, kad čia mes kuriame veikiančias programas (su atšaukimo versijomis ir be jų) visoms naršyklėms. Ir šis pavyzdys nėra išimtis.

Be CSS3 formos naudojimo, kad sukurtumėte paieškos bloką, galite lengvai pritaikyti ją, kad sukurtumėte įgaliojimo formą arba prenumeratos formą.

Paieškos laukas tikriausiai yra vienas iš labiausiai paplitusių vartotojo sąsajos elementų. Dirbant sąsajos patogumo lygiu, labai dažnai kyla noras pridėti stilingą paieškos laukelį. Šioje pamokoje mes sukursime tokį populiarų elementą naudodami pseudoelementus.

HTML žymėjimas

Norint paruošti tokį lauką, žymėjimas bus minimalus.

Čia naudojami specialūs HTML5 rezervavimo ženklai ir būtini atributai:

  • vietos rezervuaras- šis atributas nurodo, kad tekstas lauke rodomas prieš lauke gaunant įvesties fokusavimą, tada tekstas yra paslėptas.
  • reikalaujama- šis atributas nurodo privalomą informacijos buvimo įvesties lauke sąlygą prieš pateikiant formą.

HTML5 taip pat turi naują tipo atributo reikšmę: type="search" . Tačiau jis menkai palaikomas naršyklėse, todėl kol kas jo nenaudosime.

HTML elementai, tokie kaip img ir input, neturi turinio. Todėl pseudoelementas, toks kaip:befor, nerodys jokių mygtuko rodyklių.

Šios problemos sprendimas mūsų atveju yra naudoti mygtuką type="submit", o ne įvesties tipas="pateikti" . Tokiu būdu išlaikome formą naudodami klavišą ENTER.

CSS

Žemiau pateikiami mūsų demonstravimui reikalingi stiliai:

Atšaukti teksto įvyniojimą

Cf:before, .cf:after(turinys:""; ekranas:lentelė; ) .cf:after( clear:abi; ) .cf(zoom:1; )

Formos elementai

Siekiant didesnio aiškumo, kode nerodomi naršyklės priešdėliai. Visą kodą galite pamatyti šaltinio tekste.

/* Formų sudėtinio rodinio stiliai */ .form-wrapper ( plotis: 450 pikselių; užpildymas: 15 pikselių; paraštė: 150 pikselių automatinis 50 pikselių automatinis; fonas: #444; fonas: rgba(0,0,0,.2); rėmelis- spindulys : 10 tšk.; langelio šešėlis: 0 1 piks. 1 piks. rgba(0,0,0,.4) įterptas, 0 1px 0 rgba(255,255,255,.2) /* Teksto įvesties stiliai */ .form-wrapper įvestis ( plotis : 330px ; padding: 10px 5px: bold 15px "trebuchet": 0, 0 3px. 0 0 2px rgba(0,0,0,.8) inset; .form-wrapper input::-webkit -input-placeholder ( spalva: #999; šrifto svoris: normalus; šrifto stilius: kursyvas; ) . form-wrapper input:-moz-placeholder ( spalva: #999; šrifto svoris: normalus; šrifto stilius: kursyvas ; ) .form-wrapper input:-ms-input-placeholder ( spalva: #999; šrifto svoris: normalus šrifto stilius: kursyvas ) /* Formos pateikimo mygtukas kraštinė: 0; paminkštinimas: 0; žymeklis: rodyklė; aukštis: 40px; plotis: 110px; šriftas: bold 15px/40px "lucida sans", "trebuchet MS", "Tahoma"; spalva: #fff; teksto transformavimas: didžiosios raidės; fonas: #d83c3c; kraštinės spindulys: 0 3px 3px 0; text-shadow: 0 -1px 0 rgba(0, 0 ,0, .3); ) .form-wrapper button:hover( fonas: #e54040; ) .form-wrapper mygtukas:aktyvus, .form-wrapper mygtukas:focus(fonas: #c42f2f; kontūras: 0; ) .form-wrapper mygtukas:prieš ( / * rodyklė į kairę: "" absoliuti border-width: 8px 0 border-style: solid border-color: skaidri #d83c3c permatoma ) .form-wrapper:before; border-right-color: #e54040; ) .form-wrapper mygtukas:focus:prieš, .form-wrapper mygtukas:active:before( border-right-color: #c42f2f; ) .form-wrapper mygtukas::-moz- focus-inner ( /* Pašalinkite papildomą vietą šalia mygtuko „Mozilla Firefox“ */ kraštinė: 0; užpildymas: 0; )

Svetainės paieškos laukas yra vienas iš svarbiausių vartotojo sąsajos elementų tinklalapyje. Su jo pagalba vartotojas gali rasti norimą turinį jūsų svetainėje.

Šioje pamokoje sužinosite, kaip sukurti paieškos lauko žymėjimą naudojant HTML5 ir kaip formuoti formos elementus naudojant CSS3 be scenarijų.

1. HTML žymėjimas

Elementas

yra paieškos formos konteineris, paieškos laukas sukuriamas naudojant elementą arba , o naudojant elementą galima sukurti mygtuką duomenims siųsti į serverį arba
* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 tšk.; paraštė: 0 automatinis; ) įvestis ( plotis: 100 %; aukštis: 42 piks.; užpildymas kairėje: 10 piks.; kraštinė: 2 piks. vientisas #7BA7AB ; kraštinės spindulys: 5 piks., spalva: #9E9C9C; 5 pikselių 0; žymeklis: prieš ( turinys: "\f002"; šriftų šeima: FontAwesome; šrifto dydis: 16 pikselių; spalva: #F9F0DA; )

3. Paieškos laukas su mygtuku viduje

* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 taškų; paraštė: 0 automatinis; ) įvestis, mygtukas ( kraštinė: nėra; kontūras: nėra; kraštinės spindulys: 3 piks.; ) įvestis ( plotis: 100 %; aukštis: 42 pikselių; : paryškintas;)

4. Paieškos laukas „plokščio“ stiliaus

* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 pikselių; paraštė: 0 automatinis; fonas: #A3D0C3; ) įvestis, mygtukas ( kraštinės: nėra; kontūras: nėra; fonas: skaidrus; ) įvestis ( plotis: 100 %; aukštis: 42 piks.; užpildymas kairėje: 15 piks.; ) mygtukas ( aukštis: 42 piks.; plotis: 42 piks.; padėtis: absoliutus; viršuje: 0; dešinėje: 0; žymeklis: rodyklė; ) mygtukas: prieš ( turinys: "\f002" šriftų šeima: FontAwesome: 16 pikselių;

5. Paieškos laukas storu apatiniu rėmeliu

* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 tšk.; paraštė: 0 automatinis; fonas: #F9F0DA; rėmelis apačioje: 4 pikseliai vientisas #be290e; ) įvestis, mygtukas ( kraštinė: nėra; kontūras : nėra; fonas: skaidrus; įvestis (plotis: 100%; aukštis: 42 piks.; užpildymas kairėje: 15 piks.; ) mygtukas (aukštis: 42 piks.; plotis: 42 piks.; padėtis: viršuje: 0; dešinėje: 0; žymeklis: žymeklis ) mygtukas:prieš ( turinys: "\f178"; šriftų šeima: FontAwesome; šrifto dydis: 20 pikselių; spalva: #be290e; )

6. Paieškos laukas su besikeičiančia kraštinės spalva

* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 pikselių; paraštė: 0 automatinis; ) įvestis, mygtukas ( kontūras: nėra; fonas: skaidrus; ) įvestis ( plotis: 100 %; aukštis: 42 piks. ; užpildymas kairėje: 15 pikselių kraštinė: 3 pikselių #F9F0DA ) mygtukas ( kraštinė: nėra; 42 piks. turinys: "\f002": šrifto dydis: 16px;

7. Ištraukiamas paieškos laukas

Paieškos laukas pasirodo paspaudus mygtuką su piktograma.

* (dėžutės dydis: rėmelis-dėžutė;) forma ( padėtis: santykinė; plotis: 300 tšk.; paraštė: 0 automatinis; aukštis: 42 piks.; ) įvestis ( aukštis: 42 piks.; plotis: 0; užpildymas: 0 42 piks. 0 15 piks.; kraštinė: none apačia: 2px vientisas permatomas fonas: .4s cubic-bezier (0, 0.8, 0, 1 ) input:focus (plotis: 300px; z-index: 2px); vientisas #F9F0DA; ) mygtukas ( fonas: #683B4D; kraštinė: nėra; aukštis: 42 pikseliai; plotis: 42 pikseliai; padėtis: absoliutus ; viršuje: 0; dešinėje: 0; žymeklis: rodyklė; ) mygtukas: prieš ( turinys: "\f002 "; šriftų šeima: FontAwesome; šrifto dydis: 16 pikselių; spalva: #F9F0DA; )

8. Paieškos lauko išplėtimas

* (dėžutės dydis: bortelis-dėžutė;) forma ( plotis: automatinis; slankioji: dešinė; paraštė-dešinė: 30 pikselių; ) įvestis ( plotis: 250 piks.; aukštis: 42 piks.; užpildymas kairėje: 15 piks.; kraštinės spindulys: 42 piks.; kraštinė: 2px. kontūras: nėra;

Buvau kritikuojamas, sakydamas, kad išdėstymas yra baisus, tačiau yra šiuolaikinių HTML5 ir CSS3.

Žinoma, aš suprantu, naujausi standartai yra šaunūs ir tiek. Tačiau faktas yra tas, kad aš, kaip taisyklė, darau maketus pagal užsakymą, ir daugeliu atvejų svarbu visiška tapatybė įvairiose naršyklėse, o tai neleidžia naudoti naujausių technologijų. Todėl daugiausia dėmesio skiriu kelių naršyklių suderinamumui ir iš įpročio paieškos formą pateikiau „senuoju būdu“.

Apskritai šiuo įrašu taisau situaciją (dėl nepatenkintų ankstesniu straipsniu =) ir siūlau savo tos pačios paieškos formos maketo variantą, bet naudojant HTML5 ir CSS3 technologijas.

Yra pavyzdys, kas nutiks dėl to.

Ką prarandame kurdami šią formą naudodami HTML5 ir CSS3?

  1. IE9 ir žemesnė versija – nematysime numatytojo teksto (placeholder atributo).
  2. IE8 ir žemiau – nematysime užapvalintų kampų ir vidinių šešėlių.
  3. IE7 - turite nurodyti kitą formos plotį, nes... jis nepalaiko dėžutės dydžio ypatybės.
  4. IE6 – bet mes į tai visai neatsižvelgiame =)

Kitose šiuolaikinėse naršyklėse viskas gerai. Manau, kad minėti trūkumai nėra kritiški, todėl savo svetainei drąsiai naudočiau formą, sukurtą naudojant naujausias technologijas.

Paieškos formos HTML kodas

Tai atrodo taip:

Palyginti su ankstesnio straipsnio forma, pagal HTML5 technologiją atlikti šie pakeitimai:

  1. Atributas type="text" buvo pakeistas type="search" .
  2. Įterptasis scenarijus buvo pakeistas vietos žymekliu="search" .!}

CSS kodas

Čia yra visi būtini stiliai su komentarais:

Paieška ( /* nustatyti reikiamą formos plotį priklausomai nuo dizaino ** forma be problemų tempiasi */ plotis: 35%; /* pateikimo mygtuką padėsime absoliučiai, ** todėl ši savybė būtina */ pozicija: santykinis : 100% /* dėl viršutinio (8 pikselių) ir apatinio (9 pikselių) vidinio paminkštinimo ** sureguliuokite formos aukštį ** padarykite vidinį pamušalą dešinėje (37 piks.) didesnį nei kairįjį, ** ten bus patalpintas pateikimo mygtukas */ padding: 8px 37px 9px 15px /*, kad į įvesties lauko plotį (100%) būtų įtrauktas vidinis užpildas */ -moz-box-sizing: border-box; -box; /* pridėti vidinių šešėlių */ box-shadow: inset 0 0 5px rgba(0,0 ,0,0.1), inset 0 1px 2px rgba(0,0,0,0.3) /* apvalinti kampus *; / kraštinės spindulys: 20px. kontūras: nėra; ) /* pakeisti įvesties lauko dizainą, kai sufokusuotas */ .search .input:focus ( box-shadow: inset 0 0 5px rgba(0,0,0,0.2), inset 0 1px 2px rgba(0,0, 0,0.4 ); fonas: #E8E8E8; spalva: #333; 0; plotis: 37px., */ aukštis: 100% /* nepermatomas; ; ) /* užvesdami žymeklį, pakeiskite pateikimo mygtuko skaidrumą */ .search .submit:hover ( neskaidrumas: 0,8; ) /* ši savybė reikalinga, kad naršyklėse ** Chrome ir Safari galėtumėte keisti įvesties stilius */ įvestis ( -webkit-appearance: none; )

Ir IE stiliai po 9 versija:

/* nustatyti atskirus stilius IE naršyklėms po 9 versija */ *+html .search ( /* IE7 koreguokite plotį kitoms naršyklėms ir pridėkite dešinįjį ** užpildymą, kad pateikimo mygtukas būtų vietoje */ plotis: 28 % ; padding: 0 52px 0 0; ) .search .input ( kraštinė: 1px solid #DFDFDF; kraštinė-viršus: 1px solid #B3B3B3; užpildas-viršus: 8px; ) .search .input: fokusas ( border: 1px solid #CFCFCF border-top: 1px solid #999 ) .search .submit ( filtras: alfa(nepermatomumas=50); ) .search .submit:hover ( filtras: alfa(nepermatomumas=80); )

P.S. Ačiū kritikams už komentarus apie ankstesnį straipsnį! Jūsų dėka man įstrigo keletas naujų išdėstymo taškų.

Straipsnyje aprašomos svetainės paieškos formos išdėstymo ypatybės, pateikiamas semantinio kodo žymėjimo pavyzdys, dizainas CSS3 ir šiek tiek jQuery magijos pabaigoje.

  • Žymėjimas

    Prieš atsirandant HTML5, paieškos forma buvo paversta įprastu teksto lauku, palaipsniui atsiradus naujai žymėjimo kalbos versijai, jai atsirado specialus paieškos lauko tipas. Taigi šiuolaikinės svetainės HTML kode galime pamatyti kažką panašaus į tai:

    Kodo rezultatas FF, Opera, IE9:

    Ir šiek tiek kitaip naršyklėse, pagrįstose žiniatinklio rinkinio varikliu (Chrome, Safari):

    Paieškos laukas žiniatinklio rinkinyje

    Kaip matote, kai sufokusuojate lauką, pridedamas paryškinimas, o įvedus tekstą pasirodo aiškus mygtukas, kurį paspaudus, lauko turinys ištrinamas, o tai savaime yra gana patogu.

    Be CSS stiliaus, mūsų paieškos forma kol kas atrodo gana paprasta, šiame straipsnyje pabandysime padaryti kažką panašaus:

    Pavyzdžiui: paieškos formos išdėstymas

    Jei neketinama palaikyti senesnių naršyklių, tuščias nesemantinis elementas

    galima pakeisti pseudoelementu:befor .

    Paieškos formos dizaino ypatybės

    Kadangi nusprendžiau naudoti gana daug CSS3 savybių, tai senesnėse Internet Explorer naršyklėse šie stebuklai neveiks, o norint pasiekti kelių naršyklių suderinamumą, reikia jungti ramentus, kažką daryti su paveikslėliais ir pan.

    Visų pirma, norėčiau atkreipti dėmesį į kai kurias savybes, būtent:

    • stilizacija naršyklėse, pagrįstose žiniatinklio rinkinio varikliu
    • vietos žymeklio stilius

    Paieškos formų stiliai „Chrome“, „Safari“ naršyklėse

    Pridėkite šiek tiek stiliaus į lauką naudodami .search klasę:

    Paieška (fonas: #d8e6ef; kraštinė: 1px solid #000; )

    Rezultatas ekrano kopijoje:

    Ieškokite FF, Opera, Chrome ir Safari naršyklėse

    Naršyklėse, kaip įprasta, kyla dvejonių ir painiavos, Chrome kažkaip keistai veikia kraštinė (paraštės atsiranda taip, tarsi nustatytume padding), Safari visiškai nepaiso taisyklių. Tačiau yra šios situacijos sprendimas, pridėkite šią taisyklę prie CSS kodo:

    Paieška ( -webkit-appearance: none; )

    Dabar žiniatinklio rinkinyje viskas yra įprasta, tačiau jie vis tiek skiriasi laukų paryškinimu, kai sufokusuotas pagal numatytuosius nustatymus, ir išvalymo mygtuku. Nors šie elementai dažnai yra patogūs, kartais gali sugadinti dizaino tikslą ir juos reikia išjungti. Pašalinti foninį apšvietimą labai paprasta:

    Search:focus ( kontūras: nėra; /* pašalintas fokusavimo paryškinimas */ -moz-box-shadow: inset 0 0 2px #000; -o-box-shadow: inset 0 0 2px #000; -webkit-box-shadow : inset 0 0 2px #000: inset 0 0 2px #000 /* pridėtas vidinis šešėlis kaip alternatyva visoms naršyklėms */ )

    Lieka tik atsikratyti išvalymo mygtuko. Tiesą sakant, jį galima nesunkiai stilizuoti, paprastą kryžių pakeitus kokiu nors fonu, išdėstant jį ir pan., bet mano pavyzdyje jo neprireiks:

    /* taisyklė tik elementui su paieškos klase dokumentas */ input ::-webkit-search-cancel-button (rodyti: nėra; )

    Teksto patarimo vietos rezervavimo kūrimas

    Deja, su teksto užuomina viskas yra šiek tiek sudėtingiau, nei atrodo iš pirmo žvilgsnio. Pirma, jis neveikia IE9, jau nekalbant apie senesnes naršykles, todėl kritinėse vietose, kur tekstas lauke yra būtinas, turėtumėte naudoti JavaScript. Antra, vietos rezervavimas yra prastai sukurtas „Firefox“, „Chrome“, „Safari“ naršyklėse ir visiškai nepritaikytas „Opera“:

    :-moz-placeholder ( spalva: #304e62; /* pakeitė spalvą FF */ ) ::-webkit-input-placeholder ( spalva: #304e62; /* pakeitė webkit spalvą */ )

    Atminkite, kad šie parinkikliai neveiks, jei jie bus atskirti kableliais.

    Apsvarsčiau ypatingus momentus, kai gali kilti sunkumų, daugiau ar mažiau patyrusiam maketuotojui neturėtų kilti problemų.

    jQuery scenarijus

    Galiausiai prie formos pridėkime keletą scenarijų, būtent:

    • atšauksime užklausą ir parodysime klaidos pranešimą, kai siunčiame tuščią lauką
    • sutelkdami dėmesį į lauką, apačioje pridėsime nedidelį patarimą

    Visa tai labai lengva įgyvendinti naudojant jQ galią, gavau tokį kodą su komentarais:

    $(function() ( /* apdoroja formos pateikimą */ $(.search-form").submit(function() ( var errVal = "tuščia užklausa"; /* Jei laukas tuščias arba jame yra reikšmė errVal */ if( $(.search").val() == "" || $(.search").val() == errVal) ( /* į lauką įtraukite errVal, pakeiskite fono spalvą ir */ $(" .search").val(errVal).css((backgroundColor: "rgba(0,0,0,.1)")); /* return false - forma nepateikta */ return false ; )); this).val("").css((backgroundColor : "#d8e6ef")); /* rodyti patarimą */ $(.notice").fadeIn(400 )); ".search").blur(function( ) ( /* pašalinti patarimą */ $(.notice").fadeOut(400; ));

    Žinoma, geriausia scenarijaus klases pakeisti identifikatoriais, kad scenarijus veiktų greičiau, ir net jei dokumente atsiras kitų elementų su tomis pačiomis klasėmis, jie nepažeis scenarijaus veikimo.

    Rezultatai

    Taigi sukūrėme ir suprogramavome svetainės paieškos formą, kuri veikia naujausiose Firefox, Chrome, Opera, Safari ir IE9+ versijose. Jei tikrai norite, galite sukurti daugiau ar mažiau kelių naršyklių versiją, pradedant nuo IE6.

    Patvirtinta

    • Internet Explorer 9+
    • Opera
    • Firefox
    • Chrome
    • Safari

    Padėkite projektui