Design og kode en integrert Facebook App HTML + CSS

Velkommen tilbake! I denne delen av opplæringen skal vi kode inn vårt design i HTML og illustrere noen av Facebooks CSS-stilegenskaper som vil gi den den innfødte følelsen. Så hold deg til meg, lag deg en kopp te og lykkelig koding!


Introduksjon

Velkommen til del 2 av vårt design og kode en innfødt Facebook-app. I den siste artikkelen så vi bak kulissene på noen av de tankeprosessene som var involvert i å skape et innfødt utseende og en Facebook-app. Selv om vi ikke gikk i detalj med den faktiske utformingen av den i Photoshop; Vi diskuterte hvordan Facebooks designprinsipper kan hjelpe deg med å designe appen din. For mitt eksempel valgte jeg å gjenskape webdesigntuts + bloggen som en Facebook-app. Jeg antar at du er komfortabel nok i Photoshop til å enten kopiere den eller skreddersy den for å lage ditt eget innfødte utseende og design.

Hva skal vi skape

I denne delen av opplæringen skal vi kodes det designet til HTML og illustrere noen av Facebooks CSS-stilegenskaper som gir den den innfødte følelsen. Så hold deg til meg, lag deg en kopp te og lykkelig koding!


Trinn 1: Unnlatelse av å forberede, forbereder seg på å mislykkes

Det er alltid en god ide å begynne med litt fremoverplanlegging. Noen av dere vil utforme layoutet ditt i Photoshop, mens noen av dere som er selvsikker nok, vil ønske å hoppe rett fra wireframe til HTML / CSS-markeringen. Personlig liker jeg alltid å lage det jeg skal kodes for i Photoshop, da det gir meg en sterk visuell ide om hva jeg skal kode. Det kan også komme til nytte i fremtiden for når du vil oppdatere appen din. Det kan være mye lettere å ordne og konseptualisere ting i Photoshop enn det kan være i kodeditoren din.

Noen ganger liker jeg også å skrive ut min wireframe og merke dimensjonene på dem med en penn. Dette gjør også livet enklere når jeg koder opp ting. Når du går med, er du sikker på at du vil komme opp med dine egne metoder og måter å gjøre ting på, og en del av det er å finne den beste måten som passer deg.


Trinn 2: Appstruktur

Måten jeg har strukturen på, er som følger (og dette er ganske mye min standard måte å sette opp ting på for hvert prosjekt). Du kan spare mye tid ved å bare lage denne tomme mappemalen på harddisken og kopiere den hver gang du oppretter et nytt prosjekt

  • css
  • js
  • Bilder
  • index.html

Trinn 3: HTML Markup

     Design og kode en integrert Facebook App        

Sette opp vår Inkluderer

For dette prosjektet har jeg brukt HTML5 doktypen, som jeg tror de fleste av dere burde ha prøvd nå. For min CSS tilbakestilling har jeg koblet til Yahoo's CSS reset fra deres YUI bibliotek. Hvis du ikke er kjent med en CSS reset, kan den i sin mest grunnleggende form beskrives som:

et stilark for å redusere nettleserens uoverensstemmelser i ting som standard linjehøyder, marginer og skriftstørrelser i overskrifter mv

Jeg kommer ikke til å gå for mye detaljert om dette i denne opplæringen, men du kan finne mer informasjon om dette i den videre lese delen nedenfor.

Etter tilbakestilling har jeg da koblet til min egen CSS-fil som jeg har kalt 'style.css'. Jeg har deretter fulgt dette med det siste av jQuery og en til min egen javascript-fil som jeg har kalt 'myjava.js' (selv om vi vil lage denne filen i neste del av opplæringen). Denne filen vil tillate oss å gjøre vårt filtersøk og endre innholdet på sidens faner

Setter opp vår side

  

Mens du lager html-versjonen av vår Facebook-app, vil jeg gjerne legge alt i en wrapper som er 760px bred. Dette er bare for å sikre at jeg bor innenfor 760px; bredden på lerretet som Facebook lar appen din sitte i. Jeg fjerner deretter denne wrappen og CSS for den før jeg legger den inn i Facebook.

Når vi har installasjon inkluderer vår og "wrapper" er det da på tide å flytte inn på hovedbygningene i appen vår. I dette eksemplet er det relativt enkelt da vi bare har maincontent og sidebar-divs. Til dette vil vi bruke klasser med samme navn. Du kan, hvis du vil, bruke 'id' i stedet for 'klasser', da disse div-instansene ikke vil bli gjentatt. Men noe som jeg alltid velger (selv om jeg er sikker på at noen ville være uenige) er å bruke klasser på de fleste elementer. Jeg bruker sjelden ID-er. Jeg finner at ved å gjøre dette bare holder det enkelt for meg. Jeg trenger aldri å lure på om jeg har gitt noe et "id" eller en "klasse". Dette kan komme utrolig bemerkelsesverdig, spesielt når du begynner å inkorporere jQuery i appene dine. Selv om du vurderer om det er mulig før du begynner koding, vil du definitivt ikke trenger å bruke ID-er hvor som helst.

Det er også tilrådelig å alltid avslutte oppmerkningsblokkene med en avsluttende kommentar som angir hvilken del av merkingen som er ferdig. På denne måten vet du hvor hver seksjon slutter. Jeg må innrømme at jeg var ganske sen til å vedta denne teknikken, og etterpå kunne jeg ha reddet meg mange timer med å vasse meg gjennom koder med kode for å finne ut hvor enkelte blokker begynner og slutter.


Trinn 4: Hovedinnhold

 
webdesigntuts + logo
  • Alle
  • Handle om
  • Skriv til oss
  • Andre blogger

For denne appen trodde jeg ikke det var nødvendig å bruke en header bare for å huse logoen, så jeg har satt dette på toppen av maincontent div i sin egen div med en klasse som heter 'logo'. Dette etterfølges av en uordnet liste for fanene. Jeg har gitt fanene et klassenavn av; ja du gjettet det 'faner'. Disse vil fungere som vår menylinje i kategorien som vil vise de forskjellige sidene i bloggen vår.

Sidene i bloggen vår er pakket inn i en div-container, som jeg har gitt en klasse av 'tab_container'. Innenfor dette har jeg fire div (en for hver kategori / side). Jeg har gitt alle fire av disse en klasse som heter 'tab_content', med hver som har sin egen klasse for sin posisjon innenfor siden. Den første kategorien har en ekstra klasse av «tab1», den andre «tab2», den tredje «tab3» osv. Disse individuelle klassenavnene blir brukt til å hjelpe oss med å identifisere hver flipp i neste del av opplæringen når vi implementerer jQuery.


Trinn 5: Individuelle blogginnlegg

 

Design for og som en fargeblind person

av Connor Turnbull 22. juli 2011 med 2 kommentarer

Fargeblindhet er et mildt funksjonshemning der de berørte opplever en redusert evne til å skille farger fra andre. Dette kan være en reell ulempe for alle i designfeltet siden fargeteori er en integrert funksjon i vellykket design, og mange avgjørelser er basert på følelsen og følelsen avledet fra?

Les mer 12 Liker 14 Kommentarer Del

Det individuelle blogginnlegget har en klasse med tittelen «innlegg» og ligger i div med klassen 'tab1', siden denne fanen vil være på standard destinasjonssiden. Dette inneholder da flere anker- og strekkmerker som gjør at vi kan stile elementer som dato og bloggforfatter i det opprinnelige blåa a la facebook. Når denne posten er ferdig, kan vi bare kopiere og lime den inn for resten av innleggene. Ikke gå over bord og tett opp koden din, hold den til rundt tre eller fire, da dette vil gi oss en ide om hvordan det skal se ut og føle. Jeg har også laget et spenn med klassen 'linjen' som bare er en horisontal linje som vi vil bruke i hele appen.


Trinn 6: Andre sidefaner

Våre andre sidefaner består hovedsakelig av h3-, anker- og avsnittetiketter:

 

Handle om

Webdesigntuts + er en blogg laget for å presentere og presentere noen av de beste webdesign-veiledningene og artiklene rundt. Vi publiserer opplæringsprogrammer som ikke bare gir gode resultater og grensesnitt, men forklarer teknikkene bak dem på en vennlig, tilnærmet måte.

Webdesign er en blomstrende bransje med mye konkurranse. Vi håper at lesing Webdesigntuts + vil hjelpe våre lesere til å lære noen få triks, teknikker og tips som de kanskje ikke har sett før, og hjelpe dem med å maksimere deres kreative potensial!

Webdesigntuts + er en del av Tuts + Network


Trinn 7: Søkefilteret

 

Øverst på sidelinjen har vi vårt nettsteds filtersøk - dette består av en enkel form. Vi vil gjøre dette operativt i neste del av opplæringen ved hjelp av jQuery. Skjemaet blir deretter fulgt av en annen horisontal linje og et strekk og stykke tekst for å vise vår "likes" telle.


Trinn 8: Facebook Like and Button

 nettsted 
Logg ut

Heldigvis for oss har Facebook gjort det super enkelt å inkorporere en lignende knapp i vår app. Du kan generere koden for din egen lignende knapp eller noen av deres andre sosiale plugin-moduler på Facebook Developer Plugins. Når du har generert koden, ta den med i html. Du vil kanskje legge til noe CSS for å plassere det, men i dette tilfellet er det ikke nødvendig


Trinn 9: Tab Headers

 
kategorier
  • Eksempelkatt 1
  • Eksempelkatt 2
  • Eksempelkatt 3
  • Eksempelkatt 4
  • Eksempelkatt 5
Litt om oss

Hvis du har lest den første delen av denne opplæringen (hvis du har gjort det så langt, gjetter jeg at du har), så har du hørt meg snakke om gjenbruk. Disse fanene definerer det mer enn noen annen del av koden vår. Som med Facebook er vi i stand til å gjenbruke disse fanene og implementere dem med stor letthet. De kommer inn veldig hendig hvis du vil legge til en rask ekstra seksjon til nettstedet.


Trinn 10: CSS

 Kode Blokker som viser fanebladene

Nå er det på tide å flytte inn på utformingen av HTML-en. På grunn av Facebooks enkle styling er det ikke for mye CSS. Jeg har brutt det opp i deler for å se på. Det er også viktig å påpeke at Facebook kan være irriterende når det gjelder testing og justering av CSS da det caches det, noe som betyr at når du laster opp en ny versjon av stilarket, gjør den den gamle. Selv om det ikke er perfekt; Løsningen jeg brukte var å legge til «? version = 1» på slutten av det medfølgende stilarket i indeksfilen. Hver gang du gjør en oppdatering til CSS og laster opp, må du også oppdatere versionsnummeret i indeksfilen.


Trinn 11: Oppsett

Vi starter CSS ved å lage wrapper og et par klasser som jeg alltid legger til for å kunne flyte elementer til venstre eller høyre.

 / * ------------------------------------------------ ----------------------------------- * / / * Oppsett / * -------- -------------------------------------------------- ------------------------- * / .wrapper width: 760px; høyde: 200px; margin-left: auto; margin-right: auto; padding-top: 20 piksler; . rett float: right; / * En klasse jeg legger alltid til å flyte elementer til høyre * / .left float: left; / * For å flyte gjenstander igjen * /

Trinn 12: Byggeblokker

Byggeklossene for vårt hovedinnhold er som følger:

 / * ------------------------------------------------ ----------------------------------- * / / * Oppsett / * -------- -------------------------------------------------- ------------------------- * / .wrapper width: 760px; høyde: 200px; margin-left: auto; margin-right: auto; padding-top: 20 piksler; . rett float: right; / * En klasse jeg legger alltid til å flyte elementer til høyre * / .left float: left; / * For å flyte gjenstander igjen * / / * --------------------------------------- --------------------------------------------*/ /* Byggeklosser / * ------------------------------------------------ ----------------------------------- * / / * ----------- -------------------------------------------------- ---------------------- * / / * Typografi / * --------------------- -------------------------------------------------- ------------ * / / * ---------------------------------- ------------------------------------------------- * / / * Faner / * -------------------------------------------- --------------------------------------- * / / * ------- -------------------------------------------------- -------------------------- * / / * Knapper / * ----------------- -------------------------------------------------- ---------------- * / / * ------------------------------ -------------------------------------------------- --- * / / * Ekstra komponenter / * --------------------------------------- -------------------------------------------- * /

Trinn 13: Typografi

Sannsynligvis en av de viktigste CSS-delene av vår Facebook-app. Få dette galt, og det vil ødelegge den opprinnelige effekten av appen din. Ta en titt rundt Facebook og velg de mest passende skriftstørrelsene for dine behov.

 / * ------------------------------------------------ ----------------------------------- * / / * Typografi / * -------- -------------------------------------------------- ------------------------- * / a markør: pointer; farge: # 3B5998; tekst-dekorasjon: ingen;  a: svever tekst-dekorasjon: understreke;  sterk font-weight: bold;  em font-style: kursiv;  h3 font-size: 16px; font-vekt: bold; linjehøyde: 1.1em; margin-bottom: 5 px;  .postInfo display: block; / * Spans er inline element, så må endres for å blokkere for at marginen skal fungere * / color: # 808080; margin-top: 5 px; margin-bottom: 10px;  p font-size: 12px; linjehøyde: 1,5em; margin-bottom: 18 piksler;  .line display: block; bredde: 100%; høyde: 1 px; background-color: #ccc; margin-top: 5 px; margin-bottom: 5 px;  .more color: # 3B5998; font-vekt: bold;  .likesCount font-size: 16px; font-vekt: bold; 

Trinn 14: Faner

 / * ------------------------------------------------ ----------------------------------- * / / * Tabs / * -------- -------------------------------------------------- ------------------------- * / ul.tabs margin: 0; polstring: 0; flyte: venstre; listestil: none; høyde: 19px; / * - Angi høyde på faner - * / border-bottom: 1px solid # E2E2E2; border-left: 1px solid # E2E2E2; bredde: 100%; margin-bottom: 20 piksler;  ul.tabs li float: left; margin: 0; polstring: 0; høyde: 18px; / * - Minus 1px fra høyden på ul - * / linjehøyde: 18px; / * - justerer tekst i kategorien - * / border: 1px solid # E2E2E2; margin-bunn: -1px; / * - Trekk listeposten ned 1px - * / overflow: hidden; stilling: relativ; bakgrunn: # f2f2f2; margin-right: 5px; en minstebredde på: 73px; tekst-Justering: center;  ul.tabs li: første barn / * - Fjerner den venstre grensen fra det første barnet i listen - * / border-left: none;  ul.tabs li a text-decoration: none; farge: # 333333; skjerm: blokk; skriftstørrelse: 11px; padding-right: 5px; padding-left: 5 px; oversikt: ingen;  ul.tabs li a: svever bakgrunn: #fff;  html ul.tabs li.active, html ul.tabs li.active a: hover / * - Kontrollerer at den aktive kategorien ikke hører på hoveregenskapene - * / bakgrunn: #fff; grensebunn: 1px solid #fff; color: # 3B5998;  ul.tabs li.active a color: # 3B5998; 

Trinn 15: Knapper

En annen integrert del av CSS for Facebook apps er knappene. Jeg er sikker på at du vil bruke noen av disse rundt appene dine. Vi har opprettet disse uten å bruke en knapp, men i stedet en anker-tag med en span-klasse inne i bildet for bildet.

 / * ------------------------------------------------ ----------------------------------- * / / * Knapper / * -------- -------------------------------------------------- ------------------------- * / .button bakgrunnsfarge: # ECEEF5; grense: 1px solid # CAD4E7; text-decoration: none; -webkit-grense-radius: 3px; -moz-grense-radius: 3px; border-radius: 3px; polstring: 2px 3px 2px 2px; margin-right: 5px; . knapp: svinge grense: 1px solid # 9DACCE; text-decoration: none;  .buttonimage bakgrunn: url (? /images/icon.png); farge: # 3B5998; skjerm: blokk; bredde: 12 piksler; høyde: 12 piksler; margin-right: 3px; margin-top: 1 px; margin-bottom: 1 px; margin-left: 2 piksler; 

Trinn 16: Ekstra komponenter

 / * ------------------------------------------------ ----------------------------------- * / / * Ekstra komponenter / * ------- -------------------------------------------------- -------------------------- * / .logo width: 379px; høyde: 60 px; margin-left: auto; margin-right: auto; margin-bottom: 26px; stilling: relativ; -moz-boks-skygge: 0 14px 10px -12px rgba (0,0,0,0,7); -webkit-boks-skygge: 0 14px 10px -12px rgba (0,0,0,0,7); boksskygge: 0 14px 10px -12px rgba (0,0,0,0,7);  .search polstring: 1px 5px 2px 0; margin-bottom: 20 piksler; bredde: 240 piksler; -webkit-boks-størrelse: border-box; / * Safari / Chrome, annen WebKit * / -moz-boks-størrelse: border-box; / * Firefox, annen Gecko * / boks-størrelse: border-box; / * Opera / IE 8+ * / .tabHeader bakgrunnsfarge: # F2F2F2; border-top: solid 1px # E2E2E2; polstring: 4px 5px 5px; margin-top: 15px; margin-bottom: 10px;  .profileimage float: left; margin-høyre: 5px; 

Konklusjon?

Så der har vi det, vi har nå vår Facebook app kodet opp i HTML / CSS. Jeg håper du likte å lese denne delen av opplæringen, og at du nå har en god forståelse for hvordan Facebooks stiler kan oversettes til CSS. Ved å se på og bruke noen av Facebooks CSS-egenskaper, kan vi virkelig forstå hvordan bare noen få linjer med kode på de riktige stedene kan gi vår app det innfødte utseendet, som sitter komfortabelt i Facebook og holder seg til Facebooks designprinsipper.

I neste del av opplæringen lærer vi hvordan du implementerer dette til Facebook for å være en innfødt bloggapp. Vi gjør dette ved hjelp av YQL og Facebook Graph API. Jeg vil også vise deg noen tips og tips for å spise opp appen din med litt søt jQuery-godhet. Så til neste del pepper gledelig koding!


Ytterligere lenker og ressurser

  • Design og kode En integrert Facebook App - Teori
  • Eric Meyers CSS reset
  • Facebook sosiale plugins
  • Våre Webdesigntuts + app på Facebook