Documente Academic
Documente Profesional
Documente Cultură
Alinierea elementelor
Proprietatea float
Overflow Suprapunere
Machetare Breakpoints
Tatiana Pașa, doctor în informatică
USM, Departamentul Informatică
Perechea 4
Tagurile <div>...</div> si <span>...</span> nu au efecte importante
dacă sunt folosite singure.
- Tag-ul div crează secțiuni de blocuri în pagină, al căror formă și
grafică de conținut pot fi manipulate pentru fiecare separat.
- Tag-ul span crează posibilitatea modificării separate a unei porțiuni
dintr-un context, putând fi folosit și ca o "classă" cu CSS. Singur nu are
nici un efect vizual poropriu și nu folosește nici un atribut HTML special.
<body>
<div style="background:#abcdef; margin:1px auto; padding:2px; width:200px;">Div centrat:<br />
margin:1px auto;</div>
<div style="background:#efcdab; margin-left:1px; margin-right:auto; padding:2px; width:250px;">
Div aliniat stanga:<br />
margin-left:1px; margin-right:auto;</div>
<div style="background:#abefcd; margin-left:auto; margin-right:1px; padding:2px; width:250px;">
Div aliniat dreapta:<br />
margin-left:auto; margin-right:1px;</div>
</body>
Tag-ul SPAN
Cu tag-ul <span>...</span> se pot adăuga stiluri grafice unei anumite
porțiuni dintr-un context folosind proprietăți CSS adăugate cu atributul
"style" în interiorul etichetei "<span>" (sau în stil CSS).
Ex. Se încadrează cuvintele respective într-un tag SPAN căruia le sunt
adăugate proprietățile dorite:
Float se folosește pentru crearea de template-uri și galerii de imagini. Folosind atributul float
elementele vor pluti unul lângă altul sau unul în continuarea celuilalt atât cât spațiul rezervat lor o
permite. Acest tip de aliniere se referă la o alinire orizontală și nu verticală a elementelor.
Exemplu Vrem să facem o galerie de imagini Exemplu Vrem să afișăm o imagine aliniată la
(thumbs) și vrem ca imaginile în miniatură să fie dreapta sau la stânga și vrem ca aceasta să fie
afișate una lângă cealaltă în linii și coloane. înconjurată de text. float:left; sau float:right; va
float:left; va afișa thumb-urile una lângă afișa textul în stânga sau în dreapta imaginii
cealaltă pe o linie atât cât lâțimea paginii depinde de cum a fost aliniată anterior.
permite, sărind pe linia următoare atunci când img { float:left; } sau
următoarea imagine nu încape. .clasa_de_elemente { float:left; }
Toate elemenetele HTML care sunt situate după elementul aliniat cu float right sau left vor pluti
lângă acesta. Pentru a impiedica să se întâmple acest lucru atunci când nu vrem să se întâmple
vom folosi atibutul clear cu valoarea both:
.enter { clear:both; }
Deplasarea elementelor pe pagina
<html>
<head>
<style type="text/css"> Proprietatea float permite ca un element să fie
img.right { împins doar orizontal spre dreapta sau stânga,
float:right; } permițând celorlalte elemente să se organizeze în
img.left{ jurul lui. Elementele care urmează elementului
float:left; }
deplasat se vor aranja în jurul lui. Elementele
</style>
</head> dinaintea elementului deplasabil nu vor fi afectate.
<body>
<p>Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.</p>
<p> <img class="right" src="img.png" width="50" height="40" />
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar. </p>
<p> <img class="left" src="img.png" width="50" height="40" />
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar.
Un text arbitrar. Un text arbitrar. Un text arbitrar. Un text arbitrar. </p>
</body>
</html>
<html>
<head>
Galerie de imagini
<style type="text/css">
.galerie{
float:right;
width:100px;
height:100px;
margin:5px; }
</style>
</head>
<body>
<p>Galerie de imagini</p>
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
</body>
</html>
Galerie de imagini
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.galerie{
float:left;
width:200px;
height:100px;
margin:5px; }
</style>
</head>
<body>
<p>Galerie de imagini</p>
<img class="galerie" src="img1.jpg">
<img class="galerie" src="img2.jpg">
<img class="galerie" src="img3.jpg">
<img class="galerie" src="img4.jpg">
</body>
</html>
Alinierea elementelor
<html>
<head>
<style type="text/css">
.right{
float:right;
width:350px;
background-color:green; }
</style>
</head> Același efect avem și cu:
<body> position:absolute;
<div class="right"> <p>Un text Un text Un text Un text Un text Un text right:20px;
Un text Un text Un text Un text Un text Un text Un text Un text Un
text Un text Un text Un text Un text Un text Un text Un text Un text
Un text Un text Un text Un text </p> </div>
</body>
</html>
Galerie de imagini
Elementele de după un element deplasabil se vor organiza în jurul
lui. Pentru a împiedica ca elementele de după un element deplasat
să se aranjeze în jurul lui se pate folosi proprietatea clear (anulează
float) care poate specifica care laturi nu sunt permise pentru
deplasare.
<style type="text/css">
.galerie{
float:right;
width:100px;
height:100px;
margin:5px; }
.text{
clear: both;
margin-bottom:2px; }
</style>
Fara clear: both; Cu clear: right;
both;
Galerie de imagini
<html>
<head>
<style type="text/css">
.galerie{
float:left;
width:100px;
height:100px;
margin:5px; }
.text{
clear: both;
margin-bottom:2px; }
</style>
</head> <body>
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<img class="galerie" src="img.png">
<p class=".text">Galerie de imagini Galerie de imaginiGalerie de imaginiGalerie de imaGalerie de imaginiGalerie de imaginivvGalerie de
imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de
imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de
imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de
imaginiGalerie de imaginiGalerie de imaginiGalerie de imaginiGalerie de imagini</p>
</body> </html>
Galerie de imagini
<div>
<img src="img.png" width="100" height="100" /><br
/>
</div>
<p>
Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. <style type="text/css">
Text. Text. Text. Text. Text. Text. Text. Text. Text. div{
Text. Text. Text. Text. Text. Text. Text. Text. Text. float:right;
</p> width:120px;
</body> margin:10px 10px 10px 10px;
padding:10px;
border:2px dotted blue;
text-align:center; }
</style>
Overflow in CSS
a{
display:block;
width:60px;
}
Machetare
Machetarea tabelară
<table width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr colspan="2">
<td class="header" colspan="2">Header</td>
</tr>
<tr>
<td class="content">Continut</td>
<td class="sidebar">Meniu</td>
</tr>
<tr colspan="2"> Machetarea în blocuri
<td class="footer" colspan="2">Subsol</td> <div id="header">Header</div>
</tr> <div id="wrapper">
</table> <div id="content">Continut</div>
<div id="sidebar">Meniu</div>
</div>
<div id="footer">Subsol</div>
Machetare
Expresia „machetarea în blocuri” reprezintă utilizarea constructivă a etichetelor <div> și stilurilor.
Se vor respecta următoarele principii:
<html> </head>
<head> <body>
<title>Șablon de machet cu 3 coloane</title> <div id="header">Antet</div>
<style type="text/css"> <div id="content">
* { margin:0px; padding:0px; } <div id="container1">
html { height:100%; } <div id="container2">
body { min-height:100%; position:relative; min-width:800px; } <div id="container3">
* html body { height:100%; } <div id="center">Coloana din mijloc</div>
#header { background:#9393FF; height:70px; width:100%; } </div>
#content { width:100%; padding-bottom:60px; <div id="left">Coloana din stânga</div>
width:expression(document.body.clientWidth > 800 ? "100%" : </div>
"800px"); overflow:hidden; } </div>
#container1 { width:100%; float:left; margin-right:-180px; } <div id="right">Coloana din dapta</div>
#container2 { background:#000000; margin-right:180px; } </div>
#container3 { width:100%; float:right; margin-left:-200px; } <div id="footer">Copyright</div>
#left { background:#AEAE00; width:200px; float:left; } </body>
#center { background:#D86927; margin-left:200px; } </html>
#right { background:#C0C0C0; float:right; width:180px; }
#min_width { width:800px; }
#footer { position:absolute; bottom:0px; background:#8F9EB1;
width:100%; height:60px; }
</style>
Machetare HTML5
Antetul (Header)
Elementul <header>...</header> este un element structural care evidenţiază antetul
unui segment al unei pagini. Se află în cadrul elementului <body>.
Elemente de navigare
Elementul <nav>...</nav> identifică o secţiune a unei pagini, cuprinzând legăturile
principale de navigare. Elementul <nav> trebuie păstrat doar pentru secţiunile principale
de navigare, precum navigarea globală, cuprinsul, legături înainte/înapoi sau alte
legături importante.
Legăturile incluse în elementul <nav> vor trimite către alte pagini din acelaşi site web
sau spre porţiuni din aceeaşi pagină web. Legăturile utilizate mai rar nu ar trebui să se
afle în cadrul elementului <nav>, dar ar trebui să fie folosit elementul doar ancoră <a>.
Machetare HTML5
Elementul articol
Elementul <article>...</article> este folosit pentru a identifica o secţiune de
conţinut independent, complet şi care poate fi distribuit independent sau refolosit.
Elementul <article> se folosește adesea pentru a evidenţia postările pe bloguri,
articole de ziar, conţinut furnizat de utilizatori şi aşa mai departe.
Atunci când ne decidem să folosim elementul <article> trebuie să ne asigurăm
că acel conţinut poate fi copiat în altă parte a paginii fără a genera confuzii.
Dacă conţinutul din elementul <article> ar fi scos din contextul paginii şi ar fi plasat
de exemplu într-un email sau în ceva tipărit, ar trebui în continuare să aibă sens.
Machetare HTML5
Elementul Section
Elementul <section>...</section> este folosit pentru a identifica o grupare tematică de
conţinut care în general, dar nu întotdeauna include un antet. Gruparea conţinutului în
elementul <section> este de natură generică dar este foarte utilă pentru a identifica
legăturile conţinutului. Elementul <section> este folosit îndeosebi pentru a structura şi a
oferi o ierarhie pentru pagină.
Alegerea dintre elementele <article>, <section> sau <div>
Atât elementul <article> cât şi elementul <section> contribuie la structurarea unui
document şi ajută la schematizarea unui document. Dacă conţinutul este grupat numai
din motive de design şi nu oferă nici un beneficiu pentru structurarea documentului, atunci
folosiţi elementul <div>. Dacă conţinutul oferă structură documentului şi poate fi redistribuit
independent, atunci folosiţi elementul <article>. Dacă conţinutul oferă structură
documentului şi reprezintă un grup tematic de conţinut, atunci folosiţi elementul <section>.
Machetare HTML5
Elementul Aside
Elementul <aside>...</aside> încorporează așa conţinut precum barele laterale,
înserări sau scurte explicaţii care sunt legate doar tangenţial de conţinutul din jurul lor.
De exemplu, atunci când se folosesc cu un element <article>, elementul <aside>
poate identifica conţinutul legat de autorul articolului. Toate elementele structurale,
printre care şi elementul <aside> sunt elemente de nivel bloc încât vor apărea pe o
linie nouă, ocupând întreaga lăţime disponibilă a paginii sau a elementului în care se
află imbricat denumit şi element părinte.
Elementul Footer
Elementul <footer>...</footer> identifică finalul unei pagini, al unui articol, al unei
secţiuni sau al altui segment de pagină. În general elementul <footer> se află în partea
de jos a elementului părinte. Conţinutul din elementul <footer> e bine să fie format din
informaţii corelate, în legătură cu documentul sau secţiunea în care se află.
Machetarea paginilor web responsive
Folosind CSS, puteți crea un web-site adaptiv (responsive) dispozitivelor cu orice lățime a
ecranului. Folosind reguli speciale, puteți determina aspectul unei pagini web în funcție de
lățimea ferestrei browserului.
Machetarea web responsive (eng. responsive web design, RWD) este o abordare a creării de
pagini web în care aspectul este determinat prin CSS, pe baza lățimii ferestrei browserului. Acest
lucru permite oferirea unui design comod pentru orice dispozitiv, fără a fi necesară crearea mai
multor site-uri diferite.
Instrumente CSS pentru proiectare responsive
Machetarea web responsive (adaptivă) utilizează sisteme de griduri fluide, imagini flexibile
(scalabile) și interogări media pentru CSS.
• Interogări media - tehnologia CSS care permite determinarea condițiilor pentru aplicarea
anumitor stiluri pentru ecrane de anumite dimensiuni (un set de reguli CSS pentru ecrane cu o
lățime mai mică de 768 pixeli, al doilea pentru cele cu o lățime mai mare de 991 pixeli etc.).
Puteți determina tipul de dispozitiv (ecranul monitorului, imprimanta, sintetizatorul de vorbire),
raportul dintre componentele monitorului, orientarea (album sau carte), rezoluția monitorului ș.
a. Toate acestea fac posibilă crearea de stiluri specifice, având în vedere numeroasele
proprietăți.
• Griduri fluide - marcaj care se poate extinde și contracta (împreună cu conținutul), adaptându-
se la ecranul unui dispozitiv specific.
Machetarea paginilor web responsive
Interogări media Atunci când un site fără un design responsive este vizualizat pe un
dispozitiv mobil, browserul îl plasează complet în lățimea ecranului și reduce
dimensiunea paginii. Pentru a utiliza un astfel de site, utilizatorul va trebui să facă zoom
manual, precum și să deruleze pe orizontală.
În puncte de control, trebuie specificată lățimea la care desinul paginii web începe să
se rupă. Fie că aveți un site cu un container cu o lățime de 1180 pixeli. Atunci, într-o
fereastră cu lățimea de 1200 de pixeli (luăm în considerare bara de defilare) sau mai puțin,
cel mai probabil nu va arăta foarte bine, deci acesta este primul punct de control unde
trebuie făcute modificări ale designului în caz că site-ul este vizualizat într-o fereastră cu o
lățime mai mică de 1200 pixeli.
Sintaxa CSS:
@media not|only mediatype and (mediafeature and|or|not mediafeature)
{CSS-Code;}
not inversează semnificația unei interogări media.
only: împiedică browserele mai vechi care nu acceptă interogările media cu
caracteristici media să aplice stilurile specificate. Nu are niciun efect asupra browserelor
moderne.
and: combină o caracteristică media cu un tip media sau alte caracteristici media.
Toate sunt opționale. Cu toate acestea, dacă utilizați not sau only, trebuie să specificați și
un tip de suport.
Pot fi aplicate foi de stil diferite pentru diferite medii, cum ar fi:
<link rel="stylesheet" media="screen and (min-width: 1200px)" href=“largescreen.css">
<link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css">
Breakpoints
Tipuri media:
all Implicit, folosit pentru toate dispozitivele de tip media.
print - pentru imprimante.
screen - pentru monitoare, tablete, telefoane, etc.
speech - pentru cititoarele de ecran care „citesc” pagina cu voce tare.
Valori media:
height - înălțimea ferestrei
max-height - înălțimea maximă a zonei de afișare, cum ar fi o fereastră de browser
min-height - înălțimea minimă a zonei de afișare, cum ar fi o fereastră de browser
width - lățimea ferestrei
max-width - lățimea maximă a zonei de afișare, cum ar fi o fereastră de browser
min-width - lățimea minimă a zonei de afișare, cum ar fi o fereastră de browser
orientation - orientarea ferestrei (modul landscape sau portrait)
Breakpoints
Plasați stilurile CSS în parantezele
interogării media:
Este recomandabil să plasați toate
interogările media sub stilurile obișnuite, și nu
@media (min-width: 576px) {
deasupra acestora.
.m576 {
Dacă utilizați puncte de control, pornind de
width: 100%;
la lățimea minimă a ecranului min-width,
}
așezați-le în ordinea crescătoare a lățimii
h1 {
ecranului.
font-size: 24px;
Dacă utilizați max-width, atunci aranjați
}
interogările media în ordinea descrescătoare a
p{
lățimii.
color:blue;
În caz contrar, unele interogări media le vor
}
suprascrie pe cele anterioare.
...
}
Breakpoints
<!DOCTYPE html>
<html> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
div { background-color: beige; padding: 20px;}
.break { padding: 20px; color: white; border: 1px;}
/* Mobile cu < 600px */
@media only screen and (max-width: 600px) { .break {background: red; font-size: 15px;}
div { display: none;}}
/* Portrait pentru tablete si mobile cu > 600px */
@media only screen and (min-width: 600px) { .break {background: green; font-size: 18px;}}
/* Tablete landscape cu > 768px */
@media only screen and (min-width: 768px) { .break {background: blue; font-size: 21px;}}
/* Laptopuri si monitoare cu > 992px */
@media only screen and (min-width: 992px) { .break {background: orange; font-size: 23px;}}
/* laptopuri si monitoare cu > 1200px */
@media only screen and (min-width: 1200px) { .break {background: pink;}}
</style>
</head>
<body>
<div>Continutul unui DIV.</div>
<h1 class="break">Daca este redimensionata fereastra browserului se vede efectul care presupune
schimbarea culorii de fundal si a marimii textului in dependenta de dimensiune. </h1>
</body> </html>
Breakpoints
Breakpoints
<!DOCTYPE html>
<html> <head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* { box-sizing: border-box;}
/* Sunt create doua doua elemente aranjate una langa alta */
.elem { float: left; width: 50%; padding: 25px; }
body {background-color: aqua;}
/* Se anuleaza float : left; */
.row::after { clear: both; }
/* Pentru ecrane de dimensiunea < 600px elementele se pozitioneaza unul sub altul, fiecare ocupa
100% din pagina si se modifica culoarea de fundal */
@media screen and (max-width: 600px) { .elem { width: 100%; } body {background-color: yellow;} }
</style> </head>
<body>
<div class="row">
<div class="elem" style="background-color: red;">
<h1>Elementul 1</h1> <p>Continutul elementului1</p>
</div>
<div class="elem" style="background-color:blue;">
<h1>Elementul 2</h1> <p>Continutul elementului 2</p>
</div>
</div>
</body> </html>
Breakpoints