HTML5 pamoka Kaip sukurti vieną produkto puslapį
Šiame pranešime ketiname dirbti su išgalvotu projektu, kuriame bus sukurtas vienas „iPhone 4S“ produktų puslapis, o šiame projekte taip pat ketiname įgyvendinti metodus, kuriuos aptarėme ankstesniuose pranešimuose;
Pradėkime.
HTML5 žymėjimas
Pirma, turime sukurti html
dokumentas su tokiu žymėjimu:
Apple iPhone 4 - 16GB
Pats nuostabiausias „iPhone“.
Greitesnis dviejų branduolių A5 lustas. 8MP kamera su visa nauja optika taip pat fotografuoja 1080p HD vaizdo įrašą. Ir įvesti Siri. Tai pats nuostabiausias „iPhone“.
Prekės savybės
- 8 megapikselių kamera su visu 1080p vaizdo įrašu
- Siri balso asistentas
- iCloud
- Oro spausdinimas
- Tinklainės ekranas
- Nuotraukų ir vaizdo įrašų geografinis žymėjimas
Naudojame keletą naujų žymių iš HTML5 spec antraštė
, hgroup
, skaičius
, skyrius
, ir vieną, apie kurią kalbėjome anksčiau; informacija
ir santrauka
žyma.
Tačiau mes nenorime kasti šių žymių ne todėl, kad nenorime, bet tai yra pagrindinės temos, kurias galite lengvai rasti kitur. Taigi, jei esate tikrai naujas HTML5, rekomenduoju perskaityti šias šių žymų nuorodas; jie išsamiai paaiškino juos:
- Pakalbėkime apie semantinį
- HTML5 antraštės elementas
- Hgroup elementas
- HTML5 žymos nuoroda
Dabar pažiūrėkime į pirmą puslapį.
Na, tai atrodo protinga be jokių stilių. Pačioje viršuje yra antraštė, o tada ateina vaizdo dalis, aprašymas ir galiausiai mygtukas „Pirkti dabar“. Dabar pakalbėkime šį puslapį.
Stiliai
Pradėsime normalizuodami visus numatytuosius stilius naudodami šį stilių ir pridėsime gradiento foną html
žyma.
html aukštis: 100%; fonas: # f3f3f3; fonas: -moz-linijinis gradientas (viršutinis, # f3f3f3 0%, #ffffff 50%); fonas: -webkit-gradientas (tiesinis, kairysis viršuje, kairėje apačioje, spalvų sustojimas (0%, # f3f3f3), spalvų stabdymas (50%, # ffffff)); fonas: -webkit-linijinis gradientas (viršuje, # f3f3f3 0%, # ffffff 50%); fonas: -o-linijinis gradientas (viršuje, # f3f3f3 0%, # ffffff 50%); fonas: -ms-linijinis gradientas (viršuje, # f3f3f3 0%, # ffffff 50%); fonas: tiesinis gradientas (viršuje, # f3f3f3 0%, # ffffff 50%); filtras: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# f3f3f3", endColorstr = "# ffffff", GradientType = 0);
Atminkite, kad mūsų produktų elementai yra suvynioti į a div
su produktų klase. Taigi, mes norėtume centruoti vyną ir nustatyti, kad plotis būtų apie 650 pikselių
.
.įvyniojimas plotis: 650px; marža: auto; paminkštinimas: 25px 0px;
Antraštės skyrius
Antraštės dalyje turime dvi antraštes h1
ir h4
, todėl leiskite stiliui šiuos elementus.
h1, h4 šrifto šeima: Helvetica Neue, Arial, sans-serif; šrifto svoris: normalus; marža: 0; h1 šrifto dydis: 24pt; h4 šrifto dydis: 16pt; spalva: #aaa;
Ir tada pridėkite šiek tiek vietos antraštė
su atsarga.
antraštė margin-bottom: 20px;
Jei pažvelgsite į pačią dešinę antraštės pusę, toje pusėje būtų daug vietos.
Tad kodėl mes taip pat įdėti „Apple“ logotipą.
antraštė margin-bottom: 20px; fonas: url ('… /https://assets.hongkiat.com/uploads/html5-single-product-page/apple.png') ne pakartoti teisingas centras;
Produkto vaizdas
Be to, plaukite vaizdą į kairę ir nustatykite maksimalų vaizdo plotį 350 pikselių
.
figūra float: kairė; figūra img max-width: 350px;
Kadangi vaizdas buvo išstumtas į kairę, tada plūduriuosime aprašymo dalį į dešinę ir nustatysime plotį 300 pikselių
.
sekcija font-family: Tahoma, Arial, sans-serif; linijos aukštis: 150%; float: right; plotis: 300px; spalva: # 333;
Dabar pažiūrėkime rezultatą iki šiol.
Jis pradeda ieškoti gerai, bet detalių žyma dar neveikia (išskyrus „Chrome“), todėl leiskite stiliui pasirinkti kitą mygtuką.
Mygtukas
Mygtukų stiliams mes imituosime „Apple.com“ parduotuvės modelį. Ir čia yra visa sintaksė, kurią reikia įdėti į savo stiliaus lentelę.
mygtukas fonas: # 36a9ea; fonas: -moz-linijinis gradientas (viršutinis, # 36a9ea 0%, # 127fd2 100%); fonas: -webkit-gradientas (tiesinis, kairysis viršuje, kairėje apačioje, spalvų sustojimas (0%, # 36a9ea), spalvų sustojimas (100%, # 127fd2)); fonas: -webkit-tiesinis gradientas (viršutinis, # 36a9ea 0%, # 127fd2 100%); fonas: -o-linijinis gradientas (viršutinis, # 36a9ea 0%, # 127fd2 100%); fonas: -ms-linijinis gradientas (viršutinis, # 36a9ea 0%, # 127fd2 100%); fonas: tiesinis gradientas (viršutinis, # 36a9ea 0%, # 127fd2 100%); filtras: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# 36a9ea", endColorstr = "# 127fd2", GradientType = 0); siena: 1px kietas # 00599d; spalva: #fff; pagalvėlė: 8px 20px; -webkit-border-spindulys: 3px; pasienio spindulys: 3px; -webkit-box-shadow: 0px 1px 1px 0px rgba (0, 0, 0, .1), įterpimas 0px 1px 0px 0px rgba (250, 250, 250, .3); dėžutės šešėlis: 0px 1px 1px 0px rgba (0, 0, 0, .1), įdėklas 0px 1px 0px 0px rgba (250, 250, 250, .3); teksto šešėlis: 0px 1px 1px # 156cc4; filtras: dropshadow (spalva = # 156cc4, išjungta = 0, pašalinis = 1); šrifto dydis: 10pt; mygtukas: pakimba fonas: # 2f90d5; fonas: -moz-linijinis gradientas (viršuje, # 2f90d5 0%, # 0351b7 100%); fonas: -webkit-gradientas (tiesinis, kairysis viršuje, kairėje apačioje, spalvų sustojimas (0%, # 2f90d5), spalvų stabdymas (100%, # 0351b7)); fonas: -webkit-linijinis gradientas (viršuje, # 2f90d5 0%, # 0351b7 100%); fonas: -o-tiesinis gradientas (viršuje, # 2f90d5 0%, # 0351b7 100%); fonas: -ms-linijinis gradientas (viršuje, # 2f90d5 0%, # 0351b7 100%); fonas: tiesinis gradientas (viršuje, # 2f90d5 0%, # 0351b7 100%); filtras: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# 2f90d5", endColorstr = "# 0351b7", GradientType = 0); mygtukas: aktyvus fonas: # 127fd2; -webkit-box-shadow: įdėklas 0px 2px 1px 0px rgba (0, 47, 117, .5), 0px 1px 1px 0px rgba (0, 0, 0, 0); dėžutės šešėlis: įdėklas 0px 2px 1px 0px rgba (0, 47, 117, .5), 0px 1px 1px 0px rgba (0, 0, 0, 0);
Dabar mygtukas turėtų atrodyti geriau.
„Internet Explorer“ problema
Kaip įprasta, IE (Internet Explorer) visada sukelia tam tikrų problemų; jei atidarote bet kurią IE, kuri yra mažesnė nei 9, puslapis išliks nestandartinis.
Taip yra todėl, kad „Internet Explorer“ neatpažįsta naujų elementų (skyrius
, antraštė
, ir tt), todėl stilius, kuriuos mes nurodėme, nepavyko taikyti. Taigi, sekančiame žingsnyje mes spręsime šią problemą.
Naršyklės palaikymo testavimas
Mūsų ankstesnėje žinutėje mes išsprendėme naršyklės palaikymą detalės elementui, naudojant šį polifilą; kad jis galėtų veikti nepalaikomose naršyklėse. Tačiau šį kartą bandysime tai padaryti su „Modernizr“.
Oficialioje svetainėje, "„Modernizr“ yra atviro kodo „JavaScript“ biblioteka, kuri padeda sukurti naujos kartos HTML5 ir CSS3-tinklavietėse". Techniškai „Modernizr“ išbandys naršyklės paramą tam tikriems naujiems elementams ir funkcijoms. Jei parama nėra teikiama, mes turime suteikti atsarginę galią, jei tai būtų suteikiant skirtingus stilius ar teikiant polifilai. Tokiu atveju mes panaudosime „Modernizr“, kad galėtume išbandyti detales ir santraukos elementą.
-
Eikite į „Modernizr“ ir pereikite prie atsisiuntimo puslapio.
-
Atsisiuntimo puslapyje „Modernizr“ pateikia keletą parinkčių, kaip konfigūruoti biblioteką, todėl jūs turite pasirinkti tik tam tikras funkcijas, kurios jums tikrai reikalingos jūsų svetainėje. Šiuo atveju mums reikia:
- HTML5Shiv 3.4
- Pridėti CSS klases, ši funkcija automatiškai įtrauks klases į html žymą.
- Modernizr.load,
- eikite į bendruomenės priedų langelį ir pasirinkite element-details,
- Išplečiamumo skiltyje pasirinkite Modernizr.addTest.
- Sukurkite ir atsisiųskite failą.
- Susieti jį su „html“ ir iš naujo įkelti puslapį „Internet Explorer“. Dabar puslapis turėtų būti sukurtas, nes „Internet Explorer“ dabar gali atpažinti žymes.
Ir jei peržiūrėsite šaltinį arba patikrinsite elementą, rasite „html“ žymelę, kurioje nėra informacijos klasės; nurodant, kad naršyklė, kurioje peržiūrime puslapį; šiuo metu nepalaiko detalių elemento. @@@@ [Aš negaliu suprasti šio sakinio. ]
Tada mes galime sukurti atsargą, naudodami šią klasę kaip kablys, kurį darysime sekančiame žingsnyje.
Atgal
Šiame etape mes suteiksime panašius informacija
elementų funkcijos kitoms naršyklėms (išskyrus „Chrome“). Ankstesniame pranešime šis veiksmas buvo automatiškai atliktas naudojant šį scenarijų, tačiau šį kartą mes jį sukursime pačiam.
Pastaba: Tiesiog peržiūrėkite šiek tiek iš ankstesnio pranešimo; detalių elementas šiuo metu yra palaikomas tik „Chrome“ naršyklėje.
Taigi pirmiausia pradėkime CSS.
Santraukos žyma keičiame žymeklio režimą į rodyklę, todėl vartotojas pastebės, kad jis yra paspaudžiamas.
santrauka žymeklis: žymeklis; šrifto dydis: 12pt; kontūras: 0;
Norėdami pateikti daugiau tarpų detalės elemento viršuje ir apačioje su paraštėmis.
informacija margin: 20px 0px;
Pagal numatytuosius nustatymus suvestinė žyma turės rodyklę. Bet čia norėtume ją pakeisti plius minuso piktograma.
Pastaba: Prieš tęsdamas, anksčiau „Fugue“ atsisiuntė piktogramas iš šios kolekcijos, atsisiųsdavau jas ir sudėjau į vieną failą.
Pridėkime prieš pseudo elementą ir pridėkite piktogramą kaip foną. Atkreipkite dėmesį, kad šiuo metu fono padėtis yra viršuje, kurioje bus rodoma pliuso piktograma.
informacija> santrauka: prieš plotis: 16px; aukštis: 16px; ekranas: inline-block; turinys: "! svarbu; fonas: URL ('… /https://assets.hongkiat.com/uploads/html5-single-product-page/plus-min.png') ne pakartotinis centrinis viršus; 5px; pozicija: santykinė; viršuje: 2px;
Tada, kai detalės elementas yra atidarytas, fono padėtis bus perkelta į apačią, kurioje bus rodoma minuso piktograma.
informacija [open]> santrauka: prieš, details.open> santrauka: prieš background: url ('… /https://assets.hongkiat.com/uploads/html5-single-product-page/plus-min.png' ) negrįžtamas centrinis dugnas;
The [atviras]
ženklas yra selektorius. Tokiu atveju ji atveria atributą atributui palaikančioje naršyklėje.
Galiausiai turėtume paslėpti rodyklę, kuri pagal nutylėjimą rodoma „Chrome“.
informacija> santrauka :: - webkit-details-marker display: none;
Tada pamatysime naršyklės rezultatą.
Dabar pagal nutylėjimą rodoma rodyklė buvo pakeista mūsų piktograma, o jei ją matysite „Chrome“, jau turėsite perjungimo efektą, kai jį spustelėsite; piktograma atitinkamai pasikeis. Tačiau kitose naršyklėse nieko nebus. Taigi, sekančiame žingsnyje bandysime pakartoti efektą su jQuery.
Perjungimo efektas su jQuery
Prieš pradedant su „jQuery“ dalimi, norėčiau padėkoti Ianui Devlinui už įkvėpimą..
Gerai, sukuriame kintamąjį, kad išsaugotume suvestinę žymą.
var summary = $ („informacijos santrauka“);
Tada apibendrina visus santraukos brolio elementus a div
.
Summary.siblings (). wrapAll ('„);
Ir paslėpti tą div, kai detalės elementas neturi atviros klasės.
$ („išsami informacija: ne (.open) santrauka“). broliai / seserys („div“).
Paspaudus suvestinę, norime, kad būtų parodyta paslėpta dalis, o priešingai, kai div pradžioje bus atidaryta, ji būtų paslėpta.
Summary.click (funkcija () $ (this) .siblings ('div'). perjungti (); $ ('detales') toggleClass ('open'););
Norėdami įsitikinti, kad šios funkcijos bus vykdomos tik nepalaikomose naršyklėse, mes jas supakuojame į šį sąlyginį pareiškimą.
jei ($ ('html'). hasClass („ne-detales“)) // kodas čia
Ir žemiau yra kodas, kurį turime:
jei ($ ('html'). hasClass ('ne-detales')) var summary = $ („detalių suvestinė“); Summary.siblings (). wrapAll ('„); $ („išsami informacija: ne (.open) santrauka“). broliai / seserys („div“). Summary.click (funkcija () $ (this) .siblings ('div'). perjungti (); $ ('detales') toggleClass ('open'););
Dabar išbandykime naršyklę; perjungimo efektas dabar turėjo dirbti visose naršyklėse, aš asmeniškai patikrinau (kol „Internet Explorer 7“).
- Demo
- Atsisiųsti šaltinį
Patarimai: Arba galite pakeisti .perjungti ()
su .slinktis ()
sukurti skaidrių efektą. Taip pat, jei norite, kad detalė būtų atidaryta iš pradžių, detalės elemente galite pridėti klasę.
Išvada
Mes atlikome visus vieno puslapio sukūrimo veiksmus, naudodami HTML5, derindami nepalaikomas naršykles, taip pat atkartojome detalių elementų perjungimo efektą, todėl tikiuosi, kad galite daug sužinoti iš jo.
Vis dėlto žinau, kad šiame pranešime išsamiai nepaaiškinau, todėl, jei norite išvalyti kažką, nedvejodami rašykite klausimą komentarų laukelyje.