Documente Academic
Documente Profesional
Documente Cultură
Va fi amuzant! :)
Ce vei construi?
Avem o prietenă blogger-iță care vrea un nou look pentru site-ul ei. Ne-a
•Ar trebui să fie un link „load more” (Încarcă mai multe) în josul
paginii.
•Site-ul ar trebui să fie complet responsiv și ar trebui să aibă un
layout optimizat pentru telefoane, tablete și desktopuri.
Câteva definiții
Înainte de a porni la treabă și a ne lupta cu balaurul designului responsiv,
programatori.
•unități relative,
•layouturi responsive,
•interogări media, și
•resurse responsive.
Gata? Dacă da, atunci haide să ne vedem în lecția următoare, unde vom
Dacă te uiți la ciorna noastră pentru dispozitive mobile, poți vedea că site-
•O secțiune antet și
<body>
<header></header>
<main></main>
</body>
Copy
Notă: Acestea două sunt tag-uri semantice. După cum știi deja, folosim
Terminarea antetului
două tag-uri a:
<body>
<header>
<h1>CodeBerry Light</h1>
<p>A Simple Blog Theme</p>
<a href="#">Like</a>
<a href="#">Follow</a>
</header>
<main></main>
</body>
Copy
acesta este o listă de postări și un link „Load more stories” (Încarcă mai
multe povești). Linkul este un tag ancoră simplu. Postările ar trebui să fie
<main>
<article>
<h2><a href="#">A Cool Article About Something
Edgy</a></h2>
<img src="" alt="">
<p>Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nullam sit amet metus at velit sodales blandit
eu nec nibh. Etiam ac facilisis dui. Quisque lorem sapien,
facilisis non purus eu, hendrerit feugiat neque. Nam malesuada
et lectus vel pellentesque.</p>
<a href="#">Read more</a>
</article>
<article>
<h2><a href="#">A Strong Opinion On a Thing That
Just Happened</a></h2>
<img src="" alt="">
<p>Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nullam sit amet metus at velit sodales blandit
eu nec nibh. Etiam ac facilisis dui. Quisque lorem sapien,
facilisis non purus eu, hendrerit feugiat neque. Nam malesuada
et lectus vel pellentesque.</p>
<a href="#">Read more</a>
</article>
<article>
<h2><a href="#">A Listicle For You and Your
Boyfriend</a></h2>
<img src="" alt="">
<p>Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nullam sit amet metus at velit sodales blandit
eu nec nibh. Etiam ac facilisis dui. Quisque lorem sapien,
facilisis non purus eu, hendrerit feugiat neque. Nam malesuada
et lectus vel pellentesque.</p>
<a href="#">Read more</a>
</article>
<a href="#">Load more stories...</a>
</main>
Copy
Notă: Remarcă faptul că am adăugat puțin text fictiv fiecărui element
populară este Lorem Ipsum, un text care dă impresia de text lizibil, dar
care nu înseamnă nimic, prin urmare nu-l distrage pe cel care-l vede.
Poți genera propriul tău Lorem Ipsum și să citești mai mult despre
originea lui pe acest site. Dacă vrei să treci la următorul nivel, poți
Sarcină
Construiește cadrul HTML al temei blogului în JSBin. Copiază linkul soluției tale aici:
Adăugarea resurselor
Cadrul HTML este aproape gata, trebuie doar să includem trei imagini,
Copy
problemă.
Sarcină
Include cele trei imagini în HTML și scrie un text corespunzător pentru acestea.
Copiază aici URL-ul JSBin odată ce ai terminat.
de CSS.
Dacă te uiți la panoul „Output” din JSBin, poți vedea o stilizare implicită
cum știi deja, trebuie să anulăm aceste stiluri pentru a avea un punct de
orice browser.
Pentru acest proiect, vom folosi resetarea CSS a lui Eric Meyer, care poate
fi găsită aici. Mai târziu, o poți căuta pe Google oricând, folosind sintagma
închiderea lor între bare înclinate și steluțe (/* Comentariul vine aici. */). Poți
folosi aceste comentarii pentru a-ți explica codul sau a-l organiza. În
fragmentul de cod de mai sus, poți vedea exemple pentru ambele cazuri.
codului – de ce oare?
mereu resetarea CSS în partea de sus, înainte de orice altă regulă. De ce?
există mai mult de o valoare declarată pentru aceeași proprietate, cea care
p {
color: red;
}
p {
color: green;
}
p {
color: blue;
}
Copy
Există trei valori ale culorii (roșu, verde și albastru) declarate pentru același
cum poți vedea, paragrafele devin albastre deoarece ultima declarație le-a
dacă resetarea ar veni după propriul tău CSS, ar înlocui setările tale,
Sarcină
Include resetarea CSS în proiectul tău. Copiază URL-ul JSBin aici, odată ce ai
terminat.
Soluția mea arată astfel (bineînțeles, poți alege alte culori sau nume
.main-header {
background-color: rgba(255, 248, 53, .3);
}
.primary-content {
background-color: rgba(140, 96, 255, .3);
}
.post {
background-color: rgba(255, 0, 0, .3);
}
Copy
Sarcină
•Cadrul HTML.
•Adăugarea imaginilor.
•Culorile utile.
Dacă nu ne-ai urmat din vreun motiv, acum ar fi un moment bun pentru a
tipografiei.
aici.
nostru!
Alege fonturile potrivite pentru
proiectul tău
Nu e ușor să te decizi ce fonturi să folosești. Dacă lucrezi cu un designer
sau cu un design deja setat, nici măcar nu va fi problema ta. Totuși, dacă
1.Alege un font care este lizibil. Dacă utilizatorul nu-l poate citi, nu
contează cât e de frumos.
2.Alege cel puțin două fonturi – unul pentru body și unul pentru
titluri.
Pe care dintre cele două fonturi l-ai ales pentru tema blogului tău? Copiază-le numele
în casetă.
tău. Browserul poate afișa doar fonturile care sunt disponibile local pe
mod implicit).
Există o mulțime de feluri de a face asta, însă vom discuta doar unul de
Deschide https://fonts.google.com/ și urmărește-ne:
Notă: Dacă ai ales fonturi diferite, doar adaugă-le în locul lui
•Dă clic pe bara neagră de jos. Aceasta va deschide cardul unde îți
poți personaliza fonturile și obține codul necesar pentru utilizarea lor
în proiectul tău. Continuă la fila „Customize” (Personalizare).
•Iată cum poți alege valoarea grosimii fontului și care seturi de limbi
vrei să incluzi. Bifează „light 300” sub Merriweather și debifează
valoarea „regular 400”. (Este o practică bună de a lega doar valorile
grosimii pe care le vei și folosi, pentru ca timpul de încărcare al
paginii tale să fie redus la minimum.)
<head>
[...]
<link href="https://fonts.googleapis.com/css?
family=Merriweather:300|Open+Sans" rel="stylesheet">
</head>
Copy
Codul de mai sus folosește tag-ul HTML link. Acest element poate lega
surse externe de proiectul tău. În acest caz, un set de stiluri care conține
fonturile pe care le-ai ales. Când pagina ta se încarcă, va solicita acest CSS
În acest fel, poți utiliza Merriweather și Open Sans, chiar dacă nu sunt
Sfat pro: Există un caracter pipe (tub) (|) în atributul href din interiorul tag-
+1 sfat: Din moment ce suntem deja aici, adaugă un titlu paginii tale între
tag-urile title.
Sarcină
rubrică:
body {
font-family: Merriweather, 'Times New Roman', serif;
}
h1,
h2 {
font-family: 'Open Sans', Arial, sans-serif;
}
Copy
Sans.
Dacă te uiți la fereastra „Output”, poți vedea că fonturile s-au schimbat cu
font sigur pentru web (precum Times New Roman și Arial) și un font
de font(font stack).
+1 sfat: Când scrii o stivă de font, separă familiile cu virgule (Arial, sans-serif)
Sarcină
Stabilește tipografia
Este momentul să lucrezi puțin pe cont propriu. Termină următoarele
dimensiunea la 18px.
Sarcină
următoarea lecție.
Ne vedem acolo! :)
Primul pilon
Bine ai venit la primul pilon al designului web responsiv: unitățile de
lungime relative.
tău.
Ești gata? Haide să trecem la treabă!
medii de navigare multiple (iar acest lucru îți poate face site-ul de
neutilizat).
lungime?
valoare al lungimii.
elementul-țintă {
proprietate: valoare;
}
Copy
Partea value (valoare) are o mulțime de tipuri posibile, unul
p {
font-size: 16px;
}
Copy
(precum em, rem, vw și vh). Unitățile relative sunt grozave pentru crearea
Em
Prima unitate de lungime relativă despre care vom discuta este em. O
este echivalent cu valoarea implicită din browser. (Care este adesea 16px.)
<body>
<h1>A Heading</h1>
<p>A paragraph.</p>
</body>
Copy
body {
font-size: 16px;
}
h1 {
font-size: 2em;
}
p {
font-size: 1em;
}
Copy
16px (1em).
acest cod:
<body>
<p>A paragraph with a <span>span in it.</span></p>
</body>
Copy
body {
font-size: 10px;
}
p {
font-size: 2em;
}
span {
font-size: 1.5em;
}
Copy
În acest exemplu, span este copilul lui p. Browserul se uită la acest cod și
lui p, care acum este 20px, deci aceasta face ca dimensiunea lui span să fie
1,5*20px = 30px.”
Sarcină
Dacă dimensiunea fontului elementului body este de 16 pixeli, care este valoarea în
pixeli a unei rubrici cu o dimensiune a fontului de 4em?
Rem
Unitatea rem a fost special introdusă în CSS pentru a rezolva problema
Aceasta previne combinarea, însă păstrează ce este mai bun din em:
început, din cauza efectului de combinare al em. Rem este cu mult mai
Sarcină
Există o formulă utilă, creată de către Ethan Marcotte, care face conversia
foarte ușoară:
target ÷ context = result
Copy
Unde:
în rem:
Copy
Și asta-i tot. Acum poți schimba valoarea veche în pixeli cu cea nouă în
rem. După cum poți vedea, nimic nu s-a schimbat la suprafață – textul din
body arată la fel. Totuși, acum poate fi ajustat pe baza dimensiunii fontului
+1 sfat: Într-o manieră asemănătoare, rem (și em) nu sunt bune doar la
layouturi.
Sarcină
Folosește formula și schimbă fiecare unitate px cu rem sub antetul Base Styles (Stiluri
de bază). Odată ce ai terminat, copiază URL-ul JSBin aici.
Procentele
Dacă ai rezolvat sarcina anterioară, ar trebui să ai un CSS asemănător cu
acesta:
h1,
h2 {
font-family: 'Open Sans', Arial, sans-serif;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.6rem;
color: #e5127d;
}
.main-header p {
font-size: 1.125rem;
letter-spacing: 0.125rem;
color: #8c8e9b;
}
Copy
Dacă ai făcut astfel, felicitări! Tipografia ta este complet responsivă,
scalabilă și accesibilă.
Însă imaginile de pe această pagină sunt încă statice. Remarcă felul în care
acestea ies afară din containerul lor în panoul „Output”. Acestea apar
pentru a declara lungimea în CSS, dar acestea în sine nu sunt valori ale
lungimii.
<div class="big-box">
<div class="little-box"></div>
</div>
Copy
.big-box {
width: 500px;
}
.little-box {
width: 50%;
}
Copy
.picture {
width: 100%;
}
Copy
Sarcină
Stabilește lățimea de 100% pentru imagini. După ce ai terminat, copiază URL-ul JSBin
în casetă.
ferestrei sunt relativ noi. Au fost introduse doar în CSS3. Deși suportul
browserelor pentru ele nu este complet, nu mai e mult până va fi, și sunt
1vw reprezintă 1/100 din lățimea zonei de vizualizare. Sau, cu alte cuvinte,
laterale etc.
întâmplă:
main {
width: 50vw;
}
Copy
Înălțimea ferestrei
frații ei.
header {
height: 25vh;
}
Copy
această resursă.
Sarcină
scalabilă și accesibilă.
Asta nu va fi ultima dată când vei auzi despre aceste unități. Ele vor reveni
foarte curând (de fapt, chiar în lecția următoare), când vei începe să
Ne vedem acolo! :)
+1 sfat: Deși am acoperit o mulțime de noțiuni, există o groază de alte
Al doilea pilon
Al doilea element al designului web responsiv este layoutul responsiv.
ști cum:
•să folosești unitățile relative de lungime pentru a dimensiona
elementele layoutului,
Până la sfârșit vei ști cum să transformi orice design static într-unul
blog.
Al doilea pilon
Al doilea element al designului web responsiv este layoutul responsiv.
ști cum:
Până la sfârșit vei ști cum să transformi orice design static într-unul
blog.
numește îmbunătățire progresivă.
progresive. Aceasta susține construirea unui site mai întâi pentru cele
simplificat).
La CodeBerry, suntem susținătorii înfocați ai abordării cu prioritate pentru
fel. Din acest motiv, mai întâi vom face layoutul mobil al temei blogului
am terminat.
Sarcină
Construirea blogului -
Dimensionarea box-sizing
După cum probabil știi din experiența ta anterioară, un prim pas sigur și
înțelept al fiecărui layout este să îți faci viața mai ușoară cu valoarea border-
box a proprietății box-sizing.
Acum, vom continua să construim tema blogului. Deschide bin-ul tău din
de bază:
* {
box-sizing: border-box;
}
Copy
Sarcină
Sarcină
block (block level, are lățimea de 100% în mod implicit). Dacă setăm
lățimea copiilor săi la 95% și îi centrăm, aceasta va crea puțin spațiu alb în
ambele părți.
Asta-i mai bine. Din moment ce suntem aici, haide să organizăm puțin
/* Article Styles */
.post {
width: 95%;
margin: 1.25rem auto;
padding: 0.3125rem;
}
.picture {
width: 100%;
}
Copy
spațiu alb între elemente sau, cu alte cuvinte, pagina nu are încă un ritm
vertical frumos.
declarăm toate marginile într-un singur loc, astfel încât să fie mai ușor de
Vom încerca acum un lucru care sună un pic prea tehnic, dar este ușor de
h1,h2,h3,h4,h5,h6,hgroup,
ul,ol,dd,
p,figure,
pre,table,fieldset,hr {
margin-bottom: 1rem;
}
Copy
fontului.
Codul de mai sus este setul de reguli original realizat de către Roberts. Nu
h1,h2,h3,h4,h5,h6,hgroup,
ul,ol,dd,
p,figure,
pre,table,fieldset,hr,
img,
.main-header, .primary-content {
margin-bottom: 1rem;
}
Copy
Este aproape gata. Trebuie doar să edităm proprietatea margin a
.post {
width: 95%;
margin: 0 auto 1rem;
padding: 0.3125rem;
}
Copy
Notă: Când furnizezi trei valori pentru margine (margin: 0 auto 1rem;),
ordine.
Notă: Desigur, aceasta este o tehnică posibilă printre zeci de altele. Poți
Construirea blogului -
Retușurile
În principiu, am terminat cu layoutul mobil, ne mai rămân doar trei mici
ajustări:
more stories...” (Încarcă mai multe povești...) în partea de jos. Acum îți vom
.button {
display: inline-block;
border: 1px solid #8c8e9b;
color: #8c8e9b;
border-radius: 10px;
padding-right: 5px;
padding-left: 5px;
margin: 5px;
width: 100px;
font-family: 'Open Sans', sans-serif;
}
.button:hover {
border: 1px solid #b60e63;
}
.load {
display: block;
text-align: center;
padding: 0.625rem;
font-size: 1.25rem;
color: #8c8e9b;
}
Copy
butoane și cel din partea de jos este stilizat și centrat acum. Bine lucrat.
astfel:
a {
color: #e5127d;
text-decoration: none;
}
a:hover {
color: #b60e63;
}
Copy
pentru îndrumare:
/*
.main-header {
background-color: rgba(255, 248, 53, .3);
}
.primary-content {
background-color: rgba(140, 96, 255, .3);
}
.post {
background-color: rgba(255, 0, 0, .3);
}
*/
Copy
totalitate.
Sarcină
Construirea blogului -
Retușurile
În principiu, am terminat cu layoutul mobil, ne mai rămân doar trei mici
ajustări:
more stories...” (Încarcă mai multe povești...) în partea de jos. Acum îți vom
.button {
display: inline-block;
border: 1px solid #8c8e9b;
color: #8c8e9b;
border-radius: 10px;
padding-right: 5px;
padding-left: 5px;
margin: 5px;
width: 100px;
font-family: 'Open Sans', sans-serif;
}
.button:hover {
border: 1px solid #b60e63;
}
.load {
display: block;
text-align: center;
padding: 0.625rem;
font-size: 1.25rem;
color: #8c8e9b;
}
Copy
butoane și cel din partea de jos este stilizat și centrat acum. Bine lucrat.
Corectarea unor probleme tipografice
astfel:
a {
color: #e5127d;
text-decoration: none;
}
a:hover {
color: #b60e63;
}
Copy
pentru îndrumare:
/*
.main-header {
background-color: rgba(255, 248, 53, .3);
}
.primary-content {
background-color: rgba(140, 96, 255, .3);
}
.post {
background-color: rgba(255, 0, 0, .3);
}
*/
Copy
totalitate.
Sarcină
Al treilea pilon
În această lecție vom învăța despre al treilea pilon al designului web
responsiv: interogările media.
}
Copy
dacă condiția sa este adevărată sau falsă. Dacă este adevărată, browserul
rezoluții sau orientări. Din cauza naturii „în cascadă” a CSS-ului, dacă pui
Poate îți amintești de această pagină din lecția precedentă. Ultima dată
blocurile.
Aceasta asigură că se păstrează o lățime confortabilă pentru blocuri. Iată
/* Base Styles */
aside,
section {
margin-right: 1.096%;
}
.container {
width: 95vw;
height: 50.13vh;
padding: 1.096%;
}
aside {
width: 33.3%;
height: 100%;
float: left;
}
section {
width: 33.3%;
height: 100%;
float: left;
}
aside,
section {
height: 48%;
margin-bottom: 1.096%;
}
/* Layout Styles */
aside,
section {
float: none;
width: auto;
}
}
Copy
coloană.
Sarcină
Scrierea corespunzătoare a
interogărilor media
În această sarcină vom modifica antetul nostru, pentru a apărea în partea
Unde:
logici precum and, or și not.
funcțiilor pe w3schools.com.
}
Copy
lățime de cel puțin 768px. Mai întâi, vom construi aceasta, apoi vom
se numesc breakpoints (puncte de întrerupere).
Notă: 768px pare un număr ciudat. Cele mai întâlnite puncte de
Dorim ca antetul să fie afișat în partea stângă, să ocupe o treime din ecran
și să stea pe loc când derulăm în jos pe pagină. Iată codul care face toate
acestea posibile:
.main-header {
position: fixed;
top: 0;
height: 100%;
width: 33.3%;
}
}
Copy
Dacă redimensionezi acum zona „Output”, poți vedea că layoutul tău este
dezordonat. Nu-ți face griji, deoarece suntem pe drumul cel bun și vom
tabletă pentru a-ți previzualiza site-ul, poți urmări aceste schimbări mai
ușor.
Sarcină
Copiază noua interogare media în propriul tău bin, apoi copiază URL-ul JSBin în
casetă.
Alinierea conținutului
Problema noastră este că am poziționat antetul ca fixat și secțiunea
întrerupere.
.primary-content {
float: right;
width: 66.6%;
max-width: 812px;
}
}
Copy
acum cele două blocuri par să fie așezate frumos unul lângă celălalt. Am
Dacă apeși refresh acum în output, poți vedea că și conținutul principal și-
mai puține linii, dar ar fi făcut și codul mai puțin lizibil. Când lucrezi la
împrăștiate.
Sarcină
Copiază noua interogare media în propriul tău bin, apoi copiază URL-ul JSBin în
casetă.
Trecerea la desktop
Dacă deschizi o previzualizare live a site-ului tău acum, poți vedea că
pare prea lat și, deoarece conținutul este flotant la dreapta, există un
.main-header {
width: 20.625%;
}
}
Copy
Acest bloc de cod creează un nou punct de întrerupere (acest stil se aplică
.primary-content {
float: none;
position: absolute;
left: 20.625%;
}
}
Copy
terminat. Felicitări!
Sarcină
Termină layoutul desktop al blogului tău. Copiază URL-ul JSBin în casetă odată ce ai
terminat.
viewport.
funcționeze corespunzător:
<head>
<meta name="viewport" content="width=device-width,
initial-scale=1">
</head>
Copy
Notă: initial-scale=1 nu este adăugat de JSBin în mod automat.
Asta-i tot, iar acum știi totul despre noțiunile de bază ale interogărilor
media. :)
Al patrulea pilon
Știi deja cum să faci elementele textului și ale layoutului complet
responsive).
Știi deja cum să faci imaginile web responsive prin setarea lățimii în
soluție.
Închide iframe într-un wrapper figure:
<figure>
<iframe width="560" height="315"
src="https://www.youtube.com/embed/4Lsa7N7LHJk?
rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>
</figure>
Copy
figure {
height: 0;
padding-bottom: 56.25%; /* 16:9 aspect ratio */
position: relative;
}
figure iframe {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
Copy
Încearcă să redimensionezi acum panoul „Output”. Tare, nu-i așa? În
relație cu figura.
Sarcină
imagini flexibile.
viitor, dar, pentru moment, ce am făcut este mai mult decât suficient.
și fii mândru).