Professional Documents
Culture Documents
Hét Névjegy Készítése
Hét Névjegy Készítése
Specifikáció
Adatok
Ellenőrzöm a válaszom
A profilfotó: https://i.imgur.com/EcO1qil.jpg
A háttérkép: https://i.imgur.com/9kh3G8L.jpg
Txt
Copy
3.1. A konténerek
Nyiss meg egy új bint a JSBinben.
https://codepen.io/SziRom/pen/bGLMqKw
A profilfotó: https://i.imgur.com/EcO1qil.jpg
https://codepen.io/SziRom/pen/zYRjPVz?editors=1010
3.3. Az ikonok
Még valami hiányzik a HTML-ből: az ikonok. Pontosabban a
tartózkodási helyet jelző ikon Budapest elé, valamint a kapcsolati
linkekhez tartozó ikonok.
<link
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/f
ont-awesome.min.css" rel="stylesheet">
HTML
Copy
Ha megnézed a Font Awesome ikonokat, az összes ikont
megtalálod, amelyre szükséged lesz.
https://fontawesome.com/sessions/sign-in
4.1. Találd meg a dobozokat
Mostanra (remélhetőleg) készen vagy a HTML-lel. A következő lépésben a helyükre rakjuk
az oldal különböző alkotórészeit.
Mielőtt bármi mást csinálnék, szoktam adni minden egyes konténer elemnek valamilyen
átlátszó háttérszínt. Így azonnal látom, hogy hol vannak a határaik, és azt is könnyen
észreveszem, ha valamiért egymásra csúsznak pozicionálás közben.
Feladat:
Adj átlátszó háttérszíneket a konténereknek, majd másold ide a
JSBin-linked, ha kész vagy.
A megoldásod:
https://codepen.io/SziRom/full/ExQporo
4.2. CSS reset
Hála a háttérszíneknek, rögtön láthatod, hogy az elemeink körül
alapértelmezett padding és margin található.
/* CSS reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-size: 100%;
}
CSS
Copy
A * jel az úgynevezett universal selector-t (általános szelektor) jelöli.
Az itt leírt szabályok minden elemre érvényesek lesznek az
oldalunkon. Ez a reset a következőket csinálja:
Ellenőrzöm a válaszom
Úgy bizony!
/* Pozicionálás */
.profile-card {
width: 480px;
max-width: calc(100vw - 10px);
}
CSS
Copy
A max-width tulajdonságnak nem egy fix értéket adtam meg, hanem
egy számítást (calculation). Egy vw a böngészőablak szélességének
1%-ával egyenlő, azaz 100vw a böngészőablak teljes szélességének
felel meg. A kalkuláció tehát 10 pixelt von le a böngészőablak
teljes szélességéből (a célom az, hogy mindkét oldalon 5-5px
széles tér maradjon, mivel középre fogom igazítani a tartalmat).
Kérlek, tartsd észben, hogy a kalkuláción belül szóközt kell
használnod a - (vagy +) műveleti jel előtt és után.
body {
display: flex;
justify-content: center;
align-items: center;
}
body {
height: 100vh;
}
Ellenőrzöm a válaszom
.head, .links {
text-align: center;
}
CSS
Copy
Ha megnézed újra a rajzot, maguk a .head és .content div elemek is
középre rendezettek, és nem foglalják el a rendelkezésre álló hely
100%-át:
Adjunk ezeknek 90%-os szélességet, és húzzuk középre
mindkettőt auto margin segítségével:
.head, .content {
width: 90%;
margin: 0 auto;
}
Ellenőrzöm a válaszom
4.6. A profilfotó
Ideje pozicionálni és megformázni a profilfotót.
img {
width: 120px;
height: 120px;
border-radius: 50%;
}
.profile-image {
margin-top: -60px;
}
Ellenőrzöm a válaszom
ul {
list-style-type: none;
}
li {
display: inline;
}
Ellenőrzöm a válaszom
.head, .about {
margin-bottom: 10%;
}
.content {
padding: 5% 10%;
}
Máris jobb:
Feladat:
Adj margin és padding értékeket a konténereknek. Másold ide a
JSBin-linked, ha kész vagy.
A megoldásod:
https://codepen.io/SziRom/pen/zYRLpXP
5.1 A háttérkép
Egész közel vagyunk, már csak pár simítás maradt CSS-sel.
Ideje hozzáadni a háttérképet az oldalhoz, megadni a pozícióját és
a méretét:
body {
background: url('http://i.imgur.com/9kh3G8L.jpg') no-
repeat center center fixed;
background-size: cover;
}
CSS
Copy
Az első background sor valójában a következő blokk rövidítése
(shorthand):
background-image: url('http://i.imgur.com/9kh3G8L.jpg');
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
.profile-card {
background-color: hsla(0, 0%, 100%, .5);
border-radius: 4px;
box-shadow: hsla(0, 0%, 0%, .8) 10px 10px 80px;
}
Van egy pár CSS-tulajdonság, amelyek speciális prefixeket
(előtagok) igényelnek ahhoz, hogy működjenek. A border-
radius nemrég még ilyen volt. Plusz tulajdonságokat kellett
megadnod, ha azt akartad, hogy minden böngészőben működjön
(pl. -webkit-border-radius vagy -moz-border-radius). Szerencsére ez
folyamatosan változik, előnyére. A shouldiprefix.com oldalon meg
tudod nézni, hogy mely tulajdonságok szorulnak még prefixekre.
Mire vonatkozik a 80px érték a box-shadow: hsla(0, 0%, 0%, .8) 10px 10px
80px; CSS-tulajdonságban?
Úgy bizony!
img {
padding: 1px;
background-color: #666;
}
Jó lenne, ha lenne egy vékony vonal a .head és a .content szekciók között is.
Hozzáadhatnánk egy vízszintes elválasztóvonalat is, de egy ilyen border-rel is megoldható a
feladat:
.content {
border-top: 1px solid hsla(0, 0%, 30%, .8);
}
Hogyan határoznál meg egy 5 pixel széles, folytonos, sárga alsó bordert?
border-bottom: 5px solid yellow;
bottom-border: 5px solid yellow;
border-bottom: 5px, solid, yellow;
bottom-border: 5px, solid, yellow;
Ellenőrzöm a válaszom
5.4. Interakció
Egy kevés interakció jól mutatna az oldalon. Adjunk hozzá egy kis változást, amikor az egér a
profilfotó fölött jár:
img:hover {
transform: scale(1.1);
}
Add hozzá a fenti kódot az oldaladhoz, és nézd meg, mi történik, ha a kép fölé mész a
kurzorral.
Nem rossz, de lehet ezt még finomítani. Add hozzá az alábbiakat a már
létező img szelektorhoz:
img {
...
filter: grayscale(50%);
}
img:hover {
...
filter: grayscale(20%);
}
További transform értékeket találsz ezen az oldalon, több filter-ért pedig kattints ide.