Construirea unei teme WordPress Mobile Responsive First

Tema clădirii este în centrul WordPress. Este tehnica pe care o utilizați pentru a construi site-uri personalizate pentru dvs. sau clienții dvs. și este o abilitate vitală pentru oricine dorește să proiecteze și să se dezvolte cu WordPress.

Din ce în ce mai multe teme WordPress sunt receptive - folosesc interogările media CSS pentru a se adapta la diferitele lățimi ale ecranului, ajustând aspectul și făcând schimbări de design și interfață pentru a face orice site creat folosind tema mai ușor de citit și interactiv pe o serie de dispozitive și dimensiunile ecranului.

În acest tutorial vă voi arăta cum să construiți o temă Mobile First WordPress, care începe cu stilul pentru cele mai mici ecrane și funcționează în sus.


Ce veți avea nevoie pentru acest tutorial

În acest tutorial am de gând să ia o temă WordPress cu stil minimal și apoi să-l stil pentru a face mobil primul. Designul final va fi foarte simplu - ideea este de a acoperi blocurile de conținut și de aspect și puteți adăuga propriile dvs. bunele de design ulterior, dacă doriți.

Pentru a urma pașii din acest tutorial, veți avea nevoie de următoarele:

  • Un editor de text sau de cod. Dacă nu aveți deja unul, atât TextWrangler cât și Kompozer sunt gratuite.
  • Dacă dezvoltați la nivel local, MAMP, WAMP sau XAMPP astfel încât să puteți rula PHP și MySQL și să lucrați la nivel local folosind WordPress.
  • Dacă dezvoltați de la distanță, un client FTP, cum ar fi FileZilla.
  • O instalare locală WordPress (sau una de la distanță pe care sunteți bucuros să o utilizați pentru testare)

Presupun că deja sunteți familiarizat cu instalarea și lucrul cu WordPress. Voi lucra la o instalare WordPress la distanță
și să furnizeze linkuri pe măsură ce mă duc.

Dacă nu aveți propria temă pe care lucrați, veți avea nevoie și de codul de pornire al tutorialului. Puteți vedea tema la http://rachelmccollin.co.uk/nettuts-wpresponsive-tutorial/ și puteți descărca codul temei în diferite etape ale dezvoltării sale de la xxx [care va fi adăugat pe baza sistemului nettuts + downloads].


Înainte de a începe: Ce este mobil primul?

Mobile First este un termen care a fost creat pentru prima dată de Luke Wroblewski. Se referă la
strategie de transformare a modului în care concepem site-uri și teme pe capul său. În loc să începem cu un design desktop și apoi să îl ajustăm pentru dispozitive mobile, lucrăm în direcția opusă - începem prin proiectarea și codarea dispozitivelor mobile și apoi adăugăm ceea ce este necesar pentru ecrane mai mari. Acest lucru are câteva avantaje:

  • Este mai rapid - conținutul sau stilul care nu este necesar pe ecrane mici nu le este trimisă. Acest lucru poate fi mai rapid decât ascunderea sau suprimarea lui.
  • Modifică modul în care planificăm conținutul - prin focalizarea pe ecrane mici, ne concentrăm asupra a ceea ce este cu adevărat important mai degrabă decât asupra a ceea ce suntem inclusiv pentru că avem spațiu. Proiectarea în acest mod poate avea un impact drastic asupra eventualului design desktop.

1. Tema noastră de pornire

Tema de pornire are un stil minimal aplicat pentru aceasta, și nici un stil de aspect, la toate încă - care vor fi adăugate pe măsură ce lucrăm prin tutorial.

Elementele care includ tema sunt prezentate mai jos:

În prezent, tema arată astfel pe un smartphone (adică, la dimensiunea ecranului de 320 x 480 pixeli):

Deoarece nu am aplicat încă vreo lățime, site-ul ar trebui redimensionat la ecrane mai mici - dar nu pentru că telefonul inteligent o afișează ca și cum ar fi lățimea de 960 pixeli. Primul lucru pe care trebuie să-l faceți este să spuneți telefoanelor inteligente să afișeze site-ul la lățimea reală a ecranului.


2. Setarea lățimii ecranului

Pentru a spune telefoanelor inteligente să se comporte frumos în ceea ce privește lățimea ecranului, adaug o linie în secțiune în header.php, după cum urmează:

 

Aceasta instruiește smartphone-urile să afișeze pagina la lățimea ecranului dispozitivului, în loc să creeze un port de vizualizare largă de 960 pixeli, care este comportamentul implicit.

Acum, tema arată astfel pe un mic ecran:

Dacă ați creat foi de stil mai receptive, dar nu Mobile First, acest lucru va fi un pic de revelație. Amintiți-vă tot ce stil suplimentar ați adăugat la interogările dvs. media pentru ecrane mici? Veți avea nevoie de foarte puține lucruri, deoarece o pagină cu aspect minim de aspect pare deja mai bună pe mobil decât pe desktop, după cum puteți vedea din această captură de ecran, realizată la o lățime de 1024 pixeli:

Dar încă mai trebuie să adaug un aspect de aspect pentru ecrane mici, care este următorul pas.


3. Stilul principalelor blocuri de aspect pentru ecranele mici

Voi începe prin adăugarea unor lățimi și plutitoare pentru elementele principale, pentru a vă asigura că se întind pe ecran. Adaug unele lățimi și a clar: ambele declarație privind elementele relevante:

 header, nav.main, .container, .content, .bar, footer lățime: 100%; clar: ambele; 

Apoi, pentru a evita design-ul înfățișat strâns pe ecranul mic, voi adăuga umplutura la unele elemente:

 antet, nav.main, .container, footer padding: 10px; 

Rețineți că acestea sunt singurele valori orizontale pe care le voi defini în pixeli și fac acest lucru pentru că nu vreau ca umplutura să devină prea mare pe măsură ce dimensiunea ecranului crește.

Acum, site-ul arată mai puțin aglomerat, iar elementele principale sunt afișate unul sub altul:

În continuare, voi ordona zonele widget și va îmbunătăți navigația.


4. Adăugați stilul suplimentar pentru ecranele mici

Navigarea trebuie să se întindă pe lățimea ecranului și aș dori să centrez fiecare element de meniu, așa că voi adăuga un stil pentru meniu:

 nav.main background: # 3394bf; overflow: auto; text-align: centru; 

Acest lucru îmi oferă un meniu mult mai inteligent:

Zonele widget-urilor sunt foarte apropiate și este dificil să vedem unde se termină și începe un altul. Voi adauga cateva margini si padding pentru a le adresa:

 .bara laterală. widget padding: 10px 0; frontieră: 1px solid # 3394bf; 

Apoi, miniaturile subsolului. O sa fac si ceva asemanator cu ei:

 footer .widget padding: 10px 0; frontieră: 1px solid #fff; 

Acest lucru adaugă o anumită separare între widget-urile mele:

Acum am un aspect simplu pentru tema mea pe ecrane mici, cu unele culori, margini, margini si padding pentru a ajuta lucrurile de-a lungul. Nu voi adăuga niciun stil suplimentar aici, deoarece ar putea încetini tema pe dispozitive mobile și nu cred că este întotdeauna necesar pe ecrane mici. Deci, următorul pas este să începeți să creați interogări media.


5. Adăugați unele interogări media

Pentru această temă voi viza trei dimensiuni suplimentare ale ecranului:

  • 600px wide and up, care va cuprinde tablete în portret sau peisaj, precum și ecrane desktop
  • 800px lățime și în sus, care vor include tablete în modul peisaj și desktop-uri
  • 1025 pixeli lățime și în sus, care va cuprinde toate ecranele de desktop, cu excepția celor mai mici. Mă duc în mod deliberat un pixel de peste 1024px, astfel încât tabletele mari să nu fie afectate de această interogare media.

S-ar putea să fi văzut că interogările mele media nu se bazează pe lățimea unui anumit dispozitiv. Acest lucru se datorează faptului că, deoarece gama de dispozitive și lățimea ecranului se extinde, direcționarea dispozitivelor specifice devine mai puțin fiabilă decât setarea interogărilor media în punctul în care aspectul beneficiază de acestea. Am testat aspectul prin redimensionarea ferestrei browserului meu și la lățimea de 600px arată astfel:

Din punctul meu de vedere, designul pare a fi greșit la această lățime și poate beneficia de unele modificări de aspect.

Deci, încep prin adăugarea interogărilor mele media la sfârșitul foii de stil:

 / * tablete - ecran portret * / @media și (min-width: 600px)  / * tablete - peisaj * / @media și ecran (min-width: 800px) min-width: 1025px) 

Rețineți că am folosit min lățime, nu lățimea maximă așa cum ați face dacă ați fi primul stil pe desktop și ați scris interogări media pentru ecrane mai mici.

Înainte voi trece la stilul pentru dispozitivele tablet.


6. Adăugați stilul pentru dispozitivele Tablet în modul Portret

Vreau să îmi îmbunătățesc aspectul pentru a utiliza mai bine spațiul de pe ecranul de pe aceste ecrane mai mari și, de asemenea, voi adăuga unele gradienți CSS pentru a face designul un pic mai lustruit.

În primul rând, aspectul. În interiorul interogării mele media pentru ecrane de 600 px și mai mari, adaug:

 / * aspectul - zonele widget-uri unul lângă altul * / footer overflow: auto; . bara laterală. Widget, subsol la o parte float: left; lățime: 49%; marginea-dreapta: 2%;  sidebar .widget: nth-child (egal), subsol deoparte: nth-child (even) margin-right: 0; 

Aceasta adaugă plutitoare și unele margini pentru a utiliza mai bine lățimea ecranului:

Acum voi schimba navigația, deoarece aspectul actual lasă o mulțime de spațiu gol lângă fiecare element și ocupă o mulțime de spațiu. Adăug următoarele stil pentru a crea o bară orizontală de navigare:

 / * navigare - elementele flotante unul lângă celălalt * / nav.main text-align: left; umplutură: 0 10px;  nav.main li float: left; marja: 0;  nav.main li a padding: 0 20px; 

De asemenea, voi adăuga un gradient la meniul pentru această dimensiune a ecranului și mai sus:

 nav.main, nav.main a background: # 183c5b; / * Browsere vechi * / background: -moz-linear-gradient (top, # 183c5b 0%, # 3394bf 100%); / * FF3.6 + / fundal: -webkit-gradient (liniar, stânga sus, jos stânga, stop color (0%, # 183c5b), stop color (100%, # 3394bf)); / * Chrome, Safari4 + * / fundal: -webkit-gradient linear (top, # 183c5b 0%, # 3394bf 100%); / * Chrome10 +, Safari5.1 + * / fundal: -o-gradient linear (top, # 183c5b 0%, # 3394bf 100%); / * Opera 11.10+ * / fundal: -ms-linear-gradient (top, # 183c5b 0%, # 3394bf 100%); / * IE10 + * / fundal: gradient liniar (top, # 183c5b 0%, # 3394bf 100%); / * W3C * /

În funcție de dispozitivele și browserele pe care le vizez, aș putea omite câteva dintre prefixele browserului, dar le-am lăsat înăuntru pentru alți utilizatori ai temei mele.

Deci, am acum un aspect îmbunătățit pentru tablete în orientare portret, așa cum se arată în captura de ecran:


7. Adăugați stilul pentru dispozitivele Tablet în modul Peisaj

Voi face doar o schimbare pentru ecrane de această lățime: voi muta bara laterală în dreapta conținutului, deoarece conținutul pare puțin întins dacă se întinde pe tot ecranul. Pentru a face acest lucru, adaug următoarele în direcționarea interogărilor media min lățime de 800 pixeli:

 .conținut lățime: 65%; plutește la stânga; . sidebar lățime: 33%; float: dreapta; clar: drept;  sidebar .widget lățime: 100%; float: nici unul;  sidebar .widget: primul copil border-top: nici unul; 

Acest lucru face câteva lucruri:

  • Mută ​​bara laterală la dreapta conținutului
  • Redimensionează bara laterală și conținutul și adaugă flotoare și a clar proprietate pentru aspect
  • Îndepărtează flotoare pe widgeturi, astfel încât acestea sunt acum într-o coloană
  • Îl îndepărtează border-top de la primul widget, care nu mai are nevoie de el

Tema arată acum pe o tabletă în modul peisaj:


8. Adăugați Styling Desktop

Dacă aș fi construit tema mea receptivă în mod tradițional, pe desktop în primul rând, aș lucra mai întâi la această dimensiune a ecranului, dar aici lucrez cu ea ultima. S-ar putea să fi observat până acum că acest lucru face lucrurile foarte eficiente - în experiența mea, înlăturarea stilului de desktop în interogările media care vizează mobilul durează mult mai mult decât ameliorarea aspectului meu mobil pentru desktop.

Voi ajusta aspectul footerului pentru a avea toate cele patru zone widget-uri de lângă unul lângă altul și adăugați o imagine de fundal în antet. Această imagine nu este crucială pentru conținut, dar există pentru decorare, așa că mă simt confortabil cu faptul că nu este în marca mea.

În primul rând, aspectul. Pe lângă ajustarea aspectului footerului, voi adăuga a lățimea maximă valoare pentru corp pentru a evita întinderea aspectului în întreaga lățime a ecranelor foarte largi:

 corp lățime: 95%; max-lățime: 960px; marja: 0 auto;  subsol deoparte float: left; lățime: 23,5%; marginea-dreapta: 2%;  subsol deoparte: nth-child (egal) margin-right: 2%;  footer deoparte.firma margin-right: 0; 

Stilul de mai sus merge în interogarea media pentru ecrane cu a min lățime de 1025 pixeli, și face următoarele:

  • adaugă lățimea maximă la corp
  • Reglează lățimea și marginea din dreapta pe deoparte elemente în subsol
  • Reglează marja pentru zonele widgeturi numerotate chiar la 2%, în conformitate cu celelalte zone widget
  • Utilizând clasa atribuită celei de-a patra zone widget din temă (.Al patrulea), reduce marja la 0. Am folosit în mod deliberat o clasă aici în loc de nth-copil pentru că am nevoie de acest lucru pentru a funcționa în browsere

Deci, cum arată tema mea pe desktop??

Nu-i rău. În cele din urmă, voi adăuga o imagine de fundal în antetul meu.

 header fundal: URL (imagini / banner-image.jpg) centru bottom no-repeat; padding-bottom: 210px; 

Acest lucru îmi adaugă imaginea ca pe un fundal cu unele elemente de umplutură pentru a permite spațiu pentru aceasta:

Avantajul utilizării acestei abordări este că această imagine va fi descărcată numai de mașini de birou. Deoarece nu este vorba de stilul de bază sau de interogările mass-media pentru dispozitivele mai mici, nu le va încetini. Există dezavantaje în ceea ce privește utilizarea imaginilor ca fundaluri, totuși, în special în ceea ce privește accesibilitatea - deci este important să folosiți această tehnică numai atunci când imaginea este doar pentru proiectare și nu face parte din conținut. Alternativ, aș fi putut adăuga o versiune mai mică a imaginii în marcajul meu și am folosi CSS pentru a ascunde acea imagine și pentru a afișa o versiune mai mare a aceleiași imagini ca un fundal pentru ecrane mai mari.


rezumat

Acum am o primă temă Mobile responsabilă. Prin a începe cu ecrane mici și de lucru meu de sus până am redus cantitatea de cod necesare pentru a crea designul meu receptiv și a fost capabil să se asigure că o imagine mare nu este trimis la dispozitivele mobile.

Pe măsură ce mai mulți dezvoltatori și proprietari de site-uri solicită ca site-urile lor să fie receptive, posibilitatea de a construi teme WordPress receptive va deveni o abilitate neprețuită. În acest tutorial am arătat că nu este nevoie să fie un proces oneros și nu ar trebui să dureze prea mult. Bineînțeles, puteți continua procesul și adăugați conținut specific pentru dispozitive mobile sau un stil suplimentar orientat către anumite dispozitive, dar asta e ceva pentru o altă zi!

Cod