Lectia 5b - HTML & CSS

Proiect de Sinteza: Site Multi-Pagini

Construieste pas cu pas un site complet, integrΓ’nd tot ce ai invatat: structura HTML, text, imagini, linkuri, CSS si layout!

Progres lectie:
0%
🎯

Obiectivul lectiei

"Dupa aceasta lectie vei fi construit un site complet cu doua pagini, stilizat cu CSS, cu navigare functionala intre pagini si cu layout structurat β€” exact produsul sumativ cerut de programa!"

Nota curriculara: Programa OMEN 3393/2017 cls. VIII (domeniu Pagini web) prevede ca produs sumativ: Site simplu (multi-pagini) / pagina dupa specificatie, cu axele: structura, continut, navigare, aspect pentru audienta. Aceasta lectie ghideaza construirea acelui produs, integrand competentele din Lectiile 1-5.

Dupa aceasta lectie vei putea:

  • Sa organizezi fisierele unui proiect web real (folder, index.html, stil.css, pagini secundare)
  • Sa construiesti o pagina de start (index.html) cu header, sectiune de continut si footer
  • Sa creezi o a doua pagina HTML legata prin navigare cu <a href>
  • Sa aplici un fisier CSS extern cu stiluri pentru text, culori, margini si layout Flexbox de baza
  • Sa verifici ca site-ul functioneaza corect in browser inainte de publicare
1

Planul si structura proiectului

Inainte sa scriem prima linie de cod, planificam ce vom construi. Un site simplu cu doua pagini are nevoie de:

  • O pagina de start (index.html) β€” prezentare generala, cu un titlu mare si un paragraf de introducere
  • O pagina secundara (despre.html sau contact.html) β€” informatii suplimentare
  • Un fisier CSS extern (stil.css) β€” stilizeaza ambele pagini din acelasi loc

Structura fisierelor pe calculator arata asa:

site-meu/
  |-- index.html       <-- pagina principala (OBLIGATORIU: nume exact "index.html")
  |-- despre.html      <-- a doua pagina
  |-- stil.css         <-- stiluri comune pentru ambele pagini
  |-- imagini/
        |-- logo.png   <-- optional: imaginile site-ului

De ce index.html? Serverele web cauta automat fisierul cu acest nume exact cand cineva acceseaza adresa site-ului. Daca numesti pagina altfel (de exemplu "acasa.html"), serverul nu o va gasi automat.

De ce CSS extern? Daca scriem stiluri intr-un fisier separat (stil.css) si il referentiem din ambele pagini HTML, orice modificare de culoare sau font se aplica simultan pe tot site-ul β€” nu trebuie sa modificam fiecare pagina in parte. Acesta este principiul DRY (Don't Repeat Yourself β€” Nu te repeta).

Pentru aceasta lectie vom construi un site simplu cu tema libera: poate fi o prezentare a orasului tau, a unui sport preferat, a unui animal, sau a oricarui subiect te intereseaza. Conteaza structura si tehnica, nu subiectul.

Care este primul pas in construirea unui site multi-pagini?
A Sa creezi folderul proiectului si fisierul index.html
B Sa publici site-ul pe internet
C Sa scrii codul CSS
2

Construim pagina principala (index.html)

Creeaza un fisier nou numit index.html si scrie urmatorul cod de baza. Acesta integreaza tot ce ai invatat in Lectiile 1-4:

<!DOCTYPE html>
<html lang="ro">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Site-ul Meu - Acasa</title>
  <link rel="stylesheet" href="stil.css">
</head>
<body>

  <header>
    <h1>Bine ai venit pe site-ul meu!</h1>
    <nav>
      <a href="index.html">Acasa</a>
      <a href="despre.html">Despre</a>
    </nav>
  </header>

  <main>
    <h2>Prezentare</h2>
    <p>Acesta este site-ul meu personal. Aici vei gasi informatii despre mine si interesele mele.</p>

    <h2>Interese</h2>
    <ul>
      <li>Informatica</li>
      <li>Sport</li>
      <li>Muzica</li>
    </ul>
  </main>

  <footer>
    <p>&copy; 2026 Site-ul Meu</p>
  </footer>

</body>
</html>

Observa structura semantica:

  • <header> β€” antetul paginii cu titlul si meniul de navigare
  • <nav> β€” zona de navigare cu link-uri catre celelalte pagini
  • <main> β€” continutul principal al paginii
  • <footer> β€” subsolul cu informatii de copyright

Tag-urile semantice (header, nav, main, footer) au doua avantaje importante: (1) fac codul mai usor de inteles pentru orice programator care il citeste, si (2) ajuta motoarele de cautare (Google) sa inteleaga structura site-ului. In Lectia 1 ai invatat structura de baza β€” acum o aplicam intr-un context real.

Salveaza fisierul si deschide-l in browser. Ar trebui sa vezi un titlu, un meniu cu doua link-uri (Acasa si Despre) si continutul de sub el β€” fara stiluri deocamdata, dar functional.

Cum legam un fisier CSS extern la o pagina HTML?
A Scriem CSS direct in tag-ul <body>
B Folosim <link rel="stylesheet" href="stil.css"> in sectiunea <head>
C Apasam butonul CSS din browser
3

Construim a doua pagina (despre.html)

Creeaza un al doilea fisier, despre.html, in acelasi folder ca index.html. Acesta trebuie sa aiba aceeasi structura si sa refere acelasi fisier CSS:

<!DOCTYPE html>
<html lang="ro">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Site-ul Meu - Despre</title>
  <link rel="stylesheet" href="stil.css">
</head>
<body>

  <header>
    <h1>Bine ai venit pe site-ul meu!</h1>
    <nav>
      <a href="index.html">Acasa</a>
      <a href="despre.html">Despre</a>
    </nav>
  </header>

  <main>
    <h2>Despre Mine</h2>
    <p>Sunt elev in clasa a VIII-a. Imi place informatica si am invatat sa construiesc pagini web!</p>

    <h2>Ce am invatat</h2>
    <ol>
      <li>Structura HTML (DOCTYPE, head, body)</li>
      <li>Texte, titluri si liste</li>
      <li>Imagini si link-uri</li>
      <li>Stilizare cu CSS</li>
      <li>Layout cu Flexbox</li>
    </ol>

    <a href="index.html">Inapoi la pagina principala</a>
  </main>

  <footer>
    <p>&copy; 2026 Site-ul Meu</p>
  </footer>

</body>
</html>

Observa ca:

  • Link-urile din <nav> folosesc cai relative (fara https://). Scriem href="index.html", nu href="https://...". Caile relative functioneaza atat local (pe calculatorul tau) cat si pe server, pentru ca ele sunt interpretate relativ la locul fisierului curent.
  • Ambele pagini includ acelasi meniu de navigare. Aceasta este practica standard: vizitatorul poate naviga intre pagini de oriunde se afla pe site.
  • Ambele pagini refera acelasi fisier CSS (href="stil.css"). Orice schimbare in stil.css va afecta ambele pagini simultan.

Testeaza navigarea: deschide index.html in browser, apasa "Despre" β€” ar trebui sa se deschida despre.html. Apasa "Acasa" β€” te intoarce la index.html. Navigarea functioneaza complet local, fara internet!

Cum facem link intre doua pagini ale aceluiasi site?
A Nu se pot lega paginile unui site
B Scriem adresa completa https://...
C Folosim href cu calea relativa: href="despre.html"
4

Adaugam stilizarea CSS (stil.css)

Creeaza fisierul stil.css in acelasi folder. Acesta va stiliza ambele pagini HTML. Scrie urmatorul cod CSS care integreaza conceptele din Lectiile 4 si 5:

/* === RESET DE BAZA === */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* === BODY - fundal si font === */
body {
  font-family: Arial, sans-serif;
  background-color: #f5f5f5;
  color: #333333;
  line-height: 1.6;
}

/* === HEADER === */
header {
  background-color: #2c3e50;
  color: white;
  padding: 1rem 2rem;
}

header h1 {
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
}

/* === NAVIGARE (Flexbox) === */
nav {
  display: flex;
  gap: 1rem;
}

nav a {
  color: #ecf0f1;
  text-decoration: none;
  padding: 0.3rem 0.8rem;
  border-radius: 4px;
}

nav a:hover {
  background-color: #3498db;
}

/* === CONTINUT PRINCIPAL === */
main {
  max-width: 800px;
  margin: 2rem auto;
  padding: 0 1rem;
}

main h2 {
  color: #2c3e50;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

main p {
  margin-bottom: 1rem;
}

main ul, main ol {
  margin-left: 2rem;
  margin-bottom: 1rem;
}

main li {
  margin-bottom: 0.3rem;
}

/* === LINK-URI IN CONTINUT === */
main a {
  color: #3498db;
}

main a:hover {
  text-decoration: underline;
}

/* === FOOTER === */
footer {
  background-color: #2c3e50;
  color: #bdc3c7;
  text-align: center;
  padding: 1rem;
  margin-top: 3rem;
}

Acest CSS integreaza cunostintele din Lectiile 4 si 5:

  • Lectia 4 (CSS intro): selectori, culori de fundal si text, fonturi, margini, border-radius
  • Lectia 5 (Layout): box-sizing: border-box, display: flex, gap, max-width, margin: auto pentru centrare
  • Lectia 3 (Linkuri): stilizarea link-urilor cu color si :hover

Salveaza fisierul si reincarca index.html in browser. Acum ar trebui sa vezi: un header inchis la culoare cu titlul in alb, un meniu de navigare orizontal, continut centrat cu margini corespunzatoare si un footer in partea de jos.

Ce proprietate CSS face ca elementele <nav> sa fie aranjate pe un rand orizontal?
A display: flex
B color: blue
C margin: auto
5

Verificarea finala inainte de publicare

Inainte sa consideri site-ul gata, parcurge aceasta lista de verificare. Fiecare punct corespunde unui criteriu din rubrica de evaluare a programei (structura, continut, navigare, aspect):

STRUCTURA:
[ ] Folderul proiectului contine: index.html, despre.html, stil.css
[ ] Pagina principala se numeste exact "index.html"
[ ] Ambele pagini HTML au DOCTYPE, <head> cu charset si <title>, si <body>
[ ] Fisierul CSS este extern (nu inline) si e referenciat din ambele pagini

CONTINUT (Lectiile 2 si 3):
[ ] Fiecare pagina are cel putin un titlu h1 sau h2 si un paragraf <p>
[ ] Exista cel putin o lista (ul sau ol) pe una din pagini
[ ] Alt text (atribut alt) la imagini, daca ai adaugat imagini

NAVIGARE (Lectia 3):
[ ] Link-ul "Despre" din index.html deschide corect despre.html
[ ] Link-ul "Acasa" din despre.html se intoarce corect la index.html
[ ] Link-urile folosesc cai relative (fara https://)

ASPECT (Lectiile 4 si 5):
[ ] CSS-ul se aplica pe ambele pagini (culorile si fontul se vad)
[ ] Header-ul si footer-ul arata identic pe ambele pagini
[ ] Meniul de navigare este orizontal (display: flex functioneaza)
[ ] Textul este lizibil (contrast suficient intre text si fundal)

Daca toate punctele sunt bifate, site-ul tau este complet si gata de publicare. In Lectia 6 vei invata exact cum sa il pui pe internet, astfel incat oricine din lume sa il poata vedea.

Sfat profesionist: testeaza site-ul si in modul mobil. Apasa F12 in browser, apoi iconita de telefon din bara de sus a Developer Tools, si verifica ca textul este lizibil si meniul functioneaza pe un ecran mic.

Ce verifici INAINTE de a considera site-ul gata?
A Ca fisierul CSS are exact 100 linii
B Ca site-ul este publicat pe internet
C Ca toate paginile se deschid, link-urile functioneaza si aspectul este corect

Exercitii practice

Exercitiul 1 (Nivel minim) - Proiect ghidat

Urmeaza pasii din aceasta lectie si construieste un site cu doua pagini despre un subiect la alegere (orasul tau, un sport, un animal, un joc, un muzician). Respecta structura: folder, index.html, despre.html, stil.css.

Cerinte obligatorii:

Trimite profesorului folderul comprimat (zip) cu cele 3 fisiere. Profesorul va deschide index.html si va verifica navigarea si aspectul.

Vezi rezolvarea

Rezolvare model, subiect ales: fotbalul.

Fisiere: site-fotbal/ cu index.html, despre.html, stil.css.

  1. index.html: <header> cu <h1>Fotbal - Pasiunea Mea</h1> si <nav> cu doua linkuri: <a href="index.html">Acasa</a> si <a href="despre.html">Despre</a>. In <main>, un <h2> si un <p> de prezentare. In <footer>, <p>&copy; 2026</p>.
  2. despre.html: acelasi header si nav (copiate identic), continut diferit in main (de exemplu istoricul echipei preferate), acelasi footer.
  3. stil.css: linkat in ambele pagini cu <link rel="stylesheet" href="stil.css"> in <head>. Minim o culoare de fundal: body { background-color: #eef6ff; }.
  4. Verificare: deschizi index.html, dai clic pe "Despre" - trebuie sa te duca la despre.html, si invers cu "Acasa".

Exercitiul 2 (Nivel standard) - Site extins

Extinde site-ul de la exercitiul 1 cu elemente suplimentare care demonstreaza competentele din toate cele 5 lectii anterioare.

Cerinte obligatorii:

⭐ Bonus (pentru nota maxima):

  • Adauga o a treia pagina (ex: contact.html) cu un formular simplu <form> cu campuri de text
  • Foloseste variabile CSS (--culoare-principala: #2c3e50) pentru a controla schema de culori din un singur loc
  • Adauga sectiuni cu carduri stilizate (border, padding, border-radius) aranjate cu Flexbox

Salveaza folderul ca "proiect-sinteza-[numetau].zip" si trimite-l profesorului. Site-ul trebuie sa functioneze complet la deschiderea locala a fisierului index.html.

Vezi rezolvarea

Rezolvare model - extinderi pe site-ul din exercitiul 1:

  1. Imagine cu alt: <img src="minge.jpg" alt="Minge de fotbal pe iarba"> in pagina despre.html.
  2. Link extern: <a href="https://www.frf.ro" target="_blank">Federatia Romana de Fotbal</a> - se deschide in tab nou datorita target="_blank".
  3. Doua stiluri CSS: header { background-color: #2c3e50; color: white; } si main { font-family: Arial, sans-serif; border-radius: 8px; }.
  4. Nav cu flex: nav { display: flex; gap: 1rem; } - linkurile stau pe un rand, cu spatiu intre ele.
  5. Footer distinct: footer { background-color: #ecf0f1; text-align: center; padding: 1rem; }.

Bonusul (a treia pagina, variabile CSS, carduri) e optional - daca il faci, foloseste :root { --culoare-principala: #2c3e50; } pentru variabila de culoare.

Exercitiul 3 (Nivel performanta) - Compunere

Cerinta: Scrie un text de 8-10 randuri in care descrii site-ul construit: ce subiect ai ales, cum ai organizat fisierele, ce tag-uri HTML ai folosit si de ce, ce stiluri CSS ai aplicat si cum. Mentioneaza explicit cum ai integrat cunostintele din fiecare lectie (1-5) in produsul final.

Indicii pentru structurarea raspunsului:

  • Descrie structura de fisiere (cate fisiere, ce rol are fiecare)
  • Explica de ce ai ales tag-urile semantice (header, nav, main, footer)
  • Descrie cum functioneaza navigarea intre pagini cu cai relative
  • Explica avantajul fisierului CSS extern (modifici un singur loc, se aplica pe tot)
  • Mentioneaza ce tehnici de layout ai folosit si ce efect au

Cuvinte cheie de folosit: index.html, cale relativa, CSS extern, header, nav, main, footer, display: flex, gap, border-radius, verificare, navigare

Format: Scrie raspunsul intr-un document (Word sau text), folosind paragrafe coerente. Salveaza si trimite profesorului impreuna cu folderul proiectului.

Vezi rezolvarea

Schita de rezolvare (nu textul integral - il scrii tu):

  1. Paragraf 1: ce subiect ai ales si de ce.
  2. Paragraf 2: structura fisierelor - cate fisiere, ce rol are fiecare (index.html, despre.html, stil.css).
  3. Paragraf 3: ce tag-uri semantice ai folosit (header, nav, main, footer) si de ce ajuta la organizare.
  4. Paragraf 4: cum functioneaza navigarea cu cai relative intre pagini.
  5. Paragraf 5: ce CSS ai aplicat (culori, flex pe nav) si avantajul fisierului extern (modifici un loc, se aplica peste tot).

Criterii de evaluare: claritate (se intelege ce ai facut fara sa vezi codul), acuratete tehnica (folosesti corect termenii din cuvintele cheie), completitudine (mentionezi toate cele 5 lectii), lungime 8-10 randuri.

Ce ai realizat astazi

  • Ai planificat structura de fisiere a unui site real (folder, index.html, despre.html, stil.css)
  • Ai construit doua pagini HTML cu structura semantica (header, nav, main, footer)
  • Ai realizat navigarea intre pagini cu link-uri cu cai relative
  • Ai aplicat un fisier CSS extern care stilizeaza ambele pagini simultan
  • Ai integrat cunostintele din Lectiile 1-5 intr-un produs complet si functional
  • Ai verificat site-ul cu o lista de criterii (structura, continut, navigare, aspect)

Vrei mai mult?

Provocare: Adauga o A TREIA pagina la site-ul tau (de exemplu galerie.html), leag-o in <nav> pe AMBELE pagini existente (index.html si despre.html), si nu uita sa legi acelasi fisier CSS extern ca la celelalte doua pagini. Verifica: din oricare din cele 3 pagini poti ajunge la celelalte doua printr-un singur click?

De ce? Daca uiti sa legi fisierul CSS in noua pagina galerie.html, browserul NU iti da nicio eroare - pagina se deschide normal, dar arata complet nestilizata (text negru pe fundal alb). De ce nu exista un mesaj de avertizare pentru o legatura CSS care lipseste?

Deschidere: Cand un site are 20 sau 50 de pagini, copierea aceluiasi <nav> in fiecare fisier HTML devine greu de intretinut - daca adaugi un buton nou in meniu, trebuie sa modifici toate fisierele manual. Din acest motiv, dezvoltatorii profesionisti folosesc generatoare de site-uri statice (ca Eleventy sau Jekyll), care construiesc automat toate paginile dintr-un singur fisier de meniu comun.

Urmatoarea lectie

Site-ul tau este gata! In Lectia 6 vei invata cum sa il publici pe internet, astfel incat oricine din lume sa il poata accesa.

Continua β€” Publica site-ul! β†’