Professional Documents
Culture Documents
HTML5-CSS3 Eskuliburua
HTML5-CSS3 Eskuliburua
HTML5-CSS3 Eskuliburua
SARRERA
Eskuliburu honen helburua web-orriak nola sortu irakastea da; Lanbide Heziketako goi-
mailako Web-interfazeen Diseinua moduluko ikasleentzat dago prestatuta, hain zuzen.
Hala ere, nahiz eta ikasleentzat bideratuta egon, edonork erabil dezake eskuliburu hau;
bertan, pausoz pauso azalduko dugu nola sortu behar den HTML5en estruktura eta
nola diseinatu eta maketatu behar dugun web-orria CSS3a erabilita.
Nahiz eta web-orriak nola sortzen diren azaltzeko liburu eta web-orri asko egon,
gehienak erdaraz daude. Hortik dator HTML5eko eta CSS3ko eskuliburu bat euskaraz
egiteko premia. Horretaz gain, ahalik eta euskara ulergarrienean idaztea erabaki dugu.
Lanak atal bi ditu: bata azalpen idatzizkoa da, eta bestea, azalpenaren gainean
eraikitako adibideak. Adibideak Mozilla Firefoxen irekitzea komeni da. Editatu nahi
izanez gero, HTMLko edozein editore erabil daiteke.
https://adegiusti.files.wordpress.com/2013/09/el-gran-libro-de-html5-css3-y-
javascript.pdf
http://www.w3schools.com/
https://developer.mozilla.org/es/docs/HTML/HTML5
https://developer.mozilla.org/es/docs/Web/CSS
http://www.destacaimagen.com/diseno-y-maquetacion-web-smartphones-y-tablets/
1.1. DEFINIZIOA
HTML5 (HyperText Markup Language, 5. bertsioa) web-orriak diseinatzeko erabiltzen
den lengoaia da. Lengoaiarik arruntena denez, web-orri gehienak hizkuntza horretan
daude idatzita; hau da, nabigatzaileek bistaratzen dizkiguten web-orrien informazioa
HTML lengoaian dago idatzita. HTMLren bidez, web-orriak egituratzen dira, eta, haren
etiketa semantikoen bidez, nabigatzaileak zer bistaratu behar duen.
Beste programa askotan zer edo zer txarto kodifikatuta badago, eten egiten da
bistaratzea, eta ez du aurrera jarraitzen; HTML lengoaian, ordea, txarto kodifikatuta
dagoena ez da nabigatzaileetan bistaratuko, baina nabigatzaileek jarraituko dute ondo
dagoen kodea bistaratzen.
1.2. OINARRIAK
Lengoaia honek lehengo HTML bertsioa du oraindik oinarri, eta hobekuntzak gehitu
zaizkio denboran zehar. Aldakuntza horiei esker, web-orrien diseinatzaileek errazago
egiten dute lan, azken bertsio honen estruktura garbiagoa eta antolatuagoa delako.
Bertsio hau Open Web 1 garatzaile guztiek erabiltzeko dago diseinatuta. Orri horretan
sartuz gero, irakurriko dugu zer baliabide erabiltzen diren HTML5en. Hona hemen zer
taldetan sailkatzen diren:
1
Open Web mugimendu bat da, WWW era estandarrean, publikoan eta kooperatiboan erabiltzea aldarrikatzen
duena: kontra egiten die erabilera pribatu, esklusibo eta jabedunei.
1.3. ESTRUKTURA
HTML5 dokumentu guztiek egitura antolatua dute, eta atal bakoitza etiketa baten
bidez nabarmentzen da. Orokorrean, etiketa guztiak edo gehienak bikoteka doaz;
alegia, pare bakoitza irekiera-itxiera etiketekin dago osatuta; gainera, etiketa-pare
batzuek bere barruan elementu edo atributuak izango dituzte. Adibidez, etiketak dira
<head> eta <html lang=”es”>; lehenengoa etiketa arrunta da; bigarrenak,
ordea, etiketa arrunta izateaz gain, atributu bat du barruan.
1.3.1. ETIKETAK
HTMLn dokumentu guztiak testu lauan daude idatzita, eta edozein HTML
prozesadoretan idatz daitezke, betiere testu lauan gordetzeko aukera badute.
Web-orrien diseinatzaileek nahiago dituzte testu-prozesadore bereziak
(Sublime Text, Aptana, Notepad…) HTMLko sintaxia nabarmentzen dutelako.
Nabigatzaile batek web-orri bat interpretatzeko, atal guztiek etiketekin
identifikatuta egon behar dute web-orriaren iturri-kodean. Horrela ez balitz,
nabigatzaileak ez luke ulertuko kode-lerro hori, eta bistaratuko lukeen web-
orria akatsez josita egongo litzateke.
Nahiz eta etiketa horiek letra larriz edo xehez idatzita egon, nabigatzaileak
berdin-berdin interpretatzen ditu, baina W3C3-k etiketa horiek letra xehez
idaztea aholkatzen du.
Etiketa guztiek honako sinbolo hauen artean egon behar dute:
< eta > irekiera-etiketa denean
2
Cascading style sheets (kaskada motako estilo-orriak): HTML edo XML familiako dokumentuak nola
agertuko diren zehazteko erabiltzen den estandarra, World Wide Web Consortium (W3C) erakundeak
finkatua. CCS bidez, dokumentuko elementuen formatua, letra-tipoa, -tamaina eta -kolorea, lerroartea
eta abar zehazten da. CSS estilo-orria aparteko dokumentu bat da (baina dokumentuan bertan ere
txertaturik joan daiteke).
3
HTML estandarrak zaintzen dituen munduko elkartea.
Esteban Garitagoitia Elgoibar | HTML5 – CSS3 Eskuliburua 6
</ eta > itxiera-etiketa denean
Adibidez:
<h2> irekiera-etiketa
…
…
</h2> itxiera-etiketa
1.3.2. ATRIBUTUAK
HTMLko elementuek4 hainbat atributu izan ditzakete, eta, horiei esker,
diseinatzaileak elementu horien portaera konfiguratu dezake. Atributu guztiek
bi zatitan daude banatuta: atributu-izena (name) eta atributu-balioa (value).
Adibidez: <form> elementuak adierazi nahi du eskaera-inprimaki bat sortuko
dugula; baina, elementu horri autocomplete atributua eta ”off” balioa
jarriko bagenizkio (<form autocomplete=”off”>), adieraziko genioke
inprimaki-eremu horretako datua eskuz sartu beharko genukeela.
Atributu bati balioa ezar dakioke –ez baita derrigorrekoa jartzea–, baina
ezartzea aholkatzen da. Honako adibide hauek esanahi berbera dute:
<input type=”text” name=”izena” required=”required”>
<input type=”text” name=”izena” required=””>
<input type=”text” name=”izena” required>
4
Zer desberdintasun dago etiketa eta elementu baten artean? Oso erraza da bereiztea bi
kontzeptu horiek: etiketek irekiera- eta itxiera-etiketak dituzte, eta, elementuek, ordea,
bakarrik irekiera-etiketa dute, eta ez dira ixten.
1.4.1. <!DOCTYPE>
Lehenik eta behin, <!DOCTYPE> elementua idatzi behar dugu edozein
nabigatzailek uler dezan zer eratako dokumentua den. Horrela, elementu honi
jarraitzen dioten kode-lerroak interpretatzeko orduan, nabigatzaileek jakingo
dute HTMLko dokumentu bat dela, eta ez dute arazorik izango.
<!DOCTYPE html>
1.4.2. <html>
Etiketa honek nabigatzaileei adierazten die kodea interpretatzen hasi behar
dutela; etiketa hau edozein HTML dokumenturen ardatza da. Horretaz gain,
lang atributuaren bitartez, nabigatzaileari esango diogu erabiltzen duen
kodea zer hizkuntzatan interpretatu behar duen. Ematen den adibidean,
hizkuntza gaztelania da, eta jakingo du <ñ> gaztelaniako karaktere bat dela.
<html lang="es">
1.4.3. <head>
Esan dezakegu HTML lengoaian bi etiketa garrantzitsu daudela, eta hauxe da
horietariko bat. Barruan, guk sortuko dugun dokumentuaren informazioa
eramango du:
dokumentuaren titulua
<head>
<title>Nire lehen HTML dokumentua</title>
</head>
1.4.3.1. <title>
Nabigatzaile guztietan zer titulu aterako den ezarriko dugu honen bitartez.
Etiketa bat denez, irekiera- eta itxiera-etiketen artean egongo da idatzita
titulua.
1.4.3.2. <meta>
Hau elementu bat da, ez baitu itxiera-etiketarik. Lehenik eta behin,
dokumentu batean zer karaktere mota erabiliko den adierazi behar da, eta
horretarako erabiltzen da elementu hau.
Bilatzaileetan web-orri bat aurkitu nahi dugunean, egilearen izena, gai bat…
idazten dugu; bilatzaileek guk idatzitako hori web-orriarekin erlazionatu
behar dute; informazio hori web-orriak berak eman behar du, eta
informazio hori etiketa honen bitartez adierazten da.
titulua
<body>
<article>
KAIXO MUNDUA!
</article>
</body>
Etiketa hau HTML5 bertsioan sortu zen, ikusten zelako gaur egungo web-
orriek gero eta eduki gehiago zutela. Horregatik, beharrezkotzat jotzen zen
etiketak identifikatzea bakoitzari esanahi argia emanda (header ingelesezko
berba bat da, eta euskaraz “goiburu” esan nahi du). Beraz, irakurri eta
berehala dakigu etiketa horrek zer izango duen barruan. Horrek ez du esan
nahi goiburuan joango den informazioa ezin dela beste etiketa-izen batekin
jarri, baina jardunbide egokia da etiketa hori eta antzekoak erabiltzea.
<hgroup>
<h1>BLOG-DISEINUA</h1>
<h3>HTML5 - CSS3 Eskuliburua</h3>
</hgroup>
<img src="img/irale.jpg"/>
</header>
1.5.2. <nav>
Aurreko etiketaren moduan, hau ere 5. bertsioan sortu zen, eta nabigatze-
barrari dagokio. Etiketa hau ikusiz batera, badakigu haren barruan datorrena
loturak direla. Loturek beste HTML dokumentu batzuetara edo dokumentu
bereko beste atal batera eramango gaituzte, betiere saguarekin klik eginez
gero.
Zerrenda bat <ul> eta <li> etiketen barruan idatzi behar dugu. <ul>
etiketak zerrenda ez-ordenatu bat datorrela adierazten du, eta <li>
etiketak zerrenda horretako item bat dela.
<nav>
<ul>
<li><a href="#">hasiera</a></li>
<li><a href="#">argazkiak</a></li>
<li><a href="#">harremanetan jarri</a></li>
</ul>
</nav>
1.5.3. <section>
Atal batean, guk nahi ditugun beste artikulu egon daitezke, betiere kontuan
hartuta horiek <article> etiketaren barruan ipiniko ditugula.
Esteban Garitagoitia Elgoibar | HTML5 – CSS3 Eskuliburua 15
Diseinatzaileek era askotan diseina ditzakete: web-orrien atalak edo atalak
zutabe bakar batean, bitan…
1.5.4. <article>
Atal honetan, beste atal batzuetan gertatzen den modura, etiketa gehiago
egon daitezke; baina, <article>-ren barruan, sarritan ikusiko dugu
idatzita <header> etiketa, besteak beste, artikuluari titulua emateko.
<section>
<article>
<header>
<h1>Lehen Artikulua</h1>
</header>
<p>Hemen idatziko dugu gure lehen
artikulua. Irudi bat ere sartu
dezakegu.</p>
<img src="img/irale.jpg"/>
<hr/>
<header>
<h1>Bigarren Artikulua</h1>
</header>
<p>Hau guk idatziko dugun bigarren
artikulua</p>
</article>
</section>
1.5.5. <aside>
Atal hau, normalean, informazio nagusiaren alboan ipintzen da; nahiz eta
gehienetan zutabe bakar batean egon, bitan ere ikusten dugu sarritan.
Zutabe hori edo horiek irakurlearen ezkerraldean edo eskuinaldean egon
daitezke, edo alde bietan, nahiz eta ohikoena ezkerraldean ikustea den.
<aside>
</aside>
1.5.6. <footer>
Azkeneko atal hau ere HTML5 bertsioan sortu zen, egilearen datuak,
jabearen eskubideak… idazteko asmoarekin. Baina, gaur egun, diseinatzaile
askok atal honetan ipintzen dituzte nabigatze-barra, inprimakiak….
<footer>
<H4>Egileak: Esteban</H4>
<h4>Edonork erabilgarri</h4>
</footer>
1
2
5
Esteban Garitagoitia Elgoibar | HTML5 – CSS3 Eskuliburua 17
1.6. GORPUTZAREN EDUKIA
Etiketa semantikoak <body> atalaren barruan egoten dira, eta etiketa semantikoen
barruan beste etiketa batzuek egon behar dute; etiketa horien bitartez, gure web-orria
nolakoa izango den kodifikatuko dugu; hau da, guk nola nahi dugun nabigatzaileetan
ikustea. Adibidez, zerrenda bat egiteko orduan, zerrenda egiteko etiketak erabiliko
ditugu; nabigatzailean aterako den testuaren tamaina aldatzeko, hartarako etiketa
propioa erabiliko dugu…
Izenburuak:
Etiketa Zertarako?
<body>
<hgroup>
<h1>TITULU NAGUSIA</h1>
<h2>Bigarren titulua</h2>
</hgroup
<p>hau lehen paragrafoa da.</p>
<hr/>
<p>hau bigarren paragrafoa da.</p>
</body>
Etiketa Zertarako?
<body>
<p>Hau lehen paragrafoa da.
Paragrafoak jarraitu egiten du.
</p>
<br/>
<pre>Hau bigarren paragrafoa da.
Paragrafoa aurredefinituta
dagoen bezala bistaratuko da.</pre>
<p>
</body>
Estiloak:
Etiketa Zertarako?
background-color:
<style>
color:
font-family:
font-size:
text-align:
Adibidez:
<p style=”text-align:center; color:red”>kaixo</p>
Etiketa Zertarako?
<body>
<strong>testu hau garrantzitsua da eta testu lodiz
agertzen da</strong>
<br/>
<em>testu hau nabarmenduta agertuko da</em>
<br/>
<small>testu hau komentarioetan erabiliko
dugu</small>
<br/>
<mark>testu hau argigunearekin agertuko da</mark>
<br/>
<del>testu hau lerro batekin ezabatua bistaratuko
da</del>
<br/>
<ins>testu hau azpimarratuta aterako da</ins>
<br/>
<p>testuaren<sub>azpialdean</sub>aterako da </p>
<p>testuaren<sup>goialdean</sup>aterako da </p>
</body>
Etiketa Zertarako?
<abbr> Laburdura edo akronimo bat definitzeko erabiltzen da.
Dokumentua edo artikulua idatzi duen jabearen kontaktua
<address>
argitaratzeko erabiltzen da.
<cite> Argazki, liburu… baten titulua jartzeko erabiltzen da.
<bdo> Testua eskuinetik ezkerrera bistaratuko du nabigatzaileak.
Dokumentu bat beste iturri batetik hartu dela adierazteko
<blockquote>
erabiltzen da.
Testu-aipu bat bistaratzeko erabiltzen da: komatxo artean
<q>
ipiniko du.
<body>
<p>The <abbr "World Health
Organization">WHO</abbr> 1948an jaio zen</p>
<address>
Autorearen datuak:<br/>
Esteban<br/>
Dolaretxe<br/>
Bilbo
</address>
<cite>Gernika</cite> Picassok margotu zuen<br/>
<p><bdo dir="rtl">testu hau ezkerretik eskuinera
irakurriko da</bdo></p>
<blockquote>testu honekin aipamen bat egiten
dugu</blockquote>
<q>testu hau komatxo artean aterako da</q><br/>
</body>
Ordenagailu-kodeak:
Etiketa Zertarako?
<code> Definitutako testua programazio-kode gisa bistaratzen du.
<kbd> Definitutako testua teklatuaren formatura aldatuko du.
<samp> Definitutako testua ordenagailu-testuen formatura ekarriko du.
Matematikako aldagai bat definitzeko erabiltzen da, eta testua era
<var>
berezian ipiniko du.
<body>
<code>testu hau ordenagailu-kode gisa bistaratzen
du</code><br/>
<kbd>teklatuko testu-sarrera bat gisa bistaratzen
du</kbd><br/>
<samp>testu honek ordenagailuaren agindua
irudikatzen du</samp><br/>
<var>Aldagaiak definitzeko erabiltzen da<var><br/>
</body>
Etiketa Zertarako?
Hiperesteka edo lotura bat definitzen du, beste baliabide
<a>
batzuetara heltzeko.
Irudi bati dagozkion elementuak (irudia bera, irudiaren titulua…)
<figure>
multzokatzeko erabiltzen da.
Web-orriari irudi bat gehitu nahi diogula adierazteko erabiltzen
<img>
da.
<figcaption> <figure> barruan txertatu dugun irudi-oina definitzen du.
<div> Esanahi gabeko edukiontzi bat bistaratzen du.
<body>
<a href="http://www.irale.hezkuntza.net/web/guest">
Irale</a>
<nav>
<ul>
<li><a href="#">hasiera</a></li>
<li><a href="#">kurtsoak</a></li>
<li><a href="#">kontaktua</a></li>
</ul>
</nav>
<img src="img/irale.jpg" width="120"
height="100"/>
<figure>
<img src="img/irale.jpg" width="220"
height="150"/>
<figcaption>1.irudia: Iraleko logoa</figcaption>
</figure
</body>
Etiketa Zertarako?
<thead>
Etiketa hauek taula bateko goiburuari, gorputzari eta taula-oinari
<tbody>
baldintzak ezartzeko erabiliko ditugu.
<tfoot>
<body>
<a href="http://www.irale.hezkuntza.net/web/guest">
Irale</a>
<nav>
<ul>
<li><a href="#">hasiera</a></li>
<li><a href="#">ikastaroak</a></li>
<li><a href="#">kontaktua</a></li>
</ul>
</nav>
<img src="img/irale.jpg" width="120"
height="100"/>
<figure>
<img src="img/irale.jpg" width="220"
height="150"/>
<figcaption>1.irudia: Iraleren logoa</figcaption>
</figure
</body>
Etiketa Zertarako?
<body>
<ul>
<li>bat</li>
<li>bi</li>
</ul>
<ol>
<li>bat</li>
<li>bi</li>
</ol>
<dl>
<dt>kafea</dt>
<dd>edari beltza</dd>
<dt>esnea</dt>
<dd>edari zuria</dd>
</dl>
</body>
Formularioak:
Esan dezakegu inprimakia dela edozein web-orrik izan behar duen atalik
garrantzitsuena, inprimaki horren bidez jarriko garelako webgune horretako
enpresarekin harremanetan.
<button> Etiketa honi esker, klik egiteko botoi bat bistaratuko da.
<body>
<form method="post" action="">
<select>
<option value="antzerkia">antzerkia</option>
<option value="zinea">zinea</option>
<option value="telebista">telebista</option>
</select>
</form>
</body>
<body>
<form method="post" action=""
<input type="radio" name="sexua" value="male"
checked> Gizonezkoa
<br>
<input type="radio" name="sexua" value="female">
Emakumezkoa
</form>
</body>
<body>
<form method="post" action="">
<input type="checkbox" name="garraioa"
value="Motorra">motorra<br/>
<input type="checkbox" name="garraioa"
value="Autoa">autoa<br/>
<input type="checkbox" name="garraioa"
value="Bizikleta">bizikleta<br/>
</form>
</body>
Balioak Zertarako?
checkbox Aukera bi ematen dizkigu, eta bietariko bat aukeratzen uzten digu.
Artxibo bat inprimaki baten bidez bidaltzeko erabiltzen da; etiketa
file honen bitartez aukeratuko dugu zer karpetatan dagoen artxibo
hori.
image Inprimakia bidaltzeko botoi pertsonalizatua da.
tel Telefono bat den ez du ziurtatuko, baina telefono bat espero du.
Atributuak Zertarako?
Gelaxkan daturen bat sartu nahi dugunean eta datu hori
autocomplete gelaxka horretan aldez aurretik sartuta baldin badago, ez
daukagu datua idatzi beharrik.
Etiketa Zertarako?
(Bi-Directional Isolation). Ez dakigunean zer noranzko izango
duen erabiltzaileak sartuko duen testua (adibidez, arabieraz idatzi
<bdi>
behar badu), etiketa honek mantenduko du erabiltzaileak sartu
duen testuaren noranzkoa.
Multimedia:
Etiketa Zertarako?
<embed> Kanpoko bideo bat edo audio bat txertatzeko erabiltzen da.
Musika edo bideo bat ikusten edo entzuten gaudenean testu bat
<track> bistaratu nahi badugu, azpi-tituluen pista aukeratzeko erabiltzen
da.
Atributuak Zertarako?
5
Datu bati buruzko informazioa ematen duten beste datu batzuk. Horien artean, datuaren egitura,
datuaren elementuak, datu horrek beste datu batzuekin duen erlazioa eta abar daude.
Esteban Garitagoitia Elgoibar | HTML5 – CSS3 Eskuliburua 31
<body>
<audio preload="auto" controls loop>
<source src="musika.ogg" type="audio/ogg">
<source src="musika.mp3" type="audio/mpeg">
zure nabigatzaileak ez du audiorik onartzen.
</audio>
</body>
2.1. DEFINIZIOA
CSS (Cascading Style Sheets) web-orrien diseinua hobetzeko erabiltzen den teknologia
da, eta HTML lengoaiaren estruktura hobetzeko asmoarekin sortu zen; bestela esanda:
HTML lengoaiaren osagarri bat da, HTML dokumentuari formatua emateko. CSS
teknologia sortu aurretik, HTML lengoaiako etiketetan idazten ziren estilo-atributuak
web-orriak diseinatzeko. HTML lengoaiak dokumentu bat aurkezteko mugak
gainditzeaz gain, CSSek HTMLren estrukturaren konplexutasuna gutxitzea zuen helburu
eta, horrela, diseinatzaileei web-orriak diseinatzeko lana erraztea.
Gaur egun, aipatu dugun bezala, HTML dokumentuaren estrukturaz arduratzen da,
baina CSSek du aurkezpenaren formatuaren kodea. Jakin behar dugu CSS
independentea dela HTMLtik.
CSS3k badu zerikusia aurreko bertsio biekin, kodea erabiltzeko modua berdina delako
lan egiteko orduan. Aurreko bertsioaren aldean, azken bertsioa konpromiso
gehiagorekin dator: orain prest dator animazioak, testuen eta eduki-kaxen itzaldurak
eta abar egiteko.
2.1.1. ARAUAK
CSSn kodea idazteko, arau batzuei jarraitu behar zaie, ez baita idazten HTML
idazten den moduan.
Lehenik eta behin, HTMLn izendatutako etiketa edo etiketak idatzi behar dira.
HTMLko etiketa horiei, hautatzaile deitzen zaie CSSn.
HTMLko etiketa bati baino gehiagori CSSko propietate berberak ezarri nahi
badizkiogu, lehenengo komen bidez (,) bilduko ditugu etiketok; gero, giltza
artean ({}) bilduko ditugu propietateak; eta, azkenik, propietate bakoitzaren
balioa ezarrita gero (;) idatziko dugu lerro-sekuentzia amaitu dela esateko.
hautatzailea {
propietatea: balioa(k);
}
p {
background-color:#cccccc;
font: bold, 14px verdana, sans-serif;
color:#000000;
}
Aurreko adibidea CSSko kodea da, baina, memento puntual batean HTML
dokumentuan estilo bat aldatu nahi badugu, lehenengo, testu edo etiketaren
barruan <style> etiketa ipini behar dugu, eta, gero, definitu nahi dugun
estilo hori. Beste aukera bat <head> etiketa barruan egitea da, <style>
etiketa definituz. Metodorik ohikoena, ordea, HTMLn <head> etiketaren
barruan CSSko dokumentu bati esteka egitea da; eta, horrela, HTML
dokumentuek ere aukera izango dute CSS dokumentu horretan definituta
dagoen estiloa erabiltzeko.
<style>
p {
background-color:#cccccc;
font: bold, 14px verdana, sans-serif;
color:#000000;
}
</style>
Kontuan izan behar dugu HTMLko <style> etiketan eta CSS dokumentuan
etiketa bati erreferentzia egiteko, hiru oinarrizko hautatzaileak erabiliko
ditugula. Honako hauek dira:
id atributua
class atributua
HTMLn eta CSSn, etiketek eta hautatzaileek ondo definituta egon behar dute;
hots, etiketa batek identifikatzailerik ez balu, hautatzaileak ere ezin izango
luke identifikatzailerik eraman, eta, ondorioz, CSSn hautatzaile bati emandako
propietateak HTMLn dauden etiketa berdin guztietan izango luke eragina.
2.1.2. PROPIETATEAK
CSSn, propietateak eta haien balioak dira gauzarik garrantzitsuenak, horiek
adierazten diotelako nabigatzaileari HTMLn definituta dauden etiketek nola
jokatu behar duten. Bertsio berri bat ateratzen den bakoitzean, propietate
berriak gehitzen zaizkio CSSri. Horietariko batzuk ikusiko ditugu, ezinezkoa
baita propietate guztiak aipatzea, ezta haien balio guztiak ere.
Testu bati kolore jakin bat ezartzeko erabiltzen da. Testu bati
kolorea definitzeko, ohikoena sistema hamaseitarra erabiltzea da
(#CCCCCC), baina red ipintzen badugu (hau da, koloreen izenak
color
ingelesez idatzita), berdin-berdin ulertuko dute nabigatzaileek.
p {color: #FF00FF;}
background-color, background-repeat,
background-image…
ul {list-style: none;}
2.2. ERREFERENTZIAK
Aurreko paragrafoetan aipatu dugu HTMLko etiketek CSSko hautatzaileekin
erlazionatuta egon behar dutela; hau da, CSSko hautatzaileek erreferentzia egin behar
diotela HTMLko etiketei.
Ondoren ikusiko dugu erreferentzia horiek nola egiten diren, ezinbestekoa da-eta
erreferentzia horiek ondo egitea. HTMLko etiketa berdinek CSSko estilo-kode berdina
Esteban Garitagoitia Elgoibar | HTML5 – CSS3 Eskuliburua 38
erabiltzen badute, zergatik idatzi kode berbera behin eta berriro behin eginda nahikoa
bada?
<body>
<p> 1. etiketa sinplea </p>
<p> 2. etiketa sinplea </p>
<body>
<style>
p {
background-color: grey;
border:solid 1px red;
color: white;
font-size:30px;
}
</style>
id atributua
<style>
P#bat {
border:solid 1px red;
text-align: right;
}
P#bi {
border:solid 3px blue;
text-align: center;
}
P#hiru {
border:solid 7px green;
text-align: left;
}
</style>
class atributua
<style>
p {
border:solid 1px red;
text-align: right;
}
p.bi {
border:solid 3px blue;
text-align: left;
}
</style>
edozein atributu
Adibidez, hiru elementuk bere atributuan balio berdina dute, eta guk
nabigatzailean elementu hori edo horiek itxura desberdinekin bistaratu nahi
ditugu. Hori egiteko, name atributua erabiliko dugu.
<style>
P[name="testua"] { border:solid 1px red; }
P[name˄="tes"] { border:solid 1px red; }
P[name$"tua">] { border:solid 1px red; }
P[name*"test"] { border:solid 1px red; }
</style>
pseudo-klaseak
CSSko pseudo-klase batek, HTMLko elementu edo etiketa baten (n) posizioa
kontuan hartuta, propietateak aldatuko dizkio elementu horri. Guk
aukeratzen dugun posizioan dagoen elementuari bakarrik aldatuko dizkio
propietateak. Zenbakiak ez ezik, beste balio hauek ere erabili ditzakegu:
odd eta even –bakoitiak eta bikoitiak–.
Adibidez, HTML dokumentuan hiru <p> etiketa ditugu, eta guk bigarren
etiketari propietateak aldatu nahi dizkiogu. Horretarako, p:nth-
child(2){color:red;} hautatzailearekin esaten ari gara bigarren
semeari ari garela erreferentzia egiten eta hari aldatu edo ezarri nahi
diogula propietate berezia. Lehenengo elementuari ezarri nahi badiogu
propietate jakin hori, (1) jarriko dugu balio bezala. Kontuan izan behar dugu
hautagaiaren ondoren (:)sinboloa jarri behar dugula.
<style>
p:nth-child(2) {background:red;}
p:nth-child(odd) {background:red;}
</style>
Hautatzailea Zertarako?
P[target=_blank]{background-color:
green;}
[atributua=balioa]
Atributuak eta haien balioak ugari izan daitezke, eta
hona hemen aukerak batzuk:
[target~=testua],[target|=testua],
[target˄=testua],[target$=testua],
[target*=testua]
p:nth-child(2){font-size: 20px;}
p:nth-child(2){font-size: 20px;}
p:nth-last-of-type(2){font-size:
20px;}
p:nth-of-type(2){font-size: 20px;}
input:out-of-range {font-size:
20px;}
input:valid {color:red; }
Aurreko kapituluan, gaur egungo HTMLrekin eta CSSrekin sortutako diseinua erakutsi
dugu adibide bezala; oraingo honetan, ikusiko dugu nola egin diseinu hori CSSko kode-
lerroak erabiliz. HTMLko adibidean <section> eta <article> eduki baten barruan
ipini ditugu; baina CSSko adibidean ezabatu egin dugu eduki bat. Horrekin, ezaugarri
orokor batez ohartzea nahi dugu: kodifikatzeko orduan, diseinatzailearen esku dagoela
nola izendatu etiketak eta elementuak.
Horretaz gain, adibide honetan ikusiko dugu etiketa bakoitzak hautatzaile bat duela eta
hautatzaile bakoitzak berari dagozkion propietateak edo atributuak dituela. Egoki
jardun nahi badugu, hainbat hautatzailek propietate edo atributu berdinak
dituztenean, partekatu egin behar dituzte propietateak eta atributuak (ikus
adibidearen atala).
<table>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td colspan="2"></td>
<td ></td>
</tr>
<tr>
<td colspan="2"></td>
<td></td>
<td rowspan="2"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
Gaur egun, informazioa kaxatan txertatzen dugu. Kaxak diseinatzeko orduan, beti
hartu behar dugu kontuan irudian agertzen den koadroa:
top: goian
bottom: behean
right: eskuinean
left: ezkerrean
Kaxak diseinatzeko, esan dezakegu hiru eredu ditugula: box model (kaxa arrunta), box-
sizing (kaxei tamaina ezartzea) eta flex-box (kaxa malgua).
Adibide honetan, <div> kaxa baten barruan testu bat daukagu, eta, kaxa
horren barruan, beste kaxa bat sortuko dugu, beste <div> batekin. Kaxa
bakoitzaren tamaina, <div> irekiera-etiketa eta itxiera-etiketa barruan
dauden testuek, irudiek… markatuko dute, tauletan gertatzen ez zen bezala.
<div>
<h1>kaxaren adibidea</h1>
<div>
<p>1. testua</p>
<p>2. testua</p>
<p>3. testua</p>
</div>
</div>
<style>
div {border: 1px solid red;
margin: 5px;
}
h1 {color: blue;
text-align: center;
}
Kalkulua nola egiten den jakiteko, hona hemen adibide bat: eman dezagun
width atributuari 100 pixeleko balioa eman diogula; marginari, 20
pixelekoa; paddingari, 10 pixelekoa eta borderari, 1 pixelekoa. Beraz, 100
+ 20x2 + 10x2 + 1x2 = 162 pixel okupatuko du gure kaxak luze-zabalean.
Gaur egun, web-orri bat diseinatzeko orduan, kontuan izan behar ditugu
ordenagailuak, tabletak eta smartphoneak, eta zenbat pixel eta zenbateko
bereizmena duten gailu horiek.
Nola funtzionatzen dute kaxa hauek? Lehenik eta behin, argi izan behar dugu
kaxak zer diren eta nola funtzionatzen duten. Kaxa malguetan edo flex-
boxetan, kaxa jakin batek kaxa nagusiaren papera hartuko du (elementu
nagusia), eta, haren barruan, beste kaxa batzuk eduki ditzake
(azpielementuak). Azpielementu horiek, era berean, beste azpielementu
batzuk eduki ahal dituzte barruan. Elementu nagusiaren papera jokatzen
duten kaxek flex atributua eduki behar dute, eta, horrela, haren semeak ere
malgu bihurtuko dira. Era berean, azpielementuek ere flex atributuarekin
definituta egon behar dute.
Irudi honetan azalduko dugu nola funtzionatzen duten kaxa malguek edo flex-
boxek.
#eduki malgua {
width: 400px;
height: 400px;
border: 1px solid black;
display: flex;
flex-direction flex-direction: row-reverse;
}
#eduki malgua {
width: 400px;
height: 400px;
border: 1px solid black;
justify-content display: flex;
justify-content: flex-end;
}
#eduki malgua {
width: 400px;
height: 400px;
border: 1px solid black;
align-items display: flex;
align-items: center;
}
#eduki malgua {
width: 400px;
height: 400px;
border: 1px solid black;
align-self
display: flex;
align-self: center;
}
#eduki malgua {
width: 400px;
height: 400px;
border: 1px solid black;
align-content display: flex;
align-self: center;
}
#eduki malgua {
width: 400px;
height: 400px;
display: flex;
}
order
#caxa1 { flex:1; order:2; }
#caxa2 { flex:1; order:1; }
#caxa3 { flex:1; order:4; }
#caxa4 { flex:1; order:3; }
#eduki malgua {
flex-flow width: 400px;
height: 400px;
border: 1px solid black;
display: flex;
flex-flow: column-reverse wrap;
}
Propietatea Zertarako?
Azpielementuak elementu nagusiaren barruan kabitzen ez direnean,
elementu horiek txikitu edo beste lerro batera pasatzeko aukera
ematen du.
#eduki malgua {
width: 400px;
height: 400px;
flex-wrap border: 1px solid black;
display: flex;
flex-wrap: wrap;
}
Propietatea Zertarako?
Elementu malgu batek izan dezakeen gutxieneko altuera eta
zabalera definitzeko erabiltzen da.
Adibidez: Elementu nagusia 400 pixel zabal da, eta 150 pixel luze;
lehenengo eta hirugarren azpielementuek tamaina berbera izatea nahi
dugu, baina bigarren azpielementuak beste anaia bien bikoitza izatea
nahi dugu. Hona hemen nola definitzen den:
<style>
#eduki malgua {
width: 400px;
height: 150px;
border: 1px solid black;
display: flex;
}
#kaxa1{flex:1; background:#D2691E;}
#kaxa2{flex:2; background: #5F9EA0;}
#kaxa3{flex:1; background:#8B008B;}
</style>
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
Adibidez: Elementu nagusia 400 pixel zabal da, eta 150 pixel luze; era
berean, azpielementuak flex-shrinken eta flex-growen 1
balioarekin definitu nahi ditugu; baina, flex-basisen, lehenengo bi
azpielementuek zabalera berekoak izatea nahi dugu, eta hirugarrenak,
berriz, zabalera finkoa izatea –225 pixel, hain zuzen–.
<style>
#eduki malgua {
width: 400px;
height: 150px;
border: 1px solid black;
display: flex;
}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
<style>
#eduki malgua {
width: 400px;
height: 150px;
border: 1px solid black;
display: flex;
}
#kaxa1{flex:1; background:#D2691E;}
#kaxa2{flex:3; background:#5F9EA0; order:2;}
#kaxa3{flex:1; background:#8B008B; order:1;}
</style>
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
Adibidez: Elementu nagusia 400 pixel zabal da, eta 150 pixel altu.
Azpielementuak 100 pixel zabal dira, eta elementu nagusiaren altuera
berekoak. Azpielementuen zabaleren batura 300 pixel da, elementu
nagusiaren zabalera baino txikiagoa, eta, beraz, 100 pixel soberan ditugu
kaxa nagusian. Hutsune hori proportzionalki banatuta egon dadin,
elementu nagusian justify-content: space-between
definituko dugu; beraz, elementu nagusiaren barruan dauden
azpielementuak elementu nagusiaren barruan justifikatuta kokatuko
dira, eta soberako 100 pixelak proportzio berberean azpielementuen
artean kokatu.
<style>
#eduki malgua {
width: 400px;
height: 150px;
border: 1px solid black;
display: flex;
justify-content: space-between;
}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
<style>
#eduki malgua {
width: 450px;
height: 150px;
border: 1px solid black;
display: flex;
align-items: center;}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
<style>
#eduki malgua {
width: 450px;
height: 150px;
border: 1px solid black;
display: flex;
align-items: center;}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
<style>
#eduki malgua {
width: 450px;
height: 150px;
border: 1px solid black;
justify-content: center;
display: flex;
flex-wrap: wrap;
}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
Adibidez, elementu nagusia 400 pixel zabal da, eta 150 pixel altu.
Azpielementu bakoitzak 50 pixeleko altuera du; lehenengo bi
azpielementuen zabalera 120 pixelekoa da, eta hirugarrenarena, berriz,
300 pixelekoa. Azpielementuen zabaleren batura 540 pixel da, elementu
nagusiaren zabalera baino handiagoa. Beraz, lehenengo bi
azpielementuen zabalera elementu nagusiaren zabalera baino txikiagoa
denez, azpielementu bi horiek elementu nagusiaren lehen lerroa oso-
osorik beteko dute. Hirugarren azpielementua azpian kokatuko da, eta
oso-osorik okupatuko du lerroa. Baina, kasu honetan, guk hala erabaki
dugulako space-between balioarekin, hutsune bat txertatuko du
tartean, azpielementuen altuera elementu nagusiarena baino txikiagoa
baita.
<style>
#eduki malgua {
width: 450px;
height: 150px;
border: 1px solid black;
align-content: space-between;
display: flex;
flex-wrap: wrap;
}
<body>
<div id="eduki malgua">
<div id="kaxa1">1</div>
<div id="kaxa2">2</div>
<div id="kaxa3">3</div>
</div>
</body>
Horretaz gain, programatzaile batzuek beharrezkotzat ikusten zuten HTML hobetu egin
behar zela, eta, harekin batera, baita CSS ere. Horrela iritsi gara, pixkanaka-pixkanaka,
HTML5era eta CSS3ra.
Hasiera batean, CSS teknologia HTMLko estrukturaren itxura hobetzeko sortu zen,
baina azkeneko bertsioa, CSS3, HTMLren itxura hobetzeko baino gauza gehiago egiteko
kapaz da: dokumentuari forma emateaz gain, dokumentu horretan dauden elementuei
mugimendua emateko gai da.
Kapitulu honetan, CSS3k eta HTML5ek zer ekarpen berri egin dituen ikasiko dugu –hau
da, zer propietate berri inplementatu dizkioten diseinatzaile eta garatzaileei web-
orriak diseinatzea errazteko–. Propietate horiek berriak direlako oraindik
estandarizatuta ez daudenez, ez zaigu ahaztu behar nabigatzaile bakoitzari dagokion
aurrizkia jarri behar zaiela programatzen ari garenean.
Kontuan izanda zer forma (eliptikoa edo biribila) eman nahi diogun kaxa bati,
erradioa definitzeko orduan, erradio horrek balio bat edo bi izango ditu
propietatean.
<body>
<div>hemen ertz biribilak dituen kaxa bat.</div>
</body>
Kaxa bati itzala ezartzeko orduan, ordena hau hartu behar da kontuan:
<body>
<div> </div>
</body>
Testu batei itzala ezartzeko orduan, ordena hau hartu behar da kontuan:
<body>
<h1>text-shadow efektua</h1>
</body>
<style>
@font-face {
font-family: "testu-proba";
src: url("../fonts/Crop-Circles.eot");
src: url("../fonts/Crop-Circles.ttf")
format("truetype");
src: url("../fonts/Crop-Circles-
webfont.eot?#iefix") format("embedded-opentype"),
url("../fonts/Crop-Circles-webfont.woff2")
format("woff2"),
url("../fonts/Crop-Circles-webfont.woff")
format("woff"),
url("../fonts/Crop-Circles-webfont.svg")
format("svg"),
font-weight: normal;
font-style: normal;
}
body {
font-family: "testu-proba", Arial, Helvetica,
sans-serif;
font-size: 3em;
}
</style>
<body
Hau @font-face testua da
</body>
Kolorea non hasiko den ezartzekoak top, top right, top left,
bottom, bottom right, bottom left… izango dira; horretaz gain,
graduak ere erabili ditzakegu: adibidez, 30deg…
<style>
div {
height: 200px;
background: linear-gradient(top, red, blue,
yellow);
}
</style>
<body
<div></div>
</body>
3.1.6. radial-gradient
Kaxei hondoa ezartzeko erabiltzen da, gradiente radialean. linear-
gradient modura, radial-gradient kaxei efektuak emateko
erabiltzen da, efektu ikaragarriak emateko erabili ere. <background>
Kolorea non hasiko den ezartzekoak top, top right, top left,
bottom, bottom right, bottom left… izango dira; horretaz gain,
ehunekoak ere erabili ditzakegu: adibidez, 30%…
6. rgba siglak koloreak adierazten ditu: lehen hiru letrek (red, green,
blue) gorriaren, berdearen eta urdinaren nahasketa adierazten dute.
Eta azken balioak adierazten nahasketa horren opakutasuna, alpha.
<body
<div></div>
</body>
3.1.7. rgba
CSS3 sortu arte, gehienetan kolore solidoak definitzen ziren, koloreak ingelesez
idatzita, koloreen baliokidea hamaseitarretan idatzita edo rgb() funtzioa
erabilita (rgb red, green eta blueren sigla da); rgb()propietatearen balioek
zenbaki hamartarrak izan behar dute, 0tik 1era arte.
CSS3n, funtzio berri bat gehitu da, rgba() funtzioa, eta horrek izugarri
sinplifikatu du koloreak eta gardentasun-maila definitzea; horrela, aurreko CSS
bertsioaren opacity propietatearen arazoak konpondu ditu.
(h)-k kolorea adierazten du: 0otik 120ora kolore gorriak dira; 121ºtik
240ora kolore berdeak dira, eta 241otik 360ora kolore urdinak dira.
<style>
div {
border: 1px solid red;
outline: green dotted thick;
}
</style>
<body
<div> hau outline adibidea da.</div>
</body>
Eman dezagun kaxa baten ertzak sortu nahi ditugula. Horretarako, hiru
atributu definitu behar ditugu: hasteko, zer izen duen erabiliko dugun
txantiloiak eta zer lekutan dagoen kokatuta. Horrela hasiko gara idazten
bidea: url( ). Gainera, definitu behar dugu zer tamaina izango duen
txantiloiaren irudiaren ertzak; eta azkenik, nolakoa izango den ertz hori.
Ezaugarri horiek stretch,round eta repeat propietateekin definituko
ditugu.
<style>
#ertz-imagina {
border: 10px solid transparent;
padding: 15px;
border-image: url(border.png) 30 stretch;
}
</style>
<body
<p id="ertz-imagina">adibide honetan ertzetan
irudi bat sartu dugu</p>
</body>
Propietatea Zertarako?
@font-face {
font-family: "pruebatexto";
src: url("../fonts/Crop-
Circles.eot");
src: url("../fonts/Crop-
Circles.ttf") format("truetype");
src: url("../fonts/Crop-Circles-
webfont.eot?#iefix")
format("embedded-opentype"),
@font-face url("../fonts/Crop-Circles-
webfont.woff2") format("woff2"),
url("../fonts/Crop-Circles-
webfont.woff") format("woff"),
url("../fonts/Crop-Circles-
webfont.svg") format("svg"),
font-weight: normal;
font-style: normal;
}
body {
font-family: "pruebatexto", Arial,
Helvetica, sans-serif;
font-size: 3em;
}
#ertz-imagina {
border: 10px solid transparent;
padding: 15px;
border-image: url(border.png) 30
border-image stretch;
}
border-image propietateak kaxaren ertzen balioak banan-
banan definitzeko aukera ematen digu:
border-image-source, border-image-slice,
border-image-width, border-image-outset,
border-image-repeat
background-color, background-image,
background-position, background-size,
background-repeat, background-origin,
background-clip, background-attachment
zutabeak {
column-count: 3;
column-gap: 15px;
column- column-rule: 2px solid darkblue;
}
Irudian honetan ikus dezakegu zer eragin duen elementu batean propietate
hauek erabiltzeak:
scale (eskalatu)
translate
x:1, y:1.5
(mugitu)
15px eskuinera
15px behera
Propietate honek parametro bi jasoko ditu, x balioa eta y balioa, eta horien
arabera eskalatu egingo du kaxak –handitu edo txikitu egingo da–.
Matematikako grafikoek funtzionatzen duten modura funtzionatzen du;
beraz, balio negatiboa ezartzen badugu, kaxaren noranzkoa ere aldatu
egiten da. Propietateari balio bakarra ezarriko bagenio, balio hori berbera
izango litzateke x (horizontala) eta y (bertikala) parametroentzat. Balio bi
erabiltzen ditugunean, koma baten bitartez (,) bereiziko dira.
<style>
div {
width: 200px;
height: 100px;
background-color: khaki;
transform:scale(1,-1);
}
</style>
<body>
<div>kaixo</div>
</body>
<style>
div {
margin: 25px;
width: 100px;
height: 100px;
background-color: khaki;
transform:rotate(-75deg);
}
</style>
<body>
<div>kaixo</div>
</body>
<style>
div {
margin: 25px;
width: 100px;
height: 100px;
background-color: khaki;
transform:skew(75deg, 25deg);
}
</style>
<body>
<div>kaixo</div>
</body>
<style>
div {
margin: 25px;
width: 100px;
height: 100px;
background-color: khaki;
transform:translate(3px, 60px);
}
</style>
<body>
<div>kaixo</div>
</body>
<style>
div {
background: Khaki; width: 45em;
transform: matrix(1, -0.2, 0, 1, 0, 0);}
</style>
<body>
<div>kaixo</div>
</body>
3.2.1. perspective()
Propietate hau elementu bati sakontasuna emateko erabiltzen da; horrela,
elementu horri begira dagoenak pentsatuko du hiru dimentsioko espazioa
ikusten duela. Elementuaren alderdi bat hurbil dagoela adierazteko, handitu
egingo du alderdi hori, eta,aldiz, alderdi bat urruti dagoela adierazteko, txikitu
egingo du alderdi hori. Propietate honen balioa pixeletan, puntutan, em-
etan… adieraziko da. Pantailan 3Dko efektua ikusteko, funtzio hau aplikatuko
du lehenengo.
3.2.2. translate3d(x, y, z)
Propietate honekin, guk definitu dugun elementu bat hiru dimentsioko
espazio batean ipiniko dugu. x, y eta z balioak pixeletan definituko ditugu.
Honako irudi honetan ikusten dugu zer adierazten duen balio bakoitzak.
Adibide hauetan ikusten dugu zer efektu sortzen duten rotate eta
perspective propietateek, elkarrekin erabilita.
<style>
#kaxa1 {
display: block;
width: 500px;
margin: 50px auto;
padding: 15px;
border: solid 1px red;
background-color: blue;
color: white;
transform: perspective(500px) rotate3d(0,
5, 0, 75deg);
}
</style>
<body>
< <div id="kaxa1">kaixo, zer moduz?</div>
</body>
#kaxa2 {
padding: 50px;
position: absolute;
border: 1px solid black;
background-color: red;
color: white;
transform: rotateX(55deg);
}
</style>
<body>
<div id="kaxa1">
<div id="kaxa2">kaixo, perspektiba</div>
</div>
</body>
<style>
#kaxa1 {
height: 150px;
width: 150px;
margin: 50px;
padding: 10px;
border: 1px solid black;
color: white;
perspective: 150px;
perspective-origin: 10% 10%;
}
#kaxa2 {
padding: 50px;
border: 1px solid black;
background-color: red;
transform: rotate3d(1, 0, 1, 85deg);
}
</style>
<body>
<div id="kaxa1">
<div id="kaxa2">kaixo Mundua</div>
</div>
</body>
<body>
<div id="kaxa1">ongi etorri gure web-orrira </div>
</body>
Trantsizio bat denez, goiko kodeak nola funtzionatzen duen ikusteko, kopiatu kodea
CSS3ko eta HTMLko editore batean, eta, ondoren, exekutatu nabigatzaile batean.
transition parametroak lau parametro har ditzake, eta, bigarren adibide honetan,
lau parametroak erabiliko ditugu, baina ez da derrigorrekoa parametro guztiak idaztea.
Nabigatzailean lauki bat bistaratuko dugu, eta trantsizio bat eragin. Laukia 100 pixel
zabal, 100 pixel luze eta kolore gorrikoa izango da. Gero, transition propietatea
definituko dugu: kasu honetan, lehenengo atributuak transform izan behar du
(geroago definitu beharko duguna), elementua birarazi eta lekuz aldatu nahi dugulako.
Bigarren parametroarekin esango diogu zenbat denbora iraungo duen trantsizio horrek
–gure kasuan, 4 segundo–; hirugarren parametroan, adieraziko dugu nolakoa izango
den trantsizio hori, betiere Bézier kurba kontuan izanda; eta laugarren parametroan
adieraziko dugu lauki horrek zenbat denbora emango duen hasierako puntura berriz
joaten. Lauki horren gainean kurtsorea jartzen dugunean (hover), 50 pixel haziko
da zabaleran eta altueran, kolorez aldatuko da (berdera), eta transform
propietatearekin, lauki hori (x) ardatzean 100 pixel mugituko da, eta 200 pixel (y)
ardatzean; aldi berean, laukia 35 gradu biratuko da.
<body>
<div id="kaxa1"></div>
</body>
<body>
<div></div>
</body>
<style>
div {
width: 200px;
height: 200px;
background: red;
transition-property: width, height, background;
transition-duration: 8s;
}
div:hover {
width: 500px;
height: 250px;
background: green;
}
</style>
<body>
<div></div>
</body>
<body>
<div></div>
</body>
<style>
div {
width: 200px;
height: 200px;
background: red;
transition-property: width, height, background;
transition-duration: 8s;
transition-timing-function: linear;
transition-delay: 2s;
}
div:hover {
width: 500px;
height: 250px;
background: green;
}
</style>
<body>
<div></div>
</body>
Propietate honek Bézier kurba adierazten du, eta beti ditu lau puntu aldez
aurretik definituta.
Outputaren ehunekoa
Inputaren ehunekoa
Bézier kurbaren balioak eskuz sar daitezke, baina ohikoena parametro hauek
idaztea da, kontuan izanda gure trantsizioak zer abiadura izatea nahi dugun:
Animazioak bi osagaitan oinarritzen dira: alde batetik, animazioa nolakoa izango den
deskribatzen duen estiloa dugu, eta, bestetik, animazioaren fotograma multzoak
izango dituen hasierako, bitarteko eta bukaerako egoerak.
CSS3 sortu aurretik, animazioak egiteko script teknikak erabiltzen ziren, eta askoz
ere konplexuagoak ziren teknika haiek. CSS3rekin animazioak egitea oso erraza da, eta,
script teknikarekin konparatzen badugu, CSS3 erabiltzeak hiru abantaila nagusi
dituela esan dezakegu:
3.4.1. animation
animation propietatea konfiguratzeko, beste propietate batzuk ditugu
haren barruan. Azpipropietate horiei esker, animazioak zer erritmo izango
duen definituko dugu, zenbat denbora iraungo duen…
#kaxa-animatua{animation-name: animazioa;}
@keyframes animazioa { }
#kaxa-animatua {
animation- animation-timing-function: linear;}
timing-function
Propietate honek izan ditzakeen balioak honako hauek
dira:
#kaxa-animatua {
animation-iteration-count: infinite;}
#kaxa-animatua {
animation-direction: alternate;}
animation-
direction Propietate honek izan ditzakeen balioak honako hauek
dira:
#kaxa-animatua {
animation-fill-mode: none;}
#kaxa-animatua {
animation-play-state: paused;}
@keyframes animazioa{
…
…
50% {transform: rotate(45deg); background: #FF0000;}
…
…
}
1.2.2. Animazioa hasi arte, zenbat denbora igaroko den (atzerapena). Gure
kasuan ez du atzerapenik izango, 0s ezarri diogulako.
2. @keyframes animation-name{}
@keyframes animazioa{
20% {background: #00FFFF;};}
35% {transform: scale(0.5); background: #FF7F50;}
50% {transform: scale(1.5); background: #ADFF2F;}
65% {transform: scale(0.5); background: #FF7F50;}
80% {background: #00FFFF;}
}
2.1.3. % 50ean dagoenean, kaxak beste transformazio bat izango du: 1.5
eskalatuko du, eta #ADFF2F kolorera aldatuko da.
Firefox nabigatzailean animazioa nola exekutatzen den ikusteko, idatz ezazu eman
zaizun adibide osoa edozein HTML editoretan.
4. Sortu goiburuaren azpian beste kaxa bat, <div> eta </div> etiketen
artean. Kaxak izango dituen neurriak hauek dira: <header> eta
</header> kaxaren zabalera bera, eta 200 pixel altu.
5. Sortu trantsizio bat <div> eta </div> etiketen artean; zeuk aukeratu
nolakoa izango den trantsizioa hori.
6. Sortu animazio bat <div> eta </div> etiketen artean; zeuk aukeratu
nolakoa izango den animazio hori.
4.1. DEFINIZIOA
Web-orrien diseinu moldagarria (responsive web design) diseinu-teknika bat da, web-
orriak gailu mota guztietan era egokian bistaratzea ahalbidetzen duena. Teknika hau
erabili ezean, web-orriak ikusi, ikusiko dira gure tabletetan edo telefono
adimentsuetan, baina, gailu horien azalera baino handiagoa dutenez, ez dira oso-osorik
kabituko, eta hatzak beharko ditugu web-orri horretan dagoen informazioan zehar
mugitzeko.
Goitik behera dagoen informazio guztia irakurtzeko, normala da hatza erabiltzea, baina
ez genuke hatza behar ezkerretik eskuinera dagoen informazioa irakurtzeko: norabide
horretan antolatuta dagoen informazioa gure tableta eta mugikor adimentsuen
zabalerara moldatu beharko litzateke.
Web-orri moldagarri bat diseinatzea erabakitzen dugunean, kontuan hartu behar dugu
web-orri hori zenbat pixel izango den zabal.
Kode sekuentzia hori erabilita, asko errazten zaigu lana, baina ez dago dena eginda
horrekin: gailu mota bakoitzarentzat CSS dokumentu berriak sortu behar dira, edo
ordenagailurako egin ditugun web-orrien diseinuak aldatu.
Neurri
Zertarako?
erlatiboa
% Gailu bakoitzaren zabalera eta altuera ehunekotan definitzeko erabiltzen da.
Letra-tipoaren tamaina definitzeko erabiltzen da. Letraren tamaina gailuaren
tamainara moldatuko da; hau da, eskalatu egingo du.
em
1em = 12 puntu, 2em = 24 puntu
em neurriaren antzera funtzionatzen du, baina elementu nagusiari ezartzen
zaio eta mendeko elementuek heredatu egiten dute.
rem
1rem = 16 pixel dira.
Letraren altuera definitzeko erabiltzen da.
ex
1ex = letra-tipo arruntaren erdia da.
Neurri
Zertarako?
absolutua
Tamaina puntutan definitzeko erabiltzen da.
pt
1pt = 1/72 ontza dira.
Dokumentu moldagarriak diseinatu eta optimizatzeko orduan, hiru oinarri izan behar
ditugu kontuan:
Badakigu guk erabiltzen ditugun nabigatzaileak ez direla berdinak, eta, hori dela
eta web-orri bat bistaratzen dutenean, batzuetan ez dute dokumentu bera itxura
berberarekin bistaratzen –agian, nabigatzaile batean ez da marrazkiren bat
ikusten, soinu bat ez da entzuten…–. Horregatik, web-orri bat diseinatzen
dugunean, saiatu behar dugu nabigatzaile guztiak kontuan hartzen, edo,
gutxienez, gehien erabiltzen direnak.
Gero eta jende gehiagok nabigatzen du tabletatik edo mugikorretik, eta, tabletak
edo mugikorrak erabiltzen ditugunean, gehienetan Interneteko sarbidea ez da
izaten Wi-Fi puntu bat, guk gure Internet-zerbitzurako kontratatuta daukagun
datu-tarifa baino. Horregatik, mugikorretan bistaratuko den web-orri batean
pentsatzen dugunean, kontuan izan behar dugu erabiltzaileek datu-kopuru
zehatz bat dutela kontratatuta, eta guk, diseinatzaile bezala, jakin behar dugu
<!--[if lt IE 9]>
<script>
var e = ("abbr,article,aside,audio,canvas,datalist,details," +
"figure,footer,header,hgroup,mark,menu,meter,nav,output," +
"progress,section,time,video").split(',');
for (var i = 0; i < e.length; i++) {
document.createElement(e[i]);
}
</script>
<![endif]-->
Kasu honetan, CSS dokumentuan ezarriko ditugu gailu baten pantailak bete
behar dituen baldintzak.
</head>
4.6.1. and
@media (max-width:500px){…}
Goian, hauxe adierazten dugu: monokromo diren gailu guztietan ez dira CSS
propietateak beteko.
4.6.3. only
Euskarriak
Nahiz eta gehienetan Media Queries arauetan pantailaren tamainarekin
jokatzen dugun CSSko dokumentu bat exekutatzeko, beste euskarri batzuk
ere defini daitezke @media erabilita. Web-orri bat bistaratuko duten
euskarriak ezaugarri askokoak izan daitezke.
Balioak Zertarako?
Ezaugarria Zertarako?
max-aspect-ratio, min-aspect-ratio
max-color, min-color
max-color-index, min-color-index
max-device-aspect-ratio, min-device-
aspect-ratio
max-device-height, min-device-height
max-device-width, min-device-width
max-monochrome, min-monochrome
Adibide baten bitartez, web-orri bat tamaina desberdina dueten hiru gailutan
bistaratuko dugu, eta azaldu nola sortu dugun euren HTML estruktura eta CSS
diseinua. HTMLko estruktura berdina da gailu guztientzat, azken batean, bistaratu nahi
dugun informazioa denetan delako berdina. CSSn adieraziko dugu HTMLn dagoen
informazioren bat bistaratu nahi dugun edo ez.
Kontuan izan behar dugu ez dagoela maketatzeko pauso zehatzik; hots, diseinatzaile
batzuek pentsatuta izaten dute nolakoa izango den sortuko duten web-orria; beste
batzuek, ordea, web-orriaren prototipoa edo zirriborroa egiten dute diseinatzen hasi
aurretik. Gure kasuan, bigarren aukerari jarraituko diogu.
Beraz, ekin diezaiogun gure web-orria diseinatu eta maketatzeari. Honako hauek
izango dira gure web-orria sortzeko pausoak:
http://pencil.evolus.vn/Default.html
http://lumzy.com/
https://www.mockflow.com/samples/
https://cacoo.com/
Gailuaren pantaila 500 pixel zabal bada edo txikiagoa, goiburua ezkutatu
egingo da.
6
JavaScripten programategi bat da, HTML dokumentuak lantzeko modua errazten duena.
var contador = 1;
if (contador == 1){
$('nav').animate({
left: '0'
});
contador = 0;
} else {
contador = 1;
$('nav').animate({
left: '-100%'
});
};
});
};
<script src="http://code.jquery.com/jquery-latest.js">
</script>
<script src="menua.js"></script>
Gailuaren pantaila 500 pixel zabal bada edo txikiagoa, bakarrik behar
dugun informazioa bistaratuko dugu; horretarako, alboko barra eta atal
nagusian dauden irudiak ezkutatu egingo ditugu, CSSn hautatzaileetan
display: none; idatzita.