responsive web designresponsive web design •strony zaprojektowane jako responsywne dostosowują...

70
Aplikacje mobilne RESPONSIVE WEB DESIGN (CSS)

Upload: others

Post on 24-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

Aplikacje mobilne

RESPONSIVE WEB DESIGN

(CSS)

Page 2: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MOTYWACJE – JAK DOPASOWAĆ WIDOK

STRONY WWW DO WYŚWIETLACZA? Na rynku dostępne są:

• urządzenia o najróżniejszych parametrach wyświetlaczy,

• urządzenia umożliwiające wyświetlanie w pionie i w poziomie.

Page 3: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

HTML – JĘZYK TWORZENIA STRON WWW

• HTML (ang. HyperText Markup Language) - hipertekstowy

język znaczników, podstawowy język tworzenia stron

internetowych.

• Pierwsza, publicznie dostępna, specyfikacja języka HTML,

nazwana HTML Tags, została zamieszczona w Internecie

przez Bernersa-Lee w 1991. Zawierała 22 znaczniki, tworzące

początkowy, prosty szkielet HTML-a.

<html>

</html>

<head>

<p> </p>

</head>

</title> <title>

<body>

</body>

<b> </b> pogrubiony To jest tekst

Pierwsza strona

Page 4: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

HTML

• Pierwsza strona - Europejska Organizacja Badań Jądrowych - CERN,

6 Sierpnia 1991 r.

Page 5: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CSS – NARZĘDZIE DO OKREŚLANIA SPOSOBU

WYŚWIETLANIA DOKUMENTU HTML

• Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS) to język służący

do opisu formy prezentacji (wyświetlania) stron WWW.

• CSS został opracowany przez organizację W3C (World Wide Web Consortium)

w1996 r.

• CSS to lista dyrektyw (tzw. reguł) ustalających w jaki sposób ma zostać

wyświetlana przez przeglądarkę internetową zawartość wybranego elementu (lub

elementów) HTML

body {background-color:#d0e4fe;}

h1{ color:orange; text-align:center;}

p{font-family:"Times New Roman";font-size:20px;}

Page 6: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

REGUŁY CSS

• Reguła składa się z dwóch części

• selektora (np. H1)

• deklaracji (np. color:blue)

• Deklaracja również składa się z dwóch części

• właściwości (np. color)

• wartości (np. blue)

Page 7: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

JAK UŻYWAĆ CSS? INTERNAL STYLE SHEET

• Bezpośrednio w dokumencie – sekcja head

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<HTML>

<HEAD>

<TITLE>Moja strona domowa</TITLE>

<STYLE type="text/css">

H1 { color: red }

P { color: blue }

</STYLE>

</HEAD>

<BODY>

<H1>Moja fantastyczna strona domowa</H1>

<P>Tutaj zobaczycie to, czego nigdzie indziej...

</BODY>

</HTML>

Page 8: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

JAK UŻYWAĆ CSS? EXTERNAL STYLE SHEET

• Poprzez odwołanie do innego dokumentu

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<HTML>

<HEAD>

<TITLE>Moja strona domowa</TITLE>

<LINK rel="StyleSheet" type="text/css"

href="mojstyl.css" >

</HEAD>

<BODY>

<H1>Moja fantastyczna strona domowa</H1>

<P>Tutaj zobaczycie to, czego nigdzie indziej...

</BODY>

</HTML>

Page 9: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

JAK UŻYWAĆ CSS? INLINE STYLES

• Styl użyty do konkretnego elementu na stronie

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<HTML>

<HEAD>

<TITLE>Moja strona domowa</TITLE>

</HEAD>

<BODY>

<H1>Moja fantastyczna strona domowa</H1>

<P style="color: sienna; margin-left: 20px">

Oto mój tekścik

</P>

</BODY>

</HTML>

Page 10: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

RESPONSYWNE STRONY WEBOWE

• Tym terminem określa się najczęściej strony WWW, które są automatycznie optymalizowane do różnych urządzeń, na których są wyświetlane, bez względu na rozmiar wyświetlacza urządzenia.

• Do ich realizacji wykorzystuje się koncepcje:

• Mobile first

• Responsive web design

• Adaptive web design

Page 11: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODSTAWOWE IDEE – CHRONOLOGICZNIE

PO PIERWSZE – MOBILE! (MOBILE FIRST)

Mobilny interfejs strony powinien leżeć u podstaw całej

strategii rozwijania aplikacji internetowej przeznaczonej

na różne urządzenia.

Page 12: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PO PIERWSZE - MOBILE!

• Strony należy zacząć projektować niejako od “końca” – od wersji dla urządzeń mobilnych, o małych wyświetlaczach, których używa się inaczej niż dla standardowych desktopów.

• Ważny jest nie tylko wygląd strony ale przede wszystkim wygoda użytkowania.

• Większość smartfonów i tabletów ma już wyłącznie ekrany dotykowe.

• Nie należy umieszczać wszystkiego, co ma znaleźć się na stronie „desktopowej” w jej mobilnym odpowiedniku – należy zacząć od prawidłowej hierarchizacji danych.

• Na urządzeniach mobilnych powinny wyświetlać się niezbędne, nierozpraszające elementy, które w sposób prosty i szybki pozwolą wykonać użytkownikowi czynność lub dotrzeć do potrzebnych informacji

Page 13: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODSTAWOWE IDEE – CHRONOLOGICZNIE

RESPONSIVE WEB DESIGN

Termin Responsive Web

Design (RWD) pojawił się

w artykule Ethana

Marcotte w maju 2010 roku.

Page 14: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

RESPONSIVE WEB

DESIGN

• Strony zaprojektowane jako responsywne dostosowują

rozmiar i rozmieszczenie elementów w reakcji na zmianę

rozmiarów okna przeglądarki, w celu jak najlepszego

zagospodarowania dostępnej przestrzeni.

Page 15: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODSTAWOWE IDEE – CHRONOLOGICZNIE

ADAPTIVE WEB DESIGN

• Termin Adaptive Web Design wprowadził w 2011 Aaron

Gustafson w książce Adaptive Web Design: Crafting

Rich Experiences With Progressive Enhancement.

• Autor używa również terminu progressive

enhancement of a website (stopniowe ulepszanie

strony internetowej).

Page 16: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

ADAPTIVE WEB DESIGN

• W koncepcji adaptive web design opracowuje się kilka stałych

projektów interfejsu strony webowej. Kiedy serwer rozpozna

rozmiar ekranu, na którym ma być wyświetlona strona, odsyła ją

do przeglądarki w najbardziej odpowiedniej wersji.

• Mobilne wersje stron można rozpoznać po adresie URL.

• Zmiana rozmiaru okna przeglądarki nie wpływa już na

rozmieszczenie elementów na stronie webowej.

Page 17: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

IDEA RESPONSIVE A ADAPTIVE

Page 18: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

Aktualnie strony WWW projektowane są najczęściej tak,

że wykorzystuje się naraz wszystkie trzy koncepcje

(mobile first, responsive i adaptive) i taką stronę określa

się jako responsywną

Page 19: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLUID LAYOUT - REALIZACJA

• Fluid layout – projekt wyglądu strony, w którym rozmiary

poszczególnych elementów wyrażone są w jednostkach

względnych (najczęściej %).

• Rozmiary elementów zmieniają się więc dynamicznie wraz ze

zmianą rozmiaru okna przeglądarki.

• Fluid layout umożliwia efektywne wykorzystanie przestrzeni

dostępnych w danym oknie przeglądarki internetowej przy

określonej rozdzielczości ekranu.

• Podejście preferowane przez projektantów, którzy dużo

informacji, muszą zmieścić na niewielkiej powierzchni.

Page 20: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLUID LAYOUT - PRZYKŁAD

Page 21: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLUID IMAGES

• Jak dostosować obrazy do wielkości wyświetlacza?

• Skalowanie obrazów.

• Wyświetlanie dedykowanych wersji (rozmiarów) obrazów

• Ukrywanie/odkrywanie części obrazu.

img { max-width: 100%; }

Page 22: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLUID IMAGES – POKAZYWANIE CZĘŚCI

OBRAZU

Restauracja Stylowa

Restauracja Stylowa

Przeskalowany

napis

Obraz

obcięty

Page 23: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLUID LAYOUT?

• Koncepcja fluid layout nie wystarczy!

• Projektując/wdrażając fluid layout najczęściej robi się to z nastawieniem na

stronę, która będzie przeglądana na tradycyjnym monitorze komputera.

• Nie bierze się pod uwagę tego, że strona na smartfonie powinna mieć

dostosowany do typu urządzenia/wyświetlacza layout i dostosowany do

ekranów dotykowych sposób nawigowania.

Page 24: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MOBILNY INTERFEJS

• Strona responsywna powinna:

• mieć nawigację przystosowaną do rozmiaru ekranu,

• być czytelna,

• na ekranach „wąskich” mieć przewijanie ograniczone do jednej osi: góra-dół,

• zapewniać użytkowanie, które jest komfortowe i intuicyjne.

Page 25: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD

• Stopka pewnej instytucji zmienia się w zależności od rozdzielczości urządzenia,

na którym jest wyświetlana strona. Na komputerze czy nawet tablecie w celu

skontaktowania się z instytucją należy wypełnić odpowiedni formularz

kontaktowy.

Imię i nazwisko

Adres e-mail

Nr telefonu

Wiadomość

Wyślij

Zwiń stopkę

Page 26: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD,C.D.

• Na małym ekranie bez fizycznej klawiatury wypełnianie formularza jest

uciążliwe. Zamiast formularza kontaktowego, wyświetla się wielki numer

telefonu, bo przecież podstawową funkcją smartfona jest dzwonienie!

Zwiń stopkę

+48 606

801

755

BIURO[AT]INSTYTUCJA.PL

Page 27: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

JAK STWORZYĆ STRONĘ RESPONSYWNĄ?

HTML+ CSS3 (MediaQueries)!

Ustala się pewną liczbę zakresów wielkości/rozdzielczości okna

przeglądarki i dla każdego z nich ustawia się odrębny wygląd za

pomocą arkuszy stylów CSS (ang. Cascading Style Sheet )

Page 28: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

HTML - METATAG VIEWPORT

• Metatag viewport określa sposób wyświetlania strony na urządzeniach mobilnych – pozwala ustawić opcje skalowania, w tym także domyślne przybliżenie.

• Znacznik ten, podobnie inne meta-znaczniki musi znajdować się w sekcji head dokumentu HTML, a jego składnia wygląda następująco:

• Wartością atrybutu content powinna być lista par dyrektywa-wartość określających sposób wyświetlania strony na urządzeniach mobilnych. W polu tym możemy wpisać wiele różnych dyrektyw, oddzielając je przecinkami.

<meta name="viewport" content="...">

Page 29: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

DOSTĘPNE ATRYBUTY DLA VIEWPORT

• width, height – określają szerokość i wysokość wyświetlanego obszaru strony. Można podać wartość liczbową (w pikselach), np.

• Dla atrybutu width możemy również podać specjalną wartość device-width, której użycie powoduje, że szerokość obszaru wyświetlania jest równa szerokości ekranu urządzenia (tzn. strona jest rozciągnięta w 100% na ekranie urządzenia )

• Dla dyrektywy height możemy użyć analogicznej wartości, device-height

• initial-scale – w atrybucie tym ustawiamy domyślne przybliżenie (zoom) dla strony. Wartość ta jest zazwyczaj zależna od przeglądarki, lecz możemy wymusić by nasza mobilna wersja strony domyślnie wyświetlała się np. w 10-krotnym przybliżeniu:

Możemy ją również pokazać w całej swej okazałości, bez skalowania:

<meta name="viewport" content="initial-scale=10">

<meta name="viewport" content="width=320, height=480">

<meta name="viewport" content="initial-scale=1">

Page 30: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

DOSTĘPNE ATRYBUTY DLA VIEWPORT

• minimum-scale, maximum-scale – atrybuty te określają minimalne

i maksymalne przybliżenie/oddalenie strony w obszarze przeglądarki. Minimalny

współczynnik skalowania nie może być mniejszy niż 0, natomiast maksymalny

nie może być większy niż 10. Prosty przykład użycia:

• user-scalable – pozwala włączyć, bądź też wyłączyć możliwość

skalowania strony przez użytkownika. Jako wartość przyjmuje

anglojęzyczne yes lub no.

<meta name="viewport" content="user-scalable=yes">

<meta name="viewport" content="minimum-scale=1,

maximum-scale=5">

Page 31: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

KIEDY UŻYWAĆ METATAGU VIEWPORT?

• Znacznik ten mówi o tym, jak strona powinna być wyświetlana na urządzeniu

mobilnym. Zatem jeśli strona nie jest dostosowana do urządzeń mobilnych, można całkowicie pominąć użycie meta-tagu viewport.

• Jeśli strona jest dostosowana do urządzeń mobilnych, należy użyć:

<meta name="viewport" content="width=device-width, initial-

scale=1">

Page 32: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

KIEDY UŻYWAĆ METATAGU VIEWPORT?

Strona mobilna bez metatagu viewport

Strona mobilna z metatagiem viewport

Page 33: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

html,body{ background... font…}

p, blockquote, pre, code, ol, ul{}

/* Elementy strukturalne */

#blok-gl{

width: 80%; margin: 0 auto;

background: #fff; padding: 20px; }

#blok-zaw{

width: 54%; float: left;

margin-right: 3%; }

#kolumna-lewa{

width: 20%; float: left;

margin-right: 3%; }

#kolumna-prawa{

width: 20%; float: left; }

TEMAT 1

Lorem Ipsum jest tekstem stosowanym jako

przykładowy wypełniacz w przemyśle poligraficznym.

Został po raz pierwszy użyty w XV w. przez nieznanego

drukarza do wypełnienia tekstem próbnej książki. Pięć

wieków później zaczął być używany przemyśle

elektronicznym, pozostając praktycznie niezmienionym.

Spopularyzował się w latach 60. XX w. wraz z publikacją

arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum,

druków na komputerach osobistych, jak Aldus PageMaker.

Ogólnie znana teza głosi, iż użytkownika może

rozpraszać zrozumiała zawartość strony, kiedy ten chce

zobaczyć sam jej wygląd. Jedną z mocnych stron używania

Lorem Ipsum jest to, że ma wiele różnych „kombinacji”

zdań, słów i akapitów, w przeciwieństwie do zwykłego:

„tekst, tekst, tekst”, sprawiającego, że wygląda to „zbyt

czytelnie” po polsku.

Temat 2

Lorem Ipsum jest tekstem

stosowanym jako przykładowy

wypełniacz w przemyśle

poligraficznym. Został po raz

pierwszy użyty w XV w. przez

nieznanego enionym.

Spopularyzował się w latach

60. XX w. wraz z publikacją

arkuszy Letrasetu,

zawierających fragmenty Lorem

Ipsum, druków na komputerach

osobistych, jak Aldus PageM

zrozumiała zawartość strony,

kiedy ten chce zobaczyć sam

jej wygląd. Jedną z mocnych

stron używania Lorem Ipsum

jest to, że ma wiele różnych

„kombinacji” zdań, słów i

akapitów, w przeciwieństwie do

zwykłego: „tekst, tekst, tekst”,

sprawiającego, że wygląda to

„zbyt czytelnie” po polsku.

Temat 3

Lorem Ipsum jest tekstem

stosowanym jako

przykładowy wypełniacz w

przemyśle poligraficznym.

Został po raz pierwszy użyty

w XV w. przez nieznanego

enionym. Spopularyzował się

w latach 60. XX w. wraz z

publikacją arkuszy Letrasetu,

zawierających fragmenty

Lorem Ipsum, druków na

komputerach osobistych, jak

Aldus PageM zrozumiała

zawartość strony, kiedy ten

chce zobaczyć sam jej

wygląd. Jedną z mocnych

stron używania Lorem Ipsum

jest to, że ma wiele różnych

„kombinacji” zdań, słów i

akapitów, w przeciwieństwie

do zwykłego:.

<div id="blok-gl">

<div id="blok-zaw">

<h2>TEMAT 1</h2> …

</div>

<div id="kolumna-lewa">

<h2>Temat 2</h2> …

</div>

<div id="kolumna-prawa">

<h2>Temat 3</h2> …

</div>

</div>

Fragment pliku HTML:

Fragment pliku CSS:

Więcej o float na stronie:

http://kurs.browsehappy.pl/CSS/Float

Zmiana struktury dokumentu

– widok standardowy

Page 34: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

WŁAŚCIWOŚĆ FLOAT

• Za pomocą właściwości float możemy sprawić, że interesujący nas element HTML stanie

się pływającym w obszarze zawartości swojego elementu rodzica elementem HTML .

• Każdy pływający element HTML zazwyczaj zachowuje cechy podobne do cech elementu

HTML typu block, dzięki czemu między innymi wiemy, na jakie właściwości CSS może

reagować dany element HTML

• Treść do wyświetlenia występująca w kodzie HTML po pływającym elemencie HTML może

opływać ten pływający element HTML, ale tylko w sytuacji, gdy wystarczy miejsca w

danym obszarze zawartości

• Pływający element HTML występuje w obszarze zawartości swojego elementu rodzica,

lecz pływający element HTML nie może bezpośrednio powiększać swoim rozmiarem

rozmiaru swojego elementu rodzica

• Domyślnie element HTML nie jest pływającym w obszarze zawartości swojego elementu

rodzica elementem HTML.

Page 35: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLOAT: LEFT

• Za pomocą wartości left właściwości float możemy sprawić, że interesujący

nas element HTML stanie się pływającym w obszarze zawartości swojego

elementu rodzica elementem HTML.

• Element HTML będzie pływał w obszaru zawartości swojego elementu

rodzica w kierunku lewej krawędzi liniowej swojego elementu rodzica.

Page 36: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD FLOAT: LEFT

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko">div#dziecko</div>

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

</div>

</body>

</html>

html { font-size:16px;}

#rodzic { font-size:1.3em;}

#dziecko {

float:left;

height:100px;

background-color:red;

}

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAA

div#dziecko

Page 37: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

FLOAT: RIGHT

• Za pomocą wartości right właściwości float możemy sprawić, że interesujący

nas element HTML stanie się pływającym w obszarze zawartości swojego

elementu rodzica elementem HTML.

• Element HTML będzie pływał w kierunku prawej krawędzi liniowej swojego

elementu rodzica.

Page 38: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD FLOAT: RIGHT

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko">div#dziecko</div>

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

</div>

</body>

</html>

html { font-size:16px;}

#rodzic { font-size:1.3em;}

#dziecko {

float:right;

height:100px;

background-color:red;

}

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAA

div#dziecko

Page 39: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

TEMAT 1

Lorem Ipsum jest tekstem stosowanym jako przykładowy

wypełniacz w przemyśle poligraficznym. Został po raz pierwszy

użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem

próbnej książki. Pięć wieków później zaczął być używany

przemyśle elektronicznym, pozostając praktycznie niezmienionym.

Spopularyzował się w latach 60. XX w. .

Ogólnie znana teza głosi, iż użytkownika może rozpraszać

zrozumiała zawartość strony, kiedy ten chce zobaczyć sam jej

wygląd. Jedną z mocnych stron używania Lorem Ipsum jest to, że

ma wiele różnych „kombinacji” zdań, słów i akapitów, w

przeciwieństwie do zwykłego: „tekst, tekst, tekst”, sprawiająceg

wygląda to „zbyt czytelnie” po polsku.

Temat 2

Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w

przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez

nieznanego enionym. Spopularyzował się w latach 60. XX w. wraz z

publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, druków

na komputerach osobistych, jak Aldus PageM zrozumiała zawartość strony,

kiedy ten chce zobaczyć sam jej wygląd. Jedną z mocnych stron uż

Temat 3

Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w

przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez

nieznanego enionym. Spopularyzował się w latach 60. XX w. wraz z

publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, druków

na komputedfgsdfg drfgesrge

#blok-gl{ width: 90%; }

#blok-zaw{ width: 100%; }

#kolumna-lewa{

width: 100%; clear: both;

}

#kolumna-prawa{

width: 100%; clear: both;

}

<div id="blok-gl">

<div id="blok-zaw">

<h2>TEMAT 1</h2> …

</div>

<div id="kolumna-lewa">

<h2>Temat 2</h2> …

</div>

<div id="kolumna-prawa">

<h2>Temat 3</h2> …

</div>

</div>

Zmiana struktury dokumentu

– widok mobilny

Fragment pliku HTML:

Fragment pliku CSS:

Więcej o clear na stronie:

http://kurs.browsehappy.pl/CSS/Float

Page 40: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

WŁAŚCIWOŚĆ CLEAR

• Za pomocą właściwości clear możemy określić czy interesujący nas element

HTML może opływać pływający element HTML.

Page 41: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CLEAR: NONE

• Wartość none jest domyślną wartością właściwości clear.

• Domyślnie element HTML może opływać pływający element HTML.

Page 42: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD CLEAR: NONE

html {font-size:16px;}

#rodzic {font-size:1.3em;}

#dziecko-1 {float:left;

height:500px;

background-color:blue;}

#dziecko-2 {float:right;

height:400px;

background-color:red;}

#dziecko-3 {background-color:green;}

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBB

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

div#dziecko-3

div#dziecko

-2

float:right

div#dziecko-

1

float:left

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko-1">

div#dziecko-1<br>float:left;</div>

<div id="dziecko-2">

div#dziecko-2<br>float:right;</div>

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

<div id="dziecko-3">div#dziecko-3</div>

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

</div>

</body>

</html>

Page 43: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CLEAR: LEFT

• Za pomocą wartości left właściwości clear możemy sprawić, że interesujący

nas element HTML nie będzie mógł opływać elementu HTML posiadającego

właściwość float wraz z wartością left.

Page 44: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD CLEAR: LEFT

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko-1">

div#dziecko-1<br>float:left;</div>

<div id="dziecko-2">

div#dziecko-2<br>float:right;</div>

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

<div id="dziecko-3">div#dziecko-3</div>

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

</div>

</body>

</html>

html {font-size:16px;}

#rodzic {font-size:1.3em;}

#dziecko-1 {float:left;

height:500px;

background-color:blue;}

#dziecko-2 {float:right;

height:400px;

background-color:red;}

#dziecko-3 {clear:left;

background-color:green;}

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBB

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

div#dziecko-3

div#dziecko

-2

float:right

div#dziecko-

1

float:left

Page 45: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CLEAR: RIGHT

• Za pomocą wartości right właściwości clear możemy sprawić, że interesujący

nas element HTML nie będzie mógł opływać elementu HTML posiadającego

właściwość float wraz z wartością right.

Page 46: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD CLEAR: RIGHT

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko-1">

div#dziecko-1<br>float:left;</div>

<div id="dziecko-2">

div#dziecko-2<br>float:right;</div>

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

<div id="dziecko-3">div#dziecko-3</div>

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

</div>

</body>

</html>

html {font-size:16px;}

#rodzic {font-size:1.3em;}

#dziecko-1 {float:left;

height:500px;

background-color:blue;}

#dziecko-2 {float:right;

height:400px;

background-color:red;}

#dziecko-3 {clear:right;

background-color:green;}

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBB

BBBBBB

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

div#dziecko-3

div#dziecko

-2

float:right

div#dziecko-

1

float:left

Page 47: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CLEAR: BOTH

• Za pomocą wartości both właściwości clear możemy sprawić, że interesujący

nas element HTML nie będzie mógł opływać żadnego pływającego elementu

HTML.

Page 48: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PRZYKŁAD CLEAR: BOTH

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Przykład float</title>

</head>

<body>

<div id="rodzic">

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

<div id="dziecko-1">

div#dziecko-1<br>float:left;</div>

<div id="dziecko-2">

div#dziecko-2<br>float:right;</div>

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

<div id="dziecko-3">div#dziecko-3</div>

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

</div>

</body>

</html>

html {font-size:16px;}

#rodzic {font-size:1.3em;}

#dziecko-1 {float:left;

height:500px;

background-color:blue;}

#dziecko-2 {float:right;

height:400px;

background-color:red;}

#dziecko-3 {clear:both;

background-color:green;}

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBB

AAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

div#dziecko-3

div#dziecko

-2

float:right

div#dziecko-

1

float:left

Page 49: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

<p class="pasek">

<a href="#">Lewa kolumna</a> |

<a href="#">Prawa kolumna</a>

</p>

<div id="blok-zaw">

<h2>TEMAT 1</h2>

</div>

<div id="kolumna-lewa">

<h2>Temat 2</h2>

</div>

<div id="kolumna-prawa">

<h2>Temat 3</h2>

</div>

TEMAT 1

Lorem Ipsum jest tekstem stosowanym jako

przykładowy wypełniacz w przemyśle poligraficznym.

Został po raz pierwszy użyty w XV w. przez nieznanego

drukarza do wypełnienia tekstem próbnej książki. Pięć

wieków później zaczął być używany przemyśle

elektronicznym, pozostając praktycznie niezmienionym.

Spopularyzował się w latach 60. XX w. wraz z publikacją

arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum,

druków na komputerach osobistych, jak Aldus PageMaker.

Ogólnie znana teza głosi, iż użytkownika może

rozpraszać zrozumiała zawartość strony, kiedy ten chce

zobaczyć sam jej wygląd. Jedną z mocnych stron używania

Lorem Ipsum jest to, że ma wiele różnych „kombinacji”

zdań, słów i akapitów, w przeciwieństwie do zwykłego:

„tekst, tekst, tekst”, sprawiającego, że wygląda to „zbyt

czytelnie” po polsku.

Temat 2

Lorem Ipsum jest tekstem

stosowanym jako przykładowy

wypełniacz w przemyśle

poligraficznym. Został po raz

pierwszy użyty w XV w. przez

nieznanego enionym.

Spopularyzował się w latach

60. XX w. wraz z publikacją

arkuszy Letrasetu,

zawierających fragmenty Lorem

Ipsum, druków na komputerach

osobistych, jak Aldus PageM

zrozumiała zawartość strony,

kiedy ten chce zobaczyć sam

jej wygląd. Jedną z mocnych

stron używania Lorem Ipsum

jest to, że ma wiele różnych

„kombinacji” zdań, słów i

akapitów, w przeciwieństwie do

zwykłego: „tekst, tekst, tekst”,

sprawiającego, że wygląda to

„zbyt czytelnie” po polsku.

Temat 3

Lorem Ipsum jest tekstem

stosowanym jako

przykładowy wypełniacz w

przemyśle poligraficznym.

Został po raz pierwszy użyty

w XV w. przez nieznanego

enionym. Spopularyzował się

w latach 60. XX w. wraz z

publikacją arkuszy Letrasetu,

zawierających fragmenty

Lorem Ipsum, druków na

komputerach osobistych, jak

Aldus PageM zrozumiała

zawartość strony, kiedy ten

chce zobaczyć sam jej

wygląd. Jedną z mocnych

stron używania Lorem Ipsum

jest to, że ma wiele różnych

„kombinacji” zdań, słów i

akapitów, w przeciwieństwie

do zwykłego:.

#blok-zaw{

width: 54%;

float: left;

margin-right: 3%; }

#kolumna-lewa{

width: 20%;

float: left;

margin-right: 3%; }

#kolumna-prawa{

width: 20%;

float: left; }

.pasek{display: none;}

Ukrywanie zawartości

– widok standardowy

Fragment pliku HTML:

Fragment pliku CSS:

Page 50: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

<p class="pasek">

<a href="#">Lewa kolumna</a> |

<a href="#">Prawa kolumna</a>

</p>

<div id="blok-zaw">

<h2>TEMAT 1</h2>

</div>

<div id="kolumna-lewa">

<h2>Temat 2</h2>

</div>

<div id="kolumna-prawa">

<h2>Temat 3</h2>

</div>

#blok-zaw{

width: 100%; }

#kolumna-lewa{

display: none; }

#kolumna-prawa{

display: none; }

.pasek {display: inline;}

TEMAT 1

Lorem Ipsum jest tekstem stosowanym jako przykładowy

wypełniacz w przemyśle poligraficznym. Został po raz pierwszy

użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem

próbnej książki. Pięć wieków później zaczął być używany

przemyśle elektronicznym, pozostając praktycznie niezmienionym.

Spopularyzował się w latach 60. XX w. .

Ogólnie znana teza głosi, iż użytkownika może rozpraszać

zrozumiała zawartość strony, kiedy ten chce zobaczyć sam jej

wygląd. Jedną z mocnych stron używania Lorem Ipsum jest to, że

ma wiele różnych „kombinacji” zdań, słów i akapitów, w

przeciwieństwie do zwykłego: „tekst, tekst, tekst”, sprawiająceg

wygląda to „zbyt czytelnie” po polsku.

Lewa kolumna | Prawa kolumna

Ukrywanie zawartości

– widok mobilny

Fragment pliku HTML:

Fragment pliku CSS:

Page 51: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

JAK AUTOMATYCZNIE DOSTOSOWAĆ

LAYOUT STRONY DO URZĄDZENIA?

Page 52: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

CSS3 I MEDIA QUERIES!

• W CSS3 dodano zapytania mediów (ang. media queries), co umożliwiło

tworzenie stron www pod kątem różnych rozmiarów okna przeglądarki.

• Media queries pozwalają precyzyjnie dopasować arkusz CSS nie tylko do typu

czy grupy mediów, ale przede wszystkim do możliwości wyświetlacza

urządzenia.

Page 53: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY W CSS2

• Media Query – w CSS2 to nic innego jak wybór medium, dla którego ma być

serwowany bieżący plik CSS. Czyli możemy zdecydować, które pliki wyświetlać

w wersji do druku, a które dla np. odbiorników telewizyjnych.

• Typy mediów:

• all - dla wszystkich urządzeń

• aural - syntezatory mowy (słuchowe arkusze stylów)

• braille - urządzenia do czytania braillem (dla niewidomych)

• embossed - drukarki brailla

• handheld - urządzenia ręczne (zwykle mały ekran, czarno-białe)

• print -materiały drukowane nieprzezroczyste i podgląd wydruku

• projection - prezentacje projektorowe lub nadruki na folii rzutnikowej

• screen - kolorowy ekran komputerowy

• tv – odbiorniki telewizyjne

• …

Page 54: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY CSS2– GDZIE?

Media Query w pliku CSS:

• wykorzystuje się dyrektywę @media

Media Query w pliku HTML: • wykorzystuje się atrybut media elementu LINK wskazujący zewnętrzny plik

arkusza stylów dla konkretnego typu medium

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">

<head>

<link rel="stylesheet" type="text/css" media="print" href="arkusz.css" />

</head>

<body>

<p>Ciało dokumentu...</p>

</body>

</html>

@media print { /* style dla drukarek a aktualnym pliku*/ }

Page 55: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY W CSS3

• Wraz z nadejściem CSS3 rozszerzono możliwości Media

Queries.

• W CSS3 można oprócz wskazania typu mediów dodatkowo

decydować o dołączaniu odpowiedniego pliku/kodu CSS na

podstawie rozdzielczości ekranu, orientacji wyświetlacza,

kolorów, etc.

Page 56: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY (CSS3) W PLIKU HTML

Interpretacja:

Ustawiony jest warunek, by załadować plik normal.css tylko, gdy:

• stronę otworzono z urządzenia posiadającego ekran

• minimalna szerokość ekranu wynosi 800 pikseli

• minimalna wysokość ekranu wynosi 600 pikseli

Jeśli urządzenie, na którym strona została otworzona nie spełnia powyższych

kryteriów, wtedy plik normal.css nie zostanie załadowany.

Oczywiście takich warunków może być więcej!

<link rel="stylesheet" media="screen and (min-width: 800px) and (min-height: 600px)"

href="normal.css">

Page 57: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY (CSS3) W PLIKU CSS

Ten sam przykład:

• stronę otworzono z urządzenia posiadającego ekran

• minimalna szerokość ekranu wynosi 800 pikseli

• minimalna wysokość ekranu wynosi 600 pikseli

a) z dedykowanymi stylami od razu w pliku CSS:

b) z dedykowanymi stylami w pliku zewnętrznym (normal.css):

@media screen and (min-width: 800px) and (min-height: 600px) {

/* zawartość pliku normal.css */

}

@import url(normal.css) screen and (min-width: 800px) and (min-height:

600px);}

Page 58: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

NOWE WARUNKI W CSS3 – WYMIARY

EKRANU • Można zadecydować, na ekranach o jakiej rozdzielczości wczytywać nasz kod CSS.

Do wyboru jest oczywiście długość i szerokość ekranu (mowa o rozdzielczości).

• Możemy określać zarówno minimalne, jak i maksymalne wielkości, a atrybuty za to odpowiedzialne to: min-width, max-width, min-height, max-

height.

• Nie trzeba kierować się wyłącznie rozdzielczością ekranu. Często bywa tak, że

użytkownik ma dużo mniejszy obszar „widoczności” strony WWW, aniżeli

rozdzielczość ekranu. Wynika to z faktu, iż różne programy mogą pojawiać się jako

toolbar po prawej lub lewej stronie ekranu.

• W tym celu powstały kolejne atrybuty dla Media Queries pozwalające rozpoznać „prawdziwą” szerokość/wysokość wyświetlanej strony, tj. device-width,

device-height, min-device-width, max-device-width,

min-device-height oraz max-device-height.

Page 59: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

NOWE WARUNKI W CSS3 – ORIENTACJA

EKRANU

Dla orientacji ekranu mamy do wyboru dwa atrybuty:

• orientation: portrait – orientacja pionowa

• orientation: landscape – orientacja pozioma

Page 60: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

NOWE WARUNKI W CSS3 – ASPECT RATIO

Aspect Ratio jest to stosunek wysokości do szerokości ekranu (lub obszaru aktualnie wyświetlonej strony).

Przykład, w którym szerokość ekranu jest dwa razy większa od wysokości „widocznego” obszaru roboczego strony:

Przy wyborze Aspect Ratio mamy do dyspozycji następujące atrybuty: aspect-ratio oraz device-aspect-ratio.

@media all and (device-aspect-ratio: 32/16) { … }

Page 61: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

NOWE WARUNKI W CSS3 – KOLORY

Można też warunkowo korzystać ze stylów CSS w zależności od

kolorów, jakie obsługuje urządzenie użytkownika. Do dyspozycji są następujące atrybuty : color, min-color, max-color,

color-index, min-color-index, max-color-

index, monochrome, min-monochrome, max-

monochrome.

Kilka praktycznych przykładów użycia:.

@media (color) { /* urządzenie obsługuje kolory */ }

@media (min-color-index: 256) { /* głębia kolorów -

minimum 256 kolorów */ }

@media (monochrome) { /* urządzenie jest

monochromatyczne - składa się jedynie z barw prostych */

}

Page 62: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

RESPONSYWNY ROZMIAR TEKSTU

• Rozmiar tekstu można ustawiać za pomocą jednostki "vw", która oznacza "viewport

width".

• Viewport to rozmiar okna przeglądarki. 1vw = 1% szerokości viewport. Jeśli viewport jest

szeroki na 50cm, 1vw oznacza 0.5cm.

• Przykład:

<h1 style="font-size:10vw">Hello World</h1>

Page 63: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY – GDZIE? W CSS!

/* Smartfony (portrait i

landscape) ----------- */

@media screen and (max-width:

600px)

{

/* Style */

}

/* Smartfony (landscape) ------

----- */

@media screen and

(min-width: 600px) and

(orientation:landscape)

{

/* Style */

}

/* Smartfony (portrait) -------

---- */

@media screen and

(min-width: 600px) and

(orientation:portrait)

{

/* Style */

}

<html xmlns="http://www.w3.org/1999/xhtml"

xml:lang="pl" lang="pl">

<head>

<link

rel="Stylesheet"

type="text/css"

href="arkusz.css" /> </head>

<body>

<p>Ciało dokumentu...</p>

</body>

</html>

arkusz.css

Page 64: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

TYPOWE MEDIA QUERY DLA RWD W PLIKU CSS

/* Smartfony małe(portrait i landscape) ----------- */

@media screen and (max-width: 600px){

/* Style */

}

/* Smartfony duże(landscape) ----------- */

@media screen and (min-width: 600px) and

(orientation:landscape) {

/* Style */

}

/* Smartfony duże(portrait) ----------- */

@media screen and (min-width:600px) and

(orientation:portrait) {

/* Style */

}

Jeden plik CSS dla różnych urządzeń/wyświetlaczy

Page 65: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

MEDIA QUERY – GDZIE? W HTML!

/* Style dla smartfonów

(portrait i landscape) --------

--- */

<html xmlns="http://www.w3.org/1999/xhtml"

xml:lang="pl" lang="pl">

<head>

<link rel="stylesheet"

media="screen

and (max-width: 600px)"

href="small.css" />

<link rel="stylesheet"

media="screen

and (min-width: 600px)

and (orientation:landscape)"

href="large_land.css" />

<link rel="stylesheet"

media="screen

and (min-width:600px)

and (orientation:portrait)"

href="large_port.css" />

</head>

<body>

<p>Ciało dokumentu...</p>

</body>

</html>

small.css

/* Smartfony (landscape) ------

----- */

/* Smartfony (portrait) -------

---- */

large_land.css

large_port.css

Page 66: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

TYPOWE MEDIA QUERY DLA RWD W PLIKU

HTML

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">

<head>

<link rel="stylesheet" media="screen and (max-width: 600px)"

href="small.css" />

<link rel="stylesheet" media="screen and (min-width: 600px) and

(orientation:landscape)" href="large_land.css" />

<link rel="stylesheet" media="screen and (min-width:600px) and

(orientation:portrait)" href="larg_port.css" /> </head>

<body>

<p>Ciało dokumentu...</p>

</body>

</html>

Plik HTML ze wskazaniami na różne pliki CSS dla różnych urządzeń/wyświetlaczy:

Page 67: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODMIANA GRAFIKI, ZNACZNIK <PICTURE>

• <picture> umożliwia łatwe określenie źródła grafiki

• Zamiast skalować pojedynczy obraz do dostępnej powierzchni, można

przygotować wiele plików z grafiką o odpowiednim rozmiarze.

• Element <picture> zawiera znaczniki <source> (jeden lub więcej) i jeden

znacznik <img>.

• Element <source> ma następujące atrybuty::

• srcset (wymagany) - określa URL obrazu, który ma być wyświetlany

• media – zawiera poprawne media query normalnie definiowane w CSS

• sizes – określa pojedynczą wartość width

• type – definuje typ MIME

Page 68: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODMIANA GRAFIKI, ZNACZNIK <PICTURE>

• Przeglądarka użyje pierwszego pasującego do wartości atrybutu media

elementu <source> i zignoruje następne.

• Element <img> jest wymagany jako ostatni element potomny znacznika

<picture>. Znacznik <img> został zachowany: dla wstecznej kompatybilności

z przeglądarkami, które nie obsługują elementu <picture> lub w przypadku,

gdy nie dopasuje się żaden z elementów <source>.

Page 69: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

PODMIANA GRAFIKI, PRZYKŁAD

<picture>

<source media="(min-width: 680px)" srcset="img_duzy.jpg">

<source media="(min-width: 460px)" srcset="img_maly.jpg">

<img src="img_duzy.jpg" alt=„Jakis obrazek" style="width:auto;">

</picture>

Page 70: Responsive Web DesignRESPONSIVE WEB DESIGN •Strony zaprojektowane jako responsywne dostosowują rozmiar i rozmieszczenie elementów w reakcji na zmianę rozmiarów okna przeglądarki,

STRONY RESPONSYWNE – DOBRE PRAKTYKI

Należy:

• unikać popupów i otwierania linków w nowej zakładce na stronie w wersji dla małych

rozdzielczości (smartfony);

• pisać kod strony poprawnie i zgodnie ze standardami - trzymanie się wytycznych daje

gwarancję, że strona będzie się poprawnie wyświetlać w bardzo różnych i egzotycznych

przeglądarkach;

• ostrożnie używać skryptów JavaScript - nie każdy skrypt zadziała w każdej mobilnej

przeglądarce;

• unikać stosowania stylu position: fixed - nie działa w większości mobilnych przeglądarek.