Ontwerp en codeer een geïntegreerde Facebook-app HTML + CSS

Welkom terug! In dit deel van de tutorial zullen we ons ontwerp coderen in HTML en enkele CSS-stijleigenschappen van Facebook illustreren die het native gevoel geven. Dus blijf bij mij, maak een kopje thee en blije codering!


Invoering

Welkom bij deel 2 van ons ontwerp en codeer een native Facebook-app. In het laatste artikel hebben we achter de schermen gekeken naar enkele van de denkprocessen die betrekking hebben op het creëren van een native look and feel Facebook-app. Hoewel we niet uitvoerig ingegaan zijn op het daadwerkelijke ontwerp ervan in Photoshop; we hebben besproken hoe de ontwerpprincipes van Facebook u kunnen helpen bij het ontwerpen van uw app. Voor mijn voorbeeld heb ik ervoor gekozen om de webdesigntuts + blog opnieuw te creëren als een Facebook-app. Ik veronderstel dat je allemaal comfortabel genoeg bent in Photoshop om het te repliceren of op maat te maken om je eigen native look and feel-ontwerp te maken.

Wat we zullen creëren

In dit deel van de tutorial zullen we dat ontwerp coderen in HTML en enkele CSS-stijleigenschappen van Facebook illustreren die het die native feel zullen geven. Dus blijf bij mij, maak een kopje thee en blije codering!


Stap 1: niet voorbereiden is voorbereiden op falen

Het is altijd een goed idee om met een beetje planning vooraf te beginnen. Sommigen van jullie zullen je lay-out in Photoshop willen ontwerpen, terwijl sommigen van jullie die ervan overtuigd zijn dat ze direct van het draadframe naar de HTML / CSS-markering willen springen. Persoonlijk maak ik altijd graag wat ik eerst in Photoshop zal coderen, omdat het me een sterk visueel idee geeft van wat ik ga coderen. Het kan ook van pas komen in de toekomst als u uw app wilt updaten. Het kan veel eenvoudiger zijn om dingen in Photoshop te ordenen en te conceptualiseren dan in uw code-editor.

Soms print ik ook graag mijn draadframe en markeer de afmetingen erop met een pen. Dit maakt het leven ook gemakkelijker als ik dingen codeer. Als je doorgaat, weet ik zeker dat je met je eigen methoden en manieren van doen komt en een deel ervan is de beste manier vinden die bij je past.


Stap 2: App-structuur

De structuur van mijn map is als volgt (en dit is zowat mijn standaardmanier om dingen voor elk project in te stellen). U kunt uzelf een hoop tijd besparen door eenvoudig dit lege mapsjabloon op uw harde schijf te maken en het te kopiëren telkens wanneer u een nieuw project aanmaakt

  • css
  • js
  • afbeeldingen
  • index.html

Stap 3: HTML-markering

     Ontwerp en codeer een geïntegreerde Facebook-app        

Onze Opnames instellen

Voor dit project heb ik het HTML5-doctype gebruikt, waarvan ik denk dat de meeste van jullie het nu al hadden moeten uitproberen. Voor mijn CSS-reset heb ik een link gemaakt naar de CSS-reset van Yahoo vanuit hun YUI-bibliotheek. Als u niet bekend bent met een CSS-reset, kan deze in de meest eenvoudige vorm worden beschreven als:

een stylesheet om de inconsistenties van browsers te verminderen in zaken als standaardlijnhoogten, marges en lettergroottes van koppen, enz

Ik ga hier niet te gedetailleerd op ingaan in deze tutorial, maar u kunt hierover meer informatie vinden in de volgende sectie hieronder..

Na de reset heb ik vervolgens een link gemaakt naar mijn eigen CSS-bestand met de naam 'style.css'. Ik heb dit vervolgens gevolgd door de nieuwste include van jQuery en een include naar mijn eigen javascript-bestand dat ik 'myjava.js' heb genoemd (hoewel we dit bestand in het volgende deel van de tutorial zullen maken). Met dit bestand kunnen we onze filterzoekopdracht uitvoeren en de inhoud van onze paginatabbladen wijzigen

Onze pagina instellen

  

Tijdens het maken van de html-versie van onze Facebook-app wil ik alles in een wikkel plaatsen die 760px breed is. Dit is alleen maar om te zorgen dat ik binnen 760px blijf; de breedte van het canvas waarop Facebook je app toestaat om in te zitten. Ik verwijder deze wrapper en de CSS ervoor voordat ik deze in Facebook plaats.

Zodra we onze include en 'wrapper' hebben opgezet, is het tijd om door te gaan naar de belangrijkste bouwstenen van onze app. In dit voorbeeld is het relatief eenvoudig omdat we alleen de hoofd- en zijbalk-div's hebben. Hierop zullen we klassen van dezelfde naam toepassen. U zou, als u wilt, 'id's' kunnen gebruiken in plaats van 'classes', omdat deze div-instanties niet zullen worden herhaald. Iets waar ik altijd voor opga (hoewel ik zeker weet dat sommigen het daar niet mee eens zijn) is om lessen op de meeste items te gebruiken. Ik gebruik zelden id's. Ik merk dat dit het simpelweg voor mij eenvoudig houdt. Ik moet me nooit afvragen of ik iets een 'id' of een 'klas' heb gegeven. Dit kan opmerkelijk handig zijn, vooral als je jQuery begint te integreren in je apps. Hoewel u wel moet overwegen of het haalbaar is voordat u begint met coderen, hoeft u absoluut nergens id's te gebruiken.

Het is ook raadzaam om altijd uw markup-blokken te eindigen met een slotcommentaar waarin staat welk deel van de markup is voltooid. Op deze manier weet je waar elke sectie eindigt. Ik moet toegeven dat ik vrij laat was in het adopteren van deze techniek en achteraf gezien had ik mezelf vele uren kunnen besparen van mijn weg door opeenvolgende stapels code, om erachter te komen waar bepaalde blokken beginnen en eindigen.


Stap 4: Hoofdinhoud

 
webdesigntuts + logo
  • Allemaal
  • Wat betreft
  • Schrijf voor ons
  • Andere blogs

Voor deze app vond ik het niet nodig om een ​​header te gebruiken om alleen het logo te plaatsen, dus ik heb dit bovenaan de 'hoofdverdieping' div geplaatst in zijn eigen div met een klasse genaamd 'logo'. Dit wordt gevolgd door een ongeordende lijst voor de tabbladen. Ik heb de tabs een klassenaam gegeven; ja je raadt het al 'tabs'. Deze zullen fungeren als onze tabbladmenubalk die de verschillende pagina's van onze blog-app zal weergeven.

De pagina's van onze blog-app zijn verpakt in een div-container, die ik een klasse 'tab_container' heb gegeven. Hierbinnen heb ik dan vier divs (één voor elke tab / pagina). Ik heb ze alle vier een klasse 'tab_content' gegeven met elk een eigen klasse voor zijn positie binnen de pagina. De eerste tab heeft een extra klasse van 'tab1', de tweede 'tab2', de derde 'tab3' enz. Deze individuele klassennamen zullen worden gebruikt om ons te helpen bij het identificeren van elk tabblad in het volgende deel van de tutorial wanneer we het jQuery implementeren.


Stap 5: individuele blogberichten

 

Ontwerpen voor en als een kleurenblinde persoon

door Connor Turnbull op 22 juli 2011 met 2 reacties

Kleurenblindheid is een lichte handicap waardoor de getroffene een verminderd vermogen ervaart om kleuren van anderen te onderscheiden. Dit kan een echt nadeel zijn voor iedereen in het ontwerpveld, omdat kleurentheorie een integraal onderdeel is van succesvol ontwerpen en veel beslissingen zijn gebaseerd op het gevoel en de emotie die is afgeleid van?

Lees verder 12 vind-ik-leuks 14 reacties delen

De individuele blogpost heeft een klasse met de naam 'post' en bevindt zich in de div met de klasse 'tab1', aangezien dit tabblad op de standaard bestemmingspagina staat. Dit bevat dan verschillende anker- en span-tags waarmee we items zoals de datum en blogauteur in het native blauw kunnen stijlen a la facebook. Zodra deze 'post' div is voltooid, kunnen we deze eenvoudig kopiëren en plakken voor de rest van de berichten. Ga niet overboord en verstop je code, houd hem op ongeveer drie of vier, want dit geeft ons een idee hoe het eruit zal zien en voelen. Ik heb ook een reeks gemaakt met de klasse 'lijn', wat eenvoudigweg een horizontale lijn is die we in de hele app zullen gebruiken.


Stap 6: Andere paginatabbladen

Onze andere paginatabs bestaan ​​voornamelijk uit h3-, anker- en alineatags:

 

Wat betreft

Webdesigntuts + is een blog gemaakt om enkele van de beste tutorials en artikelen over het webontwerp te presenteren. We publiceren tutorials die niet alleen geweldige resultaten en interfaces opleveren, maar ook de technieken erachter op een vriendelijke, laagdrempelige manier uitleggen.

Webdesign is een bloeiende branche met veel concurrentie. We hopen dat het lezen van Webdesigntuts + onze lezers helpt een paar trucs, technieken en tips te leren die ze misschien nog niet eerder hebben gezien en hen te helpen hun creatieve potentieel te maximaliseren!

Webdesigntuts + is onderdeel van het Tuts + Network


Stap 7: Het zoekfilter

 

Aan de bovenkant van de zijbalk hebben we onze filterfunctie voor sites - deze is samengesteld uit een eenvoudig formulier. We zullen dit in het volgende deel van de tutorial operationeel maken met behulp van jQuery. Het formulier wordt gevolgd door een andere horizontale lijn en een reeks en alinea-tekst om ons aantal 'likes' weer te geven.


Stap 8: Facebook Like en Button

 Website 
Uitloggen

Gelukkig voor ons heeft Facebook het supereenvoudig gemaakt om een ​​soortgelijke knop in onze app op te nemen. Je kunt de code voor je eigen like-knop of een van hun andere sociale plug-ins genereren via Facebook Developer Plugins. Zodra u de code heeft gegenereerd, brengt u deze in uw html. Misschien wil je wat CSS toevoegen om het te plaatsen, maar in dit geval is het niet nodig


Stap 9: Tabkoppen

 
Categorieën
  • Voorbeeld Cat 1
  • Monster Cat 2
  • Voorbeeld Cat 3
  • Voorbeeld Cat 4
  • Voorbeeld kat 5
Een beetje over ons

Als je het eerste deel van deze tutorial hebt gelezen (als je dit tot nu toe gedaan hebt, denk ik dat je het hebt) dan heb je me horen praten over herbruikbaarheid. Deze tabkoppen definiëren dat meer dan elk ander deel van onze code. Net als bij Facebook kunnen we deze tab-headers hergebruiken en met grote gemak implementeren. Ze komen echt van pas als je een snel extra gedeelte aan de site wilt toevoegen.


Stap 10: De CSS

 Codeblok met de koptekst van de tabbladen

Nu is het tijd om over te gaan naar de vormgeving van onze HTML. Vanwege de eenvoudige vormgeving van Facebook is er niet teveel CSS. Ik heb het in delen onderverdeeld waar je naar kunt kijken. Het is ook belangrijk om in dit stadium erop te wijzen dat Facebook vervelend kan zijn als het gaat om het testen en aanpassen van uw CSS terwijl deze in de cache wordt geplaatst, wat betekent dat wanneer u een nieuwe versie van uw stylesheet uploadt, dit nog steeds de oude versie is. Hoewel niet perfect; de oplossing die ik gebruikte was om '? version = 1' aan het einde van het inbegrepen stylesheet in het indexbestand toe te voegen. Elke keer dat u een update naar de CSS en upload uitvoert, moet u ook het versienummer bijwerken in het indexbestand.


Stap 11: Setup

We starten de CSS door de wrapper en een aantal klassen te maken die ik altijd toevoeg om items links of rechts te kunnen zweven.

 / * ------------------------------------------------ -----------------------------------*/ /* Opstelling /*-------- -------------------------------------------------- ------------------------- * / .wrapper width: 760px; Hoogte: 200px; margin-left: auto; margin-right: auto; padding-top: 20px;  .recht float: right; / * Een klasse die ik altijd toevoeg aan float-items right * / .Links float: left; / * Zwevende items links * /

Stap 12: Bouwstenen

De bouwstenen voor onze belangrijkste inhoud zijn als volgt:

 / * ------------------------------------------------ -----------------------------------*/ /* Opstelling /*-------- -------------------------------------------------- ------------------------- * / .wrapper width: 760px; Hoogte: 200px; margin-left: auto; margin-right: auto; padding-top: 20px;  .recht float: right; / * Een klasse die ik altijd toevoeg aan float-items right * / .Links float: left; / * Zwevende items links * / / * --------------------------------------- --------------------------------------------*/ /* Bouw blokken / * ------------------------------------------------ ----------------------------------- * / / * ----------- -------------------------------------------------- ---------------------- * / / * Typografie / * --------------------- -------------------------------------------------- ------------ * / / * ---------------------------------- ------------------------------------------------- * / / * Tabs / * -------------------------------------------- --------------------------------------- * / / * ------- -------------------------------------------------- --------------------------*/ /* Toetsen /*----------------- -------------------------------------------------- ---------------- * / / * ------------------------------ -------------------------------------------------- --- * / / * Extra componenten / * --------------------------------------- -------------------------------------------- * /

Stap 13: Typografie

Waarschijnlijk een van de belangrijkste CSS-onderdelen van onze Facebook-app. Krijg dit fout en het zal het native effect van uw app bederven. Kijk eens rond op Facebook en kies de meest geschikte lettergroottes voor uw vereisten.

 / * ------------------------------------------------ ----------------------------------- * / / * Typografie / * -------- -------------------------------------------------- ------------------------- * / a cursor: pointer; kleur: # 3B5998; tekstdecoratie: geen;  a: hover text-decoration: onderstrepen;  sterk font-weight: bold;  em font-style: italic;  h3 font-size: 16px; font-weight: bold; regelhoogte: 1.1em; margin-bottom: 5px;  .postInfo display: block; / * Spans zijn inline-elementen, dus moet worden gewijzigd om te blokkeren om de marge te laten werken * / color: # 808080; margin-top: 5px; margin-bottom: 10px;  p font-size: 12px; regelhoogte: 1.5em; margin-bottom: 18px;  .line display: block; Breedte: 100%; Hoogte: 1px; background-color: #ccc; margin-top: 5px; margin-bottom: 5px;  .meer color: # 3B5998; font-weight: bold;  .likesCount font-size: 16px; font-weight: bold; 

Stap 14: Tabbladen

 / * ------------------------------------------------ ----------------------------------- * / / * Tabs / * -------- -------------------------------------------------- ------------------------- * / ul.tabs margin: 0; opvulling: 0; zweven: links; lijststijl: geen; hoogte: 19px; / * - Hoogte van tabs instellen - * / border-bottom: 1px solid # E2E2E2; border-left: 1px solid # E2E2E2; breedte: 100%; margin-bottom: 20px;  ul.tabs li float: left; marge: 0; opvulling: 0; hoogte: 18px; / * - Minus 1 px vanaf de hoogte van ul - * / regelhoogte: 18 px; / * - lijnt tekst uit op het tabblad - * / border: 1px solid # E2E2E2; margin-bottom: -1px; / * - Trek het lijstitem naar beneden 1px - * / overflow: hidden; positie: relatief; achtergrond: # f2f2f2; margin-right: 5px; min-width: 73px; text-align: center;  ul.tabs li: first-child / * - Verwijdert de linkerrand van het eerste kind van de lijst - * / border-left: none;  ul.tabs li a text-decoration: none; kleur: # 333333; weergave: blok; font-size: 11px; padding-right: 5px; padding-left: 5px; overzicht: geen;  ul.tabs li a: hover background: #fff;  html ul.tabs li.active, html ul.tabs li.active a: hover / * - zorgt ervoor dat het actieve tabblad niet naar de hover-eigenschappen luistert - * / background: #fff; border-bottom: 1px solid #fff; color: # 3B5998;  ul.tabs li.active a color: # 3B5998; 

Stap 15: Knoppen

Een ander integraal onderdeel van de CSS voor Facebook-apps zijn de knoppen. Ik weet zeker dat je een paar hiervan in je apps wilt gebruiken. We hebben deze niet met een knop gemaakt, maar in plaats daarvan met een ankertag met een reeks in de afbeelding.

 / * ------------------------------------------------ -----------------------------------*/ /* Toetsen /*-------- -------------------------------------------------- ------------------------- * / .knop achtergrondkleur: # ECEEF5; rand: 1px vast # CAD4E7; text-decoration: none; -webkit-border-radius: 3px; -moz-border-radius: 3px; grensradius: 3px; opvulling: 2px 3px 2px 2px; margin-right: 5px;  .button: hover border: 1px solid # 9DACCE; text-decoration: none;  .buttonimage background: url (? /images/icon.png); kleur: # 3B5998; weergave: blok; width: 12px; hoogte: 12px; margin-right: 3px; margin-top: 1px; margin-bottom: 1px; margin-left: 2px; 

Stap 16: Extra componenten

 / * ------------------------------------------------ ----------------------------------- * / / * Extra componenten / * ------- -------------------------------------------------- -------------------------- * / .logo width: 379px; hoogte: 60px; margin-left: auto; margin-right: auto; margin-bottom: 26px; positie: relatief; -moz-box-shadow: 0 14px 10px -12px rgba (0,0,0,0.7); -webkit-box-shadow: 0 14px 10px -12px rgba (0,0,0,0.7); box-shadow: 0 14px 10px -12px rgba (0,0,0,0.7);  .search padding: 1px 5px 2px 0; margin-bottom: 20px; width: 240px; -webkit-box-sizing: border-box; / * Safari / Chrome, andere WebKit * / -moz-box-sizing: border-box; / * Firefox, andere Gecko * / box-sizing: border-box; / * Opera / IE 8+ * / .tabHeader achtergrondkleur: # F2F2F2; border-top: vast 1px # E2E2E2; opvulling: 4px 5px 5px; margin-top: 15px; margin-bottom: 10px;  .profileimage float: left; margin-right: 5px; 

Conclusie?

Dus daar hebben we het, we hebben nu onze Facebook-app gecodeerd in HTML / CSS. Ik hoop dat je het leuk vond om dit deel van de tutorial te lezen en dat je nu een goed begrip hebt van hoe de stijlen van Facebook in CSS kunnen worden vertaald. Door een paar CSS-eigenschappen van Facebook te bekijken en te gebruiken, kunnen we echt begrijpen hoe slechts een paar regels code op de juiste plaatsen onze app een native look en feel kunnen geven, die comfortabel op Facebook zullen zitten en voldoen aan de ontwerpprincipes van Facebook.

In het volgende deel van de tutorial leren we hoe we dit in Facebook kunnen implementeren als een native blog-app. We doen dit met behulp van YQL en de Facebook Graph API. Ik zal je ook een paar hints en tips laten zien om je app op smaak te brengen met wat zoete jQuery-goedheid. Dus tot het volgende deel, blije codeerpiepjes!


Verdere links en bronnen

  • Ontwerp en code Een geïntegreerde Facebook-app - Theorie
  • Eric Meyer's CSS-reset
  • Facebook sociale plug-ins
  • Onze Webdesigntuts + app op Facebook