Documente Academic
Documente Profesional
Documente Cultură
PW3-Advanced HTML PDF
PW3-Advanced HTML PDF
More on Web.
XML
eXtensible Markup Language
Programare Web
HTML i XML
XML = eXtensible Markup Language
HTML este folosit pentru formatarea textului a.. acesta s fie afiat utilizatorilor HTML descrie att structura (e.g. <p>, <h2>, <em>) ct i aparena (e.g. <br>, <font>, <i>) HTML folosete un set fix, nemodificabil de tag-uri XML este folosit pentru formatarea datelor a.. s fie procesate de calculatoare XML descrie doar coninut sau sensul textului
HTML i XML
HTML i XML arat similar deoarece ambele sunt limbaje SGML (Standard Generalized Markup Language)
Att HTML ct i XML folosesc elemente ncadrate de tag-uri (e.g. <body>This is an element</body>) n ambele cazuri tag-urile pot avea atribute (e.g., <font face="Verdana" size="1" color="red">) Ambele folosesc entiti interpretabile (<, >, &, ", ')
Mai exact,
HTML este definit n SGML XML este un subset (restrns) al SGML
Curs Programare Web, anul 4 C5 Curs 7 4
HTML i XML
HTML este adresat oamenilor
HTML descrie pagini web Oamenii nu doresc s vad mesaje de eroare despre paginile vizitate
Browserele ignor i/sau corecteaz attea erori HTML ct se poate
Structura Un document XML poate ncepe cu una sau mai multe instruciuni de procesare (PIs) sau directive:
<?xml version="1.0"?> <?xml-stylesheet type="text/css" href="ss.css"?>
Dup directiv trebuie s existe exact un singur tag, numit elementul root, ce conine restul documentului XML:
<weatherReport> ... </weatherReport>
Curs Programare Web, anul 4 C5 Curs 7 8
Elemente i atribute
Atributele i elementele sunt parial interschimbabile Exemplu folosind doar elemente:
<name> <first>David</first> <last>Matuszek</last> </name>
Atributele conin adesea i metadate, precum ID-uri unice n general browserele afieaz doar elemente (valori nchise de tag-uri), nu i tag-uri i atribute
10
XML ca un arbore
Un document XML reprezint o ierarhie, poate fi reprezentat ca un arbore:
novel
foreword
chapter number="1"
XML Valid
Putei crea propriile tag-uri i atribute XML, dar...
...orice program ce folosete XML-ul trebuie s tie la ce s se atepte!
Un DTD (Document Type Definition) definete ce tag-uri sunt legale i unde pot acestea aprea n cadrul documentului XML
Un document XML nu necesit un DTD
XML este bine structurat dac respecta regulile amintite anterior n plus, un XML este valid dac specific un DTD i este conform cu respectivul DTD Un DTD poate fi inclus n XML, dar tipic se folosete ca document separat Erorile dintr-un document XML vor opri programele XML Alternative la DTD-uri sunt XML Schemas i RELAX NG
Curs Programare Web, anul 4 C5 Curs 7 14
Exemplu
Putem s ne imaginm o modalitate de reprezentare a unor reete de buctrie, pe baza unor documente XML:
15
Exemplu
O versiune XML a unei colecii de astfel de reete este format din:
Reetele conin list de ingrediente, paii pentru pregtire, posibil comentarii i o specificaie a valorilor nutritive Un ingredient poate fi simplu sau compus Un ingredient simplu are un nume, o cantitate (posibil chiar nespecificat) i o unitate de msur (totui sunt i cazuri cnd nu se specific i unitate) Un ingredient compus este specificat recursiv ca o reet avnd ingrediente i modalitate de pregtire
<?xml version="1.0" encoding="UTF-8"?> <collection> <description> Some recipes used for the XML lesson. </description> <recipe> <title>Beef Parmesan with Garlic Angel Hair Pasta</title> <ingredient name="beef cube steak" amount="1.5" unit="pound"/> ... <preparation> <step> Preheat oven to 350 degrees F (175 degrees C). </step> ... </preparation> <comment> Make the meat ahead of time, and refrigerate over night, the acid in the tomato sauce will tenderize the meat even more. If you do this, save the mozzarella till the last minute. </comment> <nutrition calories="1167" fat="23" carbohydrates="45" protein="32"/> </recipe> ... </collection>
16
Exemplu
Un exemplu de document DTD pentru reetele noastre arat astfel: Prin inserarea:
<!DOCTYPE collection SYSTEM "recipes.dtd">
<!ELEMENT collection (description,recipe*)> <!ELEMENT description ANY> <!ELEMENT recipe (title,ingredient*,preparation,comment?,nutrition)> <!ELEMENT title (#PCDATA)> <!ELEMENT ingredient (ingredient*,preparation)?> <!ATTLIST ingredient name CDATA #REQUIRED amount CDATA #IMPLIED unit CDATA #IMPLIED> <!ELEMENT preparation (step*)> <!ELEMENT step (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT nutrition EMPTY> <!ATTLIST nutrition protein CDATA #REQUIRED carbohydrates CDATA #REQUIRED fat CDATA #REQUIRED calories CDATA #REQUIRED alcohol CDATA #IMPLIED>
specificm c dorim c documentul nostru ce conine reete trebuie s fie conform cu acest DTD Putem defini i local regulile DTD cu:
<!DOCTYPE collection [ ... ]>
17
Scop XML
XML este proiectat pentru a fi procesat de ctre programele software, nu pentru a afia date Totui aproape toate browserele pot afia documente XML
Ele nu vor fi afiate n aceeai manier Nu vor fi afiate deloc dac conin erori
Atenie: HTML este proiectat pentru a fi vizualizat, XML este proiectat pentru a fi folosit
18
XHTML
http://www.w3schools.com/xhtml/
20
21
Origini
HTML dezvoltat de Tim Berners-Lee n 1989
O modalitate de accesare a bazei de date ENQUIRE peste Internet Rezultatul a devenit World Wide Web
Pentru a face din HTML un standard, Berners-Lee avea nevoie de o implementare real a unei aplicaii care s suporte astfel de documente
S-a oprit la Mosaic un browser a crui finanare era suportat de congresman-ul Al Gore
Origini
Cnd standardul devine popular, se pune problema controlului asupra acestuia:
IETF formeaz HTML Working Group cu scopul de a ncepe lucrul la HTML 2.0 Berners-Lee creaz World Wide Web Consortium (W3C) scop: promovarea tehnologii Web IETF reuete s scoat standardul HTML 2.0 n 1995, totui n 1996 controlul revine n ntregime ctre W3C
HTML 2.0
Integrarea extensiilor pe care dezvoltatorii de browsere le ncorporase ad-hoc pentru diverse funcionaliti
HTML 3.0
n 1995, W3C scoate HTML 3.0 ca o modalitate de formalizare a unor funcii precum suportul pentru documente tiinifice i matematice
Curs Programare Web, anul 4 C5 Curs 7 23
Origini
Rzboiul dezvoltatorilor de browsere continu
Fiecare vendor propune funcii noi, ne-standadizate, n ncercarea de a acumula segmente din piaa nou n continu expansiune: Microsoft reuete s scoat 3 versiuni stabile ntr-un singur an (1996) a IE, ntr-o ncercare de a lega viitorul Web-ului de platforma Windows
IE 3.0 vine cu suport pentru ActiveX, tehnologia de contrucie a unor controale bogate (dar care ruleaz doar pe Windows)
Origini
Mediatorul e tot W3C
n standard nu intr nici BLINK, nici MARQUEE Suportul pentru prezentare din Netscape e deprecated n loc se propune folosirea CSS ca form de separare a elementelor HTML de cele de formatare/stil
Reguli de trimitere:
Se accept doar documente n format PDF Formatare: pagina A4, font Times New Roman, dimensiune 12, fr spaiere, margini 2,5 cm stnga, dreapta, jos, sus Eseul trebuie s se ntind pe minim 1 pagin i maxim 3 pagini
Rspunsurile se trimit electronic, pe site-ul cursului (curs.cs.pub.ro), pn pe data de 13.03.2013, ora 23.55.
Nu se accept ntrzieri: temele trimise dup aceast dat nu sunt luate n considerare.
Curs Programare Web, anul 4 C5 Curs 7 26
Dar la noi?
www.pub.ro a aprut n 1997, coninea elemente minimale de HTML 3.2
27
HTML 4
HTML 4 extinde HTML cu mecanisme adecvate pentru:*
Elemente de style sheet, Limbaje de scripting, Frame-uri, Obiecte embedded, Suport mbuntit pentru text reprezentat de la dreapta la stnga Elemente mai bogate de prezentare a tabelelor mbuntiri pentru reprezentarea formularelor, oferirea de suport pentru persoane cu disabiliti.
*http://www.w3.org/TR/1999/REC-html401-19991224/intro/intro.html#h-2.3
Curs Programare Web, anul 4 C5 Curs 7 28
29
Problema cu HTML
HTML a fost conceput ca o modalitate de a descrie structura unui document, cu tag-uri pentru a indica headere, paragrafe, etc. Apare nevoia de control asupra aparenei documentelor, motiv pentru care HTML a fost mbogit cu tag-uri pentru controlul font-urilor, aliniatelor, etc.
30
Forma arborescent:
Exist exact un element rdcin Elementele sunt coninute unele n altele, formnd o ierarhie arborescent
<person> <firstname>Ion</firstname> <lastname>Popescu</lastname> <age>30</age> <ssn>2711130345678</ssn> </person>
Curs Programare Web, anul 4 C5 Curs 7 32
33
Parserele XML cu validare verific respectarea constrngerilor impuse de o schem specificat XML Schema Tutorial: http://www.w3schools.com/schema/default.asp
Curs Programare Web, anul 4 C5 Curs 7 34
01.04.2010
38
De la HTML la XHTML, I
Elementele XHTML trebuie s fie corect imbricate
<b><i>bold and italic</b></i> este greit
Numele de tag-uri trebuie s fie lowercase Toate elementele XHTML trebuie s fie nchise
Dac un tag HTML nu este un container el se nchide: <br />, <hr />, <img src="smile.gif" />
Curs Programare Web, anul 4 C5 Curs 7 39
De la HTML la XHTML, II
Numele de atribute trebuie s fie lower case
Exemplu: <table width="100%">
XHTML i DTD-uri
HTML, XHTML, XML i multe alte limbaje de markup ce suport DTD-uri DTD (Document Type Definition) descrie sintaxa ce trebuie folosit pentru un anumit document, folosirea unui DTD fiind o regul n cazul documentelor XHTML Exist trei tipuri diferite de DTD-uri pentru XHTML putei lucra cu oricare
Ele sunt publice pe web Documentul XHTML trebuie s nceap cu o referin la unul dintre aceste DTD-uri
Curs Programare Web, anul 4 C5 Curs 7 41
Declaraia DOCTYPE
Orice document XHTML trebuie s nceap cu o declaraie DOCTYPE (ce specific DTD-ul curent folosit):
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
42
Transitional
Folosit cu HTML standard i/sau cu CSS. Permite introducerea de elemente HTML depricated (tag-uri <center>, <embed>, <font>, <i>, <u> sau atribute <align>, <background>, <color>, <height>, <size>, etc).
Frameset
Folosit dac documentul include frame-uri HTML
Curs Programare Web, anul 4 C5 Curs 7 43
"Strict" vs "Transitional"
Demarcaia ntre markup i prezentare
01.04.2010
44
45
Instrumente utile
Dave Raggett's HTML TIDY
http://www.w3.org/People/Raggett/tidy/ este un instrument free UNIX pentru verificarea i curarea paginilor HTML
46
Reminder: Vocabular
SGML: Standard Generalized Markup Language
HTML: Hypertext Markup Language XHTML: eXtensible Hypertext Markup Language XML: eXtensible Markup Language
47
04.03.2010
48
A Tree
01.04.2010
49
01.04.2010
50
51
Problema cu HTML
HTML a fost de la nceput conceput pentru a descrie coninutul unui document Autorii de pagini web nu aveau nevoie s descrie layout-ul -browserul avea grij de acest aspect Aceasta reprezint o abordare inginereasc corect, ns nu satisface nevoile stilitilor i artitilor
Oamenii ce aveau nevoie sa spun mai multe simeau nevoia unui control mai bun al modului de prezentare a propriilor pagini Web
Ca rezultat, HTML a nceput s ncorporeze din ce n ce mai multe tag-uri folosite pentru controlul afirii
Coninutul i modul de afiare al informailor au devenit din ce n ce mai mult interconectate Browsere diferite afieaz totui lucrurile n moduri diferite, ceea ce reprezint o problem real atunci cnd modul de prezentare al informaiilor e chiar mai important dect informaia propriu-zis
Curs Programare Web, anul 4 C5 Curs 7 52
01.04.2010
54
Sintaxa CSS
Sintaxa CSS este compus dintr-o list de selectori (pentru alegerea tag-urilor) i descriptori (pentru a specifica ce dorim s facem cu respectivele tag-uri):
Exemplu: h1 {color: green; font-family: Verdana} specific c orice text inclus n tag-uri h1 (HTML heading level 1) trebuie afiat folosind font de tip Verdana i colorat n verde
55
Sintaxa CSS
Sintaxa generala este:
selector { property: value } sau selector, ..., selector { property: value; ... property: value } unde selector reprezint tag-ul afectat de stil (selectorul este casesensitive dac i numai dac limbajul de descriere a documentului este case-sensitive). property i value descriu modul de afiare al respectivului tag. Spaiile dup virgule i punct si virgule sunt opionale. Un punct i virgul trebuie s fie folosit ntre perechi property:value, dar dup ultima pereche punct i virgul devine caracter opional.
Curs Programare Web, anul 4 C5 Curs 7 56
01.04.2010
57
01.04.2010
58
Exemplu de CSS
/* Acesta este un comentariu */ h1,h2,h3 {font-family: Arial, sans-serif;} /*folosete primul font disponibil */ p, table, li, address { font-family: "Courier New"; } margin-left: 15pt; /* se aplic tuturor acestor tag-uri */ /* valoare ncadrat ntre ghilimele ce conine spaii */ /* indentare */ /* 80% din dimensiunea elemenului ce l conine */ /* culorile pot fi specificate n hexa */ /* se adaug elementelor specificate */ /* un link ne-vizitat */ /* un link vizitat */ /* un link deja vizitat */ /* atunci cnd mouse-ul trece deasupra elementului */
59
p, li, th, td {font-size: 80%;} th {background-color:#FAEBD7} body { background-color: #ffffff;} h1,h2,h3,hr {color:saddlebrown;} a:link {color:darkred} a:visited {color:darkred} a:active {color:red} a:hover {color:red}
Selectori
Un tag XML sau HTML poate fi folosit ca un simplu element selector:
body { background-color: #ffffff }
60
Exemplu de suprascriere
61
Reguli combinate
Regulile pot fi combinate
01.04.2010
62
Selectori
Un selector descendent alege un tag avnd un element ancestor corespunztor:
p code { color: brown } selecteaz code doar dac este folosit n interiorul unui paragraf
63
Selectori
Un selector simplu de atribut permite alegerea elementelor ce au un anumit atribut, indiferent de valoarea acestuia:
Sintaxa: element[atribut] { ... } Exemplu: table[border] { ... }
Un selector de atribut valoare permite alegerea elementelor ce au un anumit atribut avnd o anumit valoare:
Sintaxa: element[atribut="valoare"] { ... } Exemplu: table[border="0"] { ... }
64
Combinarea selectorilor
i selectorii pot fi combinai
01.04.2010
65
Valori
Sintaxa unei reguli CSS este:
selector, ..., selector { property: value; . . . property: value }
Valoarea este orice apare ntre dou puncte i punct i virgul (sau acolad) Exemple:
* {font-family: Trebuchet, Verdana, sans-serif;}
Aceasta nseamn ca trebuie folosit font Trebuchet pentru orice, dac este disponibil; altfel, se folosete font Verdana, dac este disponibil; altfel folosete orice font sans serif pe care browserul l are instalat.
66
Atributul class
Atributul class permite definirea mai multor stiluri diferite pentru un acelai element:
n fiierul de style sheet: p.important {font-size: 24pt; color: red} p.fineprint {font-size: 8pt} n documentul HTML: <p class="important">The end is nigh!</p> <p class="fineprint">Offer ends 1/1/97.</p>
Pentru definirea unui selector ce se aplic oricrui element avnd o anumit clas se omite numele tag-ului (dar se pstreaz punctul):
.fineprint {font-size: 8pt}
Curs Programare Web, anul 4 C5 Curs 7 67
Atributul id
Atributul id este definit similar atributului class, dar folosete # in loc de .
n fiierul style sheet: p#important {font-style: italic} # important {font-style: italic} n documentul HTML: <p id="important"> sau
68
div i span
div i span sunt elemente HTML ce au ca scop introducerea de informaii de prezentare a elementelor pe baza regulilor CSS div asigur existena unei linii noi nainte i dup (similar unui paragraf); span nu Exemplu:
CSS: div {background-color: #66FFFF} span.color {color: red} HTML: <div>This div is treated like a paragraph, but <span class="color">this span</span> is not.</div>
69
Rezultat:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <link REL="STYLESHEET" TYPE="text/css" HREF="stil.css"/> </head> <body> Text inainte. <div>This div is treated like a paragraph, but <span class="color">this span</span> is not.</div> Text dupa. </body> </html>
70
Alt exemplu
Elementele <div> sunt cel mai adesea folosite pentru poziionare:
#container { position: relative } #navigation { position: absolute; left: 30px; top: 5px }
71
3. Stiluri inline
Se aplic doar pentru HTML, nu i pentru XML Form limitat de sintax CSS
Curs Programare Web, anul 4 C5 Curs 7 72
73
Not: ncapsularea style sheet-ului ntr-un comentariu reprezint un artificiu de ascundere a informaiei de browsere mai vechi ce nu neleg sintaxa CSS.
Curs Programare Web, anul 4 C5 Curs 7 74
Avantaj:
Folositor dac dorim doar o mic modificare de stil
Dezavantaje:
Mix de informaii de prezentare n cadrul HTML Ascunde i ngreuneaz vizibilitatea codului HTML Nu se pot folosi toate elementele CSS
Curs Programare Web, anul 4 C5 Curs 7 75
Ordinea de cascadare
Stilurile vor fi aplicate unui document HTML n ordinea urmtoare:
1. Stilul implicit al browser-ului 2. External style sheet 3. Internal style sheet (n interiorul tag-ului <head>) 4. Inline style (n interiorul altor elemente, cele mai din afar mai nti)
Cnd elementele de stil ajung s fie n conflict, cel mai apropiat (mai recent aplicat) stil ctig
76
77
Alt exemplu
Considerm documentul HTML:
<p class="pclass" id="pid"><span class="sclass" id="sid">text</span></p>
Rspuns: Textul va fi afiat rou cu dimensiunea 15px (font-size: 10px, combinat cu font-size: 150% => 10 x 1.5 = 15px)
78
Un exemplu XML
<?xml version="1.0" standalone="no"?> <!DOCTYPE novel SYSTEM "novel.dtd"> <?xml-stylesheet href="styles.css" type="text/css"?> <novel> <foreword> <paragraph>This is the great American novel.</paragraph> </foreword> <chapter> <paragraph>It was a dark and stormy night.</paragraph> <paragraph>Suddenly, a shot rang out!</paragraph> </chapter> </novel> chapter {font-family: "Papyrus", fantasy} foreword > paragraph {border: solid red; padding: 10px} novel > foreword {font-family: Impact; color: blue} chapter {display: block} chapter:first-letter {font-size: 200%; float: left} paragraph {display: block} chapter:before {content: "New chapter: "}
Curs Programare Web, anul 4 C5 Curs 7 79
CSS:
Rezultatul
Rezultat afiat de Firefox 4:
Rezultat afiat de IE
80
font-size:
inherit | smaller | larger | xx-small | x-small | small | medium | large | x-large | xx-large | 12pt
font-weight:
normal | bold |bolder | lighter | 100 | 200 | ... | 700
font-style:
normal | italic | oblique
81
82
Culori i lungimi
color: i background-color:
aqua | black | blue | fuchsia | gray | green | lime | maroon | navy | olive | purple | red | silver | teal | white | #FF0000 | #F00 | rgb(255, 0, 0) | Alte nume recunoscute de browser (nu se recomand)
text-decoration:
none | underline | overline | line-through
text-transform:
none | capitalize | uppercase | lowercase
text-indent
length | 10% (indentarea primei linii a textului)
white-space:
normal | pre | nowrap
Curs Programare Web, anul 4 C5 Curs 7 84
Pseudo-clase
Pseudo-clasele sunt elemente ale cror stare (i mod de aparitie) poate varia n timp Sintaxa: element:pseudo-class {...}
:link Un link ce nu a fost vizitat :visited Un link ce a fost vizitat :active Un link pe care tocmai se execut un click :hover Un link peste care este poziionat cursorul mouseului
Alegerea numelor
CSS este proiectat pentru a separa coninut de stil
Prin urmare, numele ce sunt folosite n HTML sau (mai ales) n XML trebuie s descrie coninut, nu stil
Exemplu:
S presupunem c definii span.huge {font-size: 36pt} i folosii <span class="huge"> n cadrul mai multor documente Ulterior descoperii c utilizatorii dezagreaz stilul acesta, deci modificai CSS-ul n span.huge {font-color: red} Numele este incorect ales; ncercai s l redenumii n toate documentele? Daca ai fi ales de la nceput span.important {font-size: 36pt}, ar fi fost mai uor de ntreinut propriile documente
Curs Programare Web, anul 4 C5 Curs 7 86
01.04.2010
87
Eg.: Firebug
01.04.2010
88
Firebug
Disable CSS Rules in Firebug:
01.04.2010
89
01.04.2010
90
01.04.2010
91
01.04.2010
92
01.04.2010
93
HTML 5
01.04.2010
94
HTML reminder
HTML 1.0 i HTML+ 1990, respectiv 1993. HTML 2.0 - 1994, a fost prima versiune standardizat, (49 taguri). HTML 3.0 - 1995. Versiunea cuprindea extensii importante, cum ar fi marcaje pentru notaii matematice, bannere etc. HTML 3.2, - Ianuarie 1997, este considerat ca succesorul versiunii 2.0, incorpornd o serie de taguri din HTML 3.0. HTML 4 - Decembrie 1997 extinde HTML cu mecanisme pentru stylesheets, script-uri, frame-uri, un suport mai mare i mbuntit pentru alinierea textului, tabele mai bogate i mbunatiri ale formularelor, oferind o accesibilitate mai mare pentru oamenii cu deficit. HTML 4.01 - Decembrie 1999 este o versiune revizuit de HTML4.0 care corecteaza unele erori si face unele schimbari in privinta modului de functionare a unor sintaxe.
01.04.2010 Curs Programare Web, anul 4 C5 Curs 6 95
Markup Evolution
01.04.2010
96
01.04.2010
97
HTML 5
2004 Web Hypertext Application Working Group (WHATWG) au inceput lucrul la noul standard HTML 2004 Consortiul W3C se concentrau asupra dezvoltarii XHTML 2.0 desi HTML 4.01 nu mai fusese actualizat inca din 2000. 2007 Specificatiile HTML 5 ale WHATWG au fost apoi adoptate de catre W3C ca punct de start al noului standard HTML.
01.04.2010 Curs Programare Web, anul 4 C5 Curs 6 98
HTML 5
HTML5 este ultima versiune HTML si XHTML. Standardul incearca sa rezolve problemele intalnite in versiunile anterioare HTML si se adreseaza nevoii de APLICATII WEB, un domeniu ce nu a fost acoperit de catre HTML pana in acest moment. Desi ultima versiune HTML 5 lansata pe data de 22 Februarie 2012 este o ciorna (W3C Working Draft), dezvoltatorii browserelor au inceput sa implementeze parti din functionalitatile prezente in standardul HTML5.
De ce HTML5?
Calculatoare performante folosite insuficient Numarul utilizatorilor de servicii web devine din ce in ce mai mare
Performantele JavaScript.
DOCTYPE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR /xhtml1/DTD/xhtml1transitional.dtd">
Radacina HTML
<html xmlns=http://www.w3.org/1999/x html lang="en" xml:lang="en">
CHARSET
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
STYLESHEET
<link rel="stylesheet" href="styleoriginal.css" type="text/css" />
Elementul Base
<head> <base href=url target="_blank" /> </head> -se introduce adresa de baza.
HTML 5
<HEADER>
HTML 4
<div id="header"> <h1>My Weblog</h1> <p class="tagline">A lot of effort went into making this effortless.</p> </div>
HTML 5
<header> <h1>My Weblog</h1> <p class="tagline">A lot of effort went into making this effortless.</p> </header>
<HGROUP>
HTML 4
<h1>My Weblog</h1> <h2>A lot of effort went into making this effortless.</h2>
HTML 5
<header>
<hgroup> <h1>My Weblog</h1> <h2>A lot of effort went into making this ffortless.</h2> </hgroup>
</header>
Exemplu
<header> <hgroup> <h1><a href="/">Mini Apps</a></h1> <h2>Web applications for iPhone, Android & other mobile platforms</h2> </hgroup> </header>
<FOOTER>
HTML 4
<div id="footer"> <p>§</p> <p>© 2001–9 <a href="#">Mark Pilgrim</a></p> </div>
HTML 5
<footer> <p>§</p> <p>© 2001–9 <a href="#">Mark Pilgrim</a> </p> </footer>
<SECTION>
Sectiune generica de aplicatie sau document
<section> <h1>Level 1</h1> <section> <h1>Level 2</h1> <section> <h1>Level 3</h1> </section> </section>
<ARTICLE>
HTML 4
<div class="entry"> <p class="post-date">October 22, 2009</p> <h2> <a href="#" rel="bookmark" title="link to this post"> Travel day </a> </h2> </div>
<article> <header> <p class="post-date">October 22, 2009</p> <h1> <a href="#" rel="bookmark" title="link to this post"> Travel day </a> </h1> </header> </article>
HTML 5
<ASIDE>
HTML5 <aside>
<h1>Archives</h1> <ul>
<li><a href="/2007/09/">September 2007</a></li> <li><a href="/2007/08/">August 2007</a></li> <li><a href="/2007/07/">July 2007</a></li> </ul>
</aside>
<NAV>
HTML 4
<div id="nav"> <ul> <li><a href="#">home</a></li> <li><a href="#">blog</a></li> <li><a href="#">gallery</a></li> <li><a href="#">about</a></li> </ul> </div>
HTML 5
<nav> <ul> <li><a href="#">home</a></li> <li><a href="#">blog</a></li> <li><a href="#">gallery</a></li> <li><a href="#">about</a></li> </ul> </nav>
<TIME>
<time datetime="2009-10-22" pubdate>October 22, 2009</time> <time datetime="2009-10-22T13:59:47-04:00" pubdate> October 22, 2009 1:59pm EDT </time> <article> <header>
<time datetime="2009-10-22" pubdate> October 22, 2009 </time> <h1> <a href="#" rel="bookmark" title="link to this post"> Travel day </a> </h1>
a resolution-dependent bitmap canvas which can be used for rendering graphs, game graphics, or other visual images on the fly.
<CANVAS>
Sintaxa:
<canvas id="a" width="300" height="225"></canvas>
function draw_b() {
var b_canvas = document.getElementById("b"); var b_context = b_canvas.getContext("2d");//future 3D b_context.fillRect(50, 25, 150, 100);
<CANVAS>
Desenarea in Canvas Context: Sunt esentiale functiile:
beginPath() closePath() stroke() fill()
Proprietati:
fillStyle = (CSS color,pattern,gradient) strokeStyle= (CSS color,pattern,gradient)
<CANVAS>
Alte functii de desenare in canvas context o Desenare dreptunghiuri
fillRect(x, y, width, height) strokeRect(x, y, width, height) clearRect(x, y, width, height)
o Desenare linii
o moveTo(x, y) o lineTo(x, y)
<CANVAS>
o Desenarearce
arc(x,y,radius,startAngle,endAngle,anticlockwise)
(pentrucercstartAngle=0,endAngle=Math.pi*2)
x,ycoordonatelepunctuluidesfarsit cp1x,cp1y,cp2x,cp2ycoordonateleprimuluisiceluidealdoileapunctdecontrol.
Desenareadetext o Proprietaticontext:
Context.font={font} Context.textAlign={start,end,left,right,center}; Context.textBaseline={top,hanging,middle,alphabetic,ideographic,bottom};
oFunctiadedesenare
o Context.fillText(text,x,y);
<CANVAS>
o Crearea unui gradient
createLinearGradient(x0, y0, x1, y1) createRadialGradient(x0, y0, r0, x1, y1, r1)
Exemple gradient:
1. var my_gradient = context.createLinearGradient(0, 0, 300, 0); my_gradient.addColorStop(0, "black"); my_gradient.addColorStop(1, "white"); context.fillStyle = my_gradient; context.fillRect(0, 0, 300, 225);
<CANVAS>
2. var my_gradient = context.createLinearGradient(0, 0, 0, 225); my_gradient.addColorStop(0, "black"); my_gradient.addColorStop(1, "white"); context.fillStyle = my_gradient; context.fillRect(0, 0, 300, 225);
3. var my_gradient = context.createLinearGradient(0, 0, 300, 225); my_gradient.addColorStop(0, "black"); my_gradient.addColorStop(1, "white"); context.fillStyle = my_gradient; context.fillRect(0, 0, 300, 225);
<CANVAS>
o Desenarea de imagini
o o o drawImage(image, dx, dy) drawImage(image, dx, dy, dw, dh) drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)
<CANVAS>
Exemple desenare imagini
1. <img id="cat" src="images/cat.png" alt="sleeping cat" width="177" height="113"> <canvas id="e" width="177" height="113"></canvas> <script> window.onload = function() { var canvas = document.getElementById("e"); var context = canvas.getContext("2d"); var cat = document.getElementById("cat"); context.drawImage(cat, 0, 0); }; </script> 2. <canvas id="e" width="177" height="113"></canvas> <script> var canvas = document.getElementById("e"); var context = canvas.getContext("2d"); var cat = new Image(); cat.src = "images/cat.png"; cat.onload = function() { context.drawImage(cat, 0, 0); }; </script>
<CANVAS>
Transformari
Pentru a retine si a prelua starile panzei :
Save(); Restore();
Starea panzei=transformari, valorile proprietatilor strokeStyle, fillStyle, globalAlpha, lineWidth, lineCap, lineJoin, miterLimit, shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor
Translatarea: translate(x, y)
<CANVAS>
Rotatia: rotate(angle)
Scalarea: scale(x, y)
Umbre
Proprietati context:
ShadowColor ShadowOffsetX ShadowOffsetY ShadowBlur
Exemple <CANVAS>
http://html5demos.com/canvas-grad
Exemple <CANVAS>
First person gifter http://htmlfive.appspot.com/static/gifter.html
01.04.2010
132
HTML 4:
<video src="video.ogg"> <object data="videoplayer.swf" type="application/x-shockwave-flash"> <param name="movie" value="video.swf"/> </object> </video>
Functii media
Load() Play() Pause() canPlayType(type)
<video width="320" height="240" controls> <source src="pr6.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> <source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"'> <source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"'> </video> <audio controls> <source src="johann_sebastian_bach_air.ogg"> <source src="johann_sebastian_bach_air.mp3"> An audio clip from Johann Sebastian Bach. </audio>
Exemplu Geolocatie
Google Maps http://htmlfive.appspot.com/static/where ami.html
APLICATII OFFLINE
APLICATII OFFLINE
O aplicatie web este o lista de URL-uri- HTML,CSS,Javascript, imagini sau orice alta forma de resursa. Homepage-ul unei aplicatii offline ne directioneaza catre aceasta lista (fisier manifest) ceea ce este doar un fisier text de pe server. Un Browser ce implementeaza aplicatii offline HTML5 citeste aceeasta lista, downloadeaza resursele indicate si le inmagazineaza local actualizandu-le doar cand este necesar. Cand veti accesa aplicatia web fara a avea acces la internet, browserul web va aduce copiile locale. De asemeni exista in DOM un flag ce va indica daca sunteti online sau offline.
var online = navigator.onLine;
Acest atribut se modifica in timpul evenimentelor online si offline ce sunt manevrate de obiectul Window.
MANIFESTUL CACHE
Baza de date
HTML5 asigura un API de baza de date bazat pe SQL pentru a inmagazina local si structurat datele. API-ul interactioneaza cu baza de date in mod asincron ceea ce asigura faptul ca interfata utilizator nu se va bloca. Exemplu de implementare
//pentru a crea un obiect baza de date
var db = window.openDatabase("NoteTest", "1.0","Example DB",200000);
function renderNote(row) { // renders the note somewhere } function reportError(source, message) { // report error }
Baza de date
function renderNotes() { db.transaction(function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS Notes(title TEXT, body TEXT)', []); tx.executeSql(SELECT * FROM Notes, [], function(tx, rs) { for(var i = 0; i < rs.rows.length; i++) { renderNote(rs.rows[i]); } }); }); } function insertNote(title, text) { db.transaction(function(tx) { tx.executeSql('INSERT INTO Notes VALUES(?, ?)', [ title, text ], function(tx, rs) { // }, function(tx, error) { reportError('sql', error.message); }); }); }
APLICATII OFFLINE
Pentru depozitarea simpla si sincrona a informatiilor pentru utilizare offline HTML introduce atributul localStorage al obiectului Windows.
localStorage["status"] = "Idling.";
NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT! NU VOI BLOCA BROWSERUL CU JAVASCRIPT!
WEB WORKERS
WEB WORKERS
Javascript ruleaza pe acelasi fir de executie cu browserul ceea ce poate face ca acesta din urma sa nu mai poata raspunde la comenzile utilizatorului. Muncitorii Web definesc un API ce ruleaza scripturile in background. ! muncitorii trebuie sa se afle intr-un script extern. Exemplu de implementare
<script> var worker = new Worker('worker.js'); worker.onmessage = function (event) { console.log('Results: ' + event.data); }; </script> Muncitorii: function findPrimes() { // ... prime algorithm here postMessage(nextPrime); } findPrimes();
Motion tracker
01.04.2010
151
Socket-uri Web Web storage Alte tag-uri noi Manipularea istoricului browserului Drag and Drop
Concluzii
HTML5 stie unde te afli, stie ce scrii, unde esti si unde ai fost. HTML5 este viitorul si desi inca nu a ajuns la un stadiu final (se preconizeaza ca in jurul anului 2022) el poate fi implementat si utilizat in cadrul browserelor moderne.
Bibliografie
Pro HTML5 Programming - Powerful APIs for Richer Internet Application Development (Peter Lubbers, Brian Albers and Frank Salim) Introduction cu HTML5 (Brad Neuberg) W3C HTML 5 Working Draft Dive into HTML5 (Mark Pilgrim)