foi de stiluri css – concepte esențiale (...și puțin mai mult)

93
Dr. Sabin Buraga Facultatea de Informatică, UAIC – Iași, România profs.info.uaic.ro/~busaco/ Foi de stiluri CSS concepte esențiale (…și puțin mai mult)

Upload: sabin-buraga

Post on 23-Feb-2017

1.279 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Dr. Sabin BuragaFacultatea de Informatică, UAIC – Iași, România

profs.info.uaic.ro/~busaco/

Foi de stiluri CSS

concepte esențiale(…și puțin mai mult)

Page 2: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

În „antichitate” (până la sfârșitul secolului XX), un document HTML includea atât conținut

hipermedia – i.e. datele propriu-zise + legături spre alte resurse –, cât și marcaje indicând modul

de redare a acestuia de către navigatorul Web

Page 3: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

<TITLE>HTML pre-CSS</TITLE><BODY BGCOLOR=white TEXT=#336633 LINK=black VLINK=green><CENTER><H1><FONT COLOR=#009900>HTML pre-CSS</FONT></H1><HR SIZE=3 WIDTH=50%><P ALIGN=center><I>Web-ul antic</I> era

<B><FONT FACE=Courier SIZE=5>diferit</FONT></B>de cel actual.</P><HR SIZE=7 WIDTH=70%>

<DIV><SMALL>Amintirile din 1996 ale lui <A HREF=http://profs.info.uaic.ro/~busaco>Sabin Buraga</A></SMALL></DIV>

Page 4: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Există o modalitate de

a asocia paginilor Web

stiluri de redare

(prezentare)

a conținutului?

Page 5: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Cascading Style Sheets

suită de specificații ale Consorțiului Web

autori inițiali: Håkon Wium Lie & Bert Bos (1996)

www.w3.org/Style/CSS/

Page 6: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Foi de stiluri CSS

grupuri de proprietăți determinând redarea unor elemente (marcaje) specifice

asociate unor limbaje de marcare:HTML (HyperText Markup Language)

SVG (Scalable Vector Graphics)XML (Extensible Markup Language)

Page 7: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Foi de stiluri CSS

asigură separarea conținutului– i.e. modelul & structura datelor –

de maniera de formatare (prezentare)

„îmbrăcăminte” pentru paginile Web

Page 8: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

fără CSS

cu CSS

Page 9: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

1 foaie de stiluri CSSN documente HTML

se menține consistența redării(look & feel)

pentru documente multiple

Page 10: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

N foi de stiluri CSS1 document HTML

formatări diferiteîn funcție de mediile

de redare – e.g., ecran(e), imprimantă, TV,... –

sau de preferințe(de pildă, teme cromatice)

Page 11: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

formatarea e bazată pe „cutii” – box model

margine (margin)chenar (border)

zonă de „umplutură” (padding) conținut propriu-zis

Page 12: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

formatarea e bazată pe „cutii” – box model

margine (margin)chenar (border)

zonă de „umplutură” (padding) conținut propriu-zis

poziționare (position) – relativă ori absolutălățime (width)

înălțime (height)strat de redare (z-index)

Page 13: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

formatarea e bazată pe „cutii” – box model

Page 14: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

formatarea e bazată pe „cutii” – box model

margine (margin)chenar (border)

zonă de „umplutură” (padding) conținut propriu-zis

poziționare (position) – relativă ori absolutălățime (width)

înălțime (height)strat de redare (z-index)

distanțele față de marginile containerului-părinte: la stânga (left), la dreapta (right),

de sus (top), de jos (bottom)

Page 15: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

terminologie

h1 { color: blue; font-size: 16pt; }

selector

declarație declarație

proprietate

valoare

Page 16: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

local – la nivelul unui marcator via atributul style

<h1 style="color: green; text-align: center;font-family: sans-serif;text-decoration: overline underline;">

HTML + CSS intern</h1><p style="color: black; text-align: center;

font-family: serif;">Stiluri de redare proprii unui element HTML.

</p>

Page 17: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

local – la nivelul unui marcator via atributul style

<h1 style="color: green; text-align: center;font-family: sans-serif;text-decoration: overline underline;">

HTML + CSS intern</h1><p style="color: black; text-align: center;

font-family: serif;">Stiluri de redare proprii unui element HTML.

</p>

Page 18: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

local – gruparea declarațiilor CSS în antetuldocumentului HTML folosind elementul <style>

<head><style type="text/css">

body { background: white; color: sienna; }p { padding-left: 0.3em;

border-left: 3px solid gray; }</style>

</head><body><p>CSS e minunat!?</p><p>Desigur.</p>

</body>

Page 19: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

local – gruparea declarațiilor CSS în antetuldocumentului HTML folosind elementul <style>

<head><style type="text/css">

body { background: white; color: sienna; }p { padding-left: 0.3em;

border-left: 3px solid gray; }</style>

</head><body><p>CSS e minunat!?</p><p>Desigur.</p>

</body>

Page 20: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

extern – definițiile de stiluri sunt stocate într-un fișier text (mai general, o resursă Web

desemnată de un URL – Uniform Resource Locator)

<head><link rel="stylesheet"

type="text/css" href="web.css" />

...</head>

tip MIME

URL

Page 21: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

<!-- stiluri implicite, pentru redarea pe ecran, proiector sau TV -->

<link href="../CSS/default"media="screen, projection, tv" rel="stylesheet" title="Tema implicită" />

<!-- stiluri alternative (aici: temă cromatică) --><link href="../CSS/green"

media="screen, projection, tv" rel="alternate stylesheet" title="Verde" />

<!-- stiluri specifice pentru tipărire --><link href="../CSS/twocolumn-print"

media="print" rel="stylesheet" />

foi de stiluri CSS multiple, folosite în funcție de mediul de redare și/sau de preferințele utilizatorului

Page 22: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

extern – importarea foilor de stiluri(disponibile pe aceeași mașină sau la distanță via URL)

prin utilizarea directivei @import

<style type="text/css">@import url('https://www.w3.org/StyleSheets/base');@import url('styles/typography.css');@import url('styles/layout.css');@import url('styles/fineprint.css') print;</style>

developer.mozilla.org/Web/CSS/@import

Page 23: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

moduri de utilizare

extern – importarea foilor de stiluri(disponibile pe aceeași mașină sau la distanță via URL)

prin utilizarea directivei @import

<style type="text/css">@import url('https://www.w3.org/StyleSheets/base');@import url('styles/typography.css');@import url('styles/layout.css');@import url('styles/fineprint.css') print;</style>

construcția @ este denumită regulă CSS (at-rule)http://devdocs.io/css/at-rule

Page 24: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

stiluripredefinite

browser

stiluri preluate din fișier(e) CSS atașat(e)

fișier(e) CSS

stiluri specificateîn antetul HTML

pag. Web

stiluri precizate via atributul style

elem. individual

dom

inan

ța î

n c

adru

l ca

scad

eicascada: fiecare nivel superior suprascrie

declarațiile de stiluri ale nivelului anterior

https://docs.webplatform.org/wiki/tutorials/inheritance_and_cascade

Page 25: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

<head><!-- folosim o foaie CSS externă preluată de la un URL --><link rel="stylesheet" type="text/css"

href="https://www.w3.org/StyleSheets/base.css" /><!-- includem o foaie CSS stocată în același director

cu acest document HTML --><link rel="stylesheet" type="text/css" href="web.css" /><style type="text/css">/* suprascriem stiluri, folosind declarații locale în <head> */body { background-color: white; }h1 { text-emphasis: sesame darkgreen; }.text { text-emphasis-color: gray; text-decoration: underline;

letter-spacing: 0.3em; }</style></head><body><h1 class="text">Cascada

<span style="color: green; text-emphasis-style: '\2605';">CSS</span>...?

</h1></body>

http://profs.info.uaic.ro/~busaco/teach/labs/css/

Page 26: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Cum selectăm (grupuri de)

elemente HTML

pentru a oferi diverse

moduri de redare?

Page 27: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

privind elementele HTML

un singur element:

article {width: 40em; margin: 0 auto;font-size: 2em;color: navy;background-color: lightgray;

}

Page 28: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

privind elementele HTML

toate elementele:

* { margin: 0;

}

pentru valori nule nu trebuie precizată unitatea de măsură

Page 29: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

privind elementele HTML

mai multe elemente:

h2, h3 {color: black;font-variant: small-caps;

}

Page 30: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

o serie de proprietăți pot fi aplicate unei clase(grup) de elemente

.intens {font-weight: bolder; color: green;

}

Page 31: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

o serie de proprietăți pot fi aplicate unei clase(grup) de elemente

.intens {font-weight: bolder; color: green;

}

utilizare în HTML prin intermediul atributului class

<h1 class="intens">Îngroșat și verde.</h1><p class="intens">Și eu-s îngroşat și verde.</p>

Page 32: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

stabilirea de proprietăți de stil pentru elemente identificate unic

#intens {font-weight: bolder; color: green;

}

Page 33: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

stabilirea de proprietăți de stil pentru elemente identificate unic

#intens {font-weight: bolder; color: green;

}

documentul HTML va include un singur element identificat prin valoarea atributului id

<div id="intens">Doar eu voi fi îngroșat și verde.

</div>

Page 34: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

aplicarea de stiluri în funcție de contextul de apariție

section emsection îl are ca descendent pe em

exemplu:

section em { color: blue; }...

<section><div>Text albastru <em>doar aici</em>.</div><p><em>Acesta este oare albastru?</em></p>

</section>

Page 35: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Page 36: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

aplicarea de stiluri în funcție de contextul de apariție

section > emsection îl are ca element-copil pe em

exemplu:

section > em { color: blue; }p > em { color: green; }

...<section>

<div>Text albastru <em>doar aici</em>.</div><p><em>Acesta este oare albastru?</em></p>

</section>

Page 37: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

body este element-copil al lui htmldiv este element-copil al lui section

relație părinte-copilîntre elementele HTML

Page 38: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

aplicarea de stiluri în funcție de contextul de apariție

div + pdiv este urmat imediat de elementul p (siblings)

exemplu:

div + p { color: blue; }...

<section><div>Text albastru <em>doar aici</em>.</div><p><em>Acesta este oare albastru?</em></p>

</section>

Page 39: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

inspectarea proprietăților CSS via instrumentele

pentru dezvoltatori oferite de browser

a se experimenta și extensia Firebuggetfirebug.com

Page 40: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

pseudo-clase

clase speciale, disponibile la nivel de navigator Web

uzual, asociate cu legăturile hipermedia – elementul a:link :visited :active :hover

a:link { color: red; }a:active { font-weight: bold; }a:visited img { border-style: dashed; }a:hover { text-decoration: underline overline; }

p:hover { font-size: +150%; background: lightyellow; }

Page 41: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

pseudo-clase

clase speciale, disponibile la nivel de navigator Web

vizând interacțiunea cu utilizatorule.g., câmpurile unui formular – elementul input

:checked :focus :invalid :valid :required

:focus {background-color: lightgray;

}

Page 42: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

pseudo-elemente

desemnează fragmente speciale de conținut

::first-letter ::first-line ::after ::before ::selection

/* elem. <h2> au ca prefix caract. Unicode ‘❀ ’ */h2::before { content: "\2740\ "; }/* prima linie va fi indentată – aliniat */p::first-line { text-indent: 5%; }/* prima literă va fi mai mare – letrină */p::first-letter { font-size: 250%; float: left; }

Page 43: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

* {font-family: serif;text-align: justify;width: 15em;

}p::first-letter { font-size: 250%;font-style: italic; float: left; color: navy;padding: 0.2em;margin: 0.2em;text-shadow:

2px 2px 5px gray;}p::after {content: "\2605";

}

letrină

https://jsfiddle.net/busaco/ewby10jd/

Page 44: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

exemplul #1:

„înfrumusețarea”

unui formular Web

Page 45: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

<form method="get" action="javascript:alert('De implementat...');">

<fieldset><legend>Identitatea participantului</legend><label for="identitate">Identitate:</label><input type="text" id="identitate" />

</fieldset><fieldset><legend>Contact</legend><label for="adr">Adresa de e-mail:</label><input type="email" required="required" id="adr" />

</fieldset><fieldset id="evenim"><legend>Excursie</legend><label for="excursie">Participare la excursie?</label><input type="checkbox" id="excursie" />Desigur, particip!

</fieldset><input type="submit" value="Trimite datele" />

</form>

un formular HTML folosit pentru a prelua valori ale unor câmpuri privind participarea la un eveniment

Page 46: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

input[type='email']:invalid { /* selecție bazată pe atribut */background: linear-gradient(to right,red,orange,salmon); color: yellow;

}:focus {

background-color: lightgray;}#evenim::before {content: '\2691'; /* caracterul ‘⚑’ */float: left;padding-right: 0.3em;

}input[type='submit'] {

margin-top: 1em;background: lightgreen;padding: 0.5em;border: thin solid green;

}input[type='submit']:hover {

color: white;background: linear-gradient(to bottom, darkgreen, rgba(0,127,0,0.5));

}

diverse definiții de stiluri ce recurg – printre altele –

la funcții CSS

aici, funcțiile linear-gradient() și rgba()

Page 47: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

un posibil rezultat al completării formularului Web

de studiat codul-sursă disponibil onlineîn cadrul editorului JSFiddle

https://jsfiddle.net/busaco/mcw465uv/

Page 48: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

exemplul #2:

redarea datelor

structurate tabelar

Page 49: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

tabel HTML incluzând date despre unele personalități

<table><caption>Persoane importante ale Web-ului</caption><thead><tr><th>Identitate</th><th>Magie</th></tr></thead><tbody>

<tr><td id="tbl">Tim Berners-Lee</td><td>inventator al Web-ului (inclusiv HTML, URI, HTTP)</td>

</tr>...<tr><td>Bert Bos</td><td>co-inventator al CSS</td>

</tr><tr><td>Dave Raggett</td><td></td>

</tr></tbody></table>

exemplul complet e disponibil lahttps://jsfiddle.net/busaco/omukjjey/

Page 50: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

td#tbl::before { /* plasăm un șir de caractere ca prefix */content: "Sir ";

}tr:nth-child(even) { /* rândurile pare vor fi redate diferit */

background: linear-gradient(to top, darkgray, silver);}tr td:first-child { /* prima celulă a fiecărui rând... */

text-align: center;width: 33%;font-variant: small-caps;color: rgb(0, 127, 30);

}tr td:last-child { /* ultima celulă a fiecărui rând... */

font-style: italic;width: auto;

} td:empty::after { /* o celulă vidă are conținut predefinit */

content: "detalii la https://www.w3.org/People/";}/* ghilimele pt. textul din ultima celulă a antetului de tabel*/thead th:last-child::before { content: open-quote; }thead th:last-child::after { content: close-quote; }

Page 51: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Page 52: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

exemplul #3:

selectarea

(puțin) mai

complexă

a elementelor

Page 53: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

varianta actuală poate fi consultată pe Web lahttp://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html

considerăm documentul HTML stocat în memorie ca arbore DOM

(Document Object Model)

Page 54: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Ce efect are fragmentul CSS?

section[id*="week"] > * > li:not(:nth-child(3n)) {border: 2px solid rgb(200, 200, 170);border-radius: 0.3em;background: rgba(200, 200, 170, 0.5);

}

Page 55: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Page 56: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

CSS Dinerexerciții amuzante privind selectorii CSS

flukeout.github.io

Page 57: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selectori CSS

pentru amănunte, de parcurs resursele Web:

CSS Selectors – MDN (Mozilla Developer Network)developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors

An Ultimate Guide to CSS Pseudo-Classes &Pseudo-Elements – Smashing Magazine (2016)

www.smashingmagazine.com/2016/05/an-ultimate-guide-to-css-

pseudo-classes-and-pseudo-elements/

CSS3 Selectors – recomandare W3C (2011)https://www.w3.org/TR/css3-selectors/

Page 58: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Niște amănunte

despre valorile

proprietăților CSS?

Page 59: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selector { proprietate: valoare; }

definită de diverse specificații ale Consorțiului Web

Page 60: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

selector { proprietate: valoare; }

definită de diverse specificații ale Consorțiului Web

valorile pot fi:

constante predefinite

șiruri de caracteredelimitate de apostrofuri sau ghilimele

numere (întregi, fracționare, în baza 16)absolute – conform unor unități de măsură – vs. relative

rezultate ale unor funcții CSS

Page 61: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

constante CSS predefinite

nume de culoriaqua, crimson, gold, lime, navy, plum, tan, teal, tomato,…

http://www.cssportal.com/css3-color-names/

Page 62: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

serif

sans-serif

cursive

fantasy

monospace

familii de corpuri de literă (fonturi) – www.cssfontstack.comfont-family: Constantia, Garamond, serif;

Page 63: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

constante CSS predefinite

stiluri de fonturi: normal, italic, obliquehttps://developer.mozilla.org/en/docs/Web/CSS/font-style

grosimea corpului de literă: bold, bolder, light, lighter,…https://developer.mozilla.org/en/docs/Web/CSS/font-weight

dimensiunea fontului: x-small, small, medium, large etc.https://developer.mozilla.org/en/docs/Web/CSS/font-size

Page 64: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

constante CSS predefinite

tipuri de alinieriorizontale: left, right, center, justify

https://developer.mozilla.org/en-US/docs/Web/CSS/text-align

http://howtocenterincss.com/

verticale: baseline, sub, sup, middle, top, bottom,…https://developer.mozilla.org/en/docs/Web/CSS/vertical-align

stiluri de chenar – exemple: dashed, dotted, solid, nonehttps://developer.mozilla.org/en/docs/Web/CSS/border-style

…și multe altele

Page 65: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

constante CSS predefinite

tipuri de aranjament vizual – layout modeafișare a „cutiilor” de conținut via proprietatea display

documentul în ansamblu – blocktextul din cadrul unei „cutii” – inline

conținutul tabelar – table, table-row, table-column,…elemente de sine-stătătoare, poziționate fix/relativ

elemente dintr-o interfață Web, aranjate flexibil – flexboxcaroiaj de informații – grid

https://developer.mozilla.org/Web/CSS/Layout_mode

Learn CSS Layout – http://learnlayout.com/toc.html

Page 66: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

section {display: table;border: 1px solid gray;width: 100%;

}ol {

display: table-row;}li {

display: table-cell;width: 25%;text-align: center;

}li:nth-child(odd) {

background-color: #CFC;}

<section><ol><li>Linux</li><li>Web</li><li>Software liber</li><li>Programare</li>

</ol></section>

fără CSS

cu CSS

Page 67: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

unități de măsură CSS

absolute

cm – centimetriin – inci: 1in = 2.54cmpt – puncte tipografice

pc – pica: 1pc = 12ptpx – pixeli

@media print {body { width: 16cm; font-size: 12pt; }

}

redarea poate depinde de dispozitivul folosit

Page 68: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

unități de măsură CSS

relative

em – lățimea literei m a fontului curentex – înălțimea literei x a fontului curent

utile pentru afișări independente de browser,monitor sau preferințele utilizatorului

.slogan { text-align: center; font-size: 1.3em; padding-top: 0.3em; padding-bottom: 0.3em;

}

Page 69: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

unități de măsură CSS

relative

valori procentuale

măresc/micșorează relativ la valoarea curentă

sup, sub {font-size: 85%;

}img {width: 50%; height: 50%;

}

amănunte tehnice în www.w3.org/TR/css-values/

Page 70: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

O serie de detalii

despre funcțiile CSS?

Page 71: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

funcții CSS uzuale

url(adresăWeb)desemnează o resursă identificată de un URL

.fundal {background-color: white; background-repeat: repeat-y; background-attachment: fixed;background-position: bottom left;background-size: 30px;background-image: url("./Tux.png");

}

Page 72: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Page 73: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

funcții CSS uzuale

rgb(valoareRoșu, valoareVerde, valoareAlbastru)numere întregi în intervalul [0, 255] sau procente

/* valori RGB – Red, Green, Blue */background-color: rgb(204,255,51);background-color: rgb(80%,100%,20%);background-color: #ccff33; /* prescurtat: #cf3 *//* valori HSL – Hue, Saturation, Lightness */background-color: hsl(75,100%,60%);

http://www.color-hex.com/color/ccff33

Page 74: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

funcții CSS uzuale

linear-gradient(), radial-gradient()generează un dégradé

.chenar { border: 30px solid;border-image: radial-gradient(farthest-corner at 45px 45px,

green 0%, blue 100%);padding: 20px;

}

un instrument Web util: CSSmatic – www.cssmatic.com

Page 75: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

experimentarea diverselor construcții CSSpe baza aplicației Web JSFiddle

în acest caz, de analizat https://jsfiddle.net/busaco/ndny1um4/

Page 76: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Să explorăm aspectele

mai „exotice”

ale CSS în contextul

designului Web…

Page 77: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

module CSS – standardizate/în curs de standardizare –specificând diverse funcționalități:

Syntax Selectors Color Fonts Media Queries Shapes

Flexible box Multi-column Layout Conditional Rules

Animations Text Decoration Transforms Transitions

Masking Basic User Interface

Page 78: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

AnimationsBackground-image optionsBorder imagesBorder radius (rounded corners) Box shadowsBox sizingCascading and inheritanceColorsCompositing and BlendingDevice AdaptationDownloadable fonts (@font-face) ExclusionsFeature queries (@supports) Filter EffectsFixed positioning (position:fixed) Flexible box layout (Flexbox) Font-feature settingsFont loadingGradientsGrid layout HyphenationImage Values & Replaced Content Logical properties

MaskingMedia QueriesMotion pathsMultiple-column layout Multiple backgroundsOpacityOverflowPointer eventsPseudo-elementsScroll Snap PointsSelectorsShapesSticky positioning (position:sticky) Style attributesSyntaxText decorationText overflowText shadowsTransforms (2D) Transforms (3D) TransitionsValues and UnitsWriting modes

htt

ps://pla

tfor

m.h

tml5

.org

/

Page 79: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Responsive Web design

adaptarea designului la contextul de redare:orientare a ecranului, rezoluție, densitate de pixeli,…

rezoluții de ecran diverserecurgerea la valori diferite pentru anumite proprietăți CSS via reguli @media

pentru detalii, a se parcurge prezentareaSabin Buraga, Design (Web) responsiv (2015)

http://www.slideshare.net/busaco/design-web-responsiv

Page 80: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

@media screen and (max-width: 768px) and (orientation: portrait) { /* stiluri pentru tablete*/

}

/* redarea pe 2 coloane pentru rezoluții mari */@media (min-width:1140px) and (min-resolution: 300dpi) {

.content { column-count: 2; column-gap: 1em; } }

@media screen and (device-aspect-ratio: 16/9), screen and (device-aspect-ratio: 16/10) { /* ecran lat */

}

https://responsivedesign.is/

http://developer.mozilla.org/docs/Web/Guide/CSS/Media_queries

Page 81: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

a se studia codul-sursă al foii de stiluriprofs.info.uaic.ro/~busaco/teach/courses/web/web.css

Page 82: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Grafică Web via CSSscale(), scale3d(), translate(), translate3d(), skew(),

rotate(), rotate3d(), perspective(), matrix() etc.realizarea de transformări geometrice 2D și/sau 3D

https://developer.mozilla.org/Web/CSS/transformhttp://desandro.github.io/3dtransforms/

instrument Web util: Create CSS – www.createcss3.com

Page 83: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Grafică Web via CSSblur(), brightness(), contrast(), grayscale(), invert(),

opacity(), saturate(), sepia(),…aplicarea de filtre asupra conținutului grafic

https://developer.mozilla.org/Web/CSS/filterhttps://css-tricks.com/almanac/properties/f/filter/

img { filter: hue-rotate(90deg)

brightness(1.2) drop-shadow(10px 10px 5px gray);

transform: rotate(-15deg); }

Page 84: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Animații realizate via declarații CSSproprietăți: animation-duration, animation-direction,

animation-play-state etc. + regula @keyframes

https://developer.mozilla.org/Web/CSS/CSS_Animationshttps://css-tricks.com/almanac/properties/a/animation/

#tux {animation-name: tux-animat;animation-duration: 7s; animation-iteration-count: infinite;animation-play-state: running;

}

@keyframes tux-animat {from { transform: rotate(0deg); width: 40%; }to { transform: rotate(180deg); width: 10%; }

}...<img src="Tux.png" id="tux"/>

Page 85: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Aranjament vizual (layout) flexibil – flexbox

facilitează aranjarea elementelor de interfață

ghiduri & resurse:Flexbox in 5 minutes – http://flexboxin5.com/

Dimitar Stojanov, A Visual Guide to CSS3 Flexbox Properties (2015)https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties

Chris Coyier, A Complete Guide to Flexbox (2016)https://css-tricks.com/snippets/css/a-guide-to-flexbox/

soluții utile oferite de Philip Walton, Solved by Flexboxhttps://philipwalton.github.io/solved-by-flexbox/

Page 86: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Flexbox Froggyexerciții amuzante pentru a învăța flexbox

flexboxfroggy.com

de experimentat și generatorul de cod Flexy Boxeshttp://the-echoplex.net/flexyboxes/

Page 87: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

Care-s următorii pași

pentru a aprofunda CSS?

Page 88: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

considerarea suportului oferit de browser pentru o anumită facilitate CSS

http://caniuse.com/

Page 89: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

verificarea corectitudiniifolosind aplicațiile Web

W3C CSS Validatorhttps://jigsaw.w3.org/css-validator/

CSS Linthttp://csslint.net/

Page 90: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

aici, un experiment disponibil online la Codepen.io

Sass (Syntactically Awesome StyleSheets) recurgerea la un preprocesor CSS pentru creșterea productivității

http://sass-lang.com/

studii de caz: thesassway.com

Page 91: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Page 92: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

CSS @ Devdocshttp://devdocs.io/css/

Awesome CSSgithub.com/sotayamashita/awesome-css

Frontend Focus (HTML5 Weekly)html5weekly.com

Front-End Technologiesuptodate.frontendrescue.org

Sabin Buraga, Dezvoltarea aplicațiilor Web la nivel de client

profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html

Sabin Buraga, Proiectarea siturilor Web (ed. II), 2005www.slideshare.net/busaco/sabin-buraga-proiectarea-siturilor-web

Page 93: Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)

surse fotografice:awkwardfamilyphotos.com onlyweirdpics.com www.angryduck.com

Foi de stiluri CSS

în contextul designului Web

Dr. Sabin Buraga

FII, UAIC – Iași, România

www.slideshare.net/busaco/