
Tworzenie stron WWW w HTML i CSS
Maciej Żukiewicz
maciek@harmony-systems.com
Prawa autorskie do materiałów

Materiały szkoleniowe (w wersji elektronicznej i drukowanej) udostępnione przez firmę Vavatech w ramach niniejszego kursu, należą wyłącznie do firmy Harmony sp. z o.o. i podlegają ochronie na podstawie przepisów o prawie autorskim i prawach pokrewnych.
W związku z powyższym, każdy uczestnik szkolenia zobowiązuje się nie wykonywać
żadnych z niżej wymienionych działań:
•modyfikacja, adaptacja, zmiana, łączenie lub tłumaczenie materiałów oraz tworzenie prac pochodnych na ich podstawie;
•wypożyczanie, sprzedaż lub innego rodzaju przekazywanie materiałów szkoleniowych jakiejkolwiek stronie trzeciej;
•kopiowanie lub jakiekolwiek powielanie materiałów.
W ramach szkolenia uczestnik otrzymuje jedynie prawo własności otrzymanego
egzemplarza materiałów i uprawniony jest do jego używania wyłącznie w
ramach dozwolonego użytku określonego w przepisach i własności intelektualnej.
#1//HTML

#1//HTML

Przykładowy, podstawowy plik HTML strony WWW
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Hello my dear!</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
Hello my dear!
</body>
</html>
#1//HTML - SKŁADNIA

<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Hello my dear!</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<!-- Header start -->
<header>
Hello!
</header>
<!-- Header end -->
<!-- Content start -->
<main id="content" class="style-secondary">
<div>
<h1>Lorem ipsum dolor sit.</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. <em>Reiciendis, quia.</em></p>
<p><strong>Porro, sed nemo laboriosam tempore,</strong> tempora cupiditate harum molestias voluptas!</p>
</div>
<div>
<p><a href="https://placeholder.com/">Get placeholder!</a> and have fun :)</p>
<img src="http://via.placeholder.com/350x150" alt="Image">
</div>
</main>
<!-- Content end -->
<hr>
<!-- Footer start -->
<footer id="footer" class="style-primary">
Copyright 2018
</footer>
<!-- Footer end -->
</body>
</html>
#1//HTML - Budowa tagu

<!-- tag posiadający tag domykający -->
<nazwa-tagu atrybut1="wartosc" atrybut2="wartoscA wartoscB"> ... zawartość tagu ... </nazwa-tagu>
<!-- tag nieposiadający tagu domykającego (samodomykający się) -->
<nazwa-tagu atrybut1="wartosc" atrybut2="wartoscA wartoscB">#1//HTML - ELEMENTY BLOKOWE

- Zajmują całą dostępną szerokość
- Zaczynają się od nowej linii
- W elementach blokowych możemy umieszczać inne elementy blokowe i liniowe (wyjątkiem jest tag <p> - zobacz tu)
- Na elementach blokowych możemy stosować właściwości modelu blokowego CSS (do zapamiętania na później :))
Charakteryzują się tym, że:
Wyświetlają się tak:
przykładowe tagi:
<div>
<header>
<nav>
<main>
<footer>
<ul>
<ol>
<table>
<form>
<h1>, <h2>, ..., <h6>
<p>
<blockquote>Więcej na ten temat na:
#1//HTML - ELEMENTY liniowe

- Zajmują tylko taką szerokość jaką wymaga zawartość tagu
- Nie zaczynają się od nowej linii
- W elementach liniowych możemy umieszczać TYLKO inne elementy liniowe
- Na elementach liniowych nie możemy stosować właściwości modelu blokowego CSS (do zapamiętania na później :))
Charakteryzują się tym, że:
Wyświetlają się tak:
przykładowe tagi:
<a>
<strong>
<span>
<em>
<img>
<input>
<label>Więcej na ten temat na:
#1//HTML - najczęściej wykorzystywane tagi i ich zastosowanie

- Jakie są najczęściej wykorzystywane tagi HTML?
- Do czego się je wykorzystuje w praktyce?
- Dlaczego ważny jest odpowiedni dobór tagów?
Więcej na ten temat na:
#1//HTML - semantyka tagów w HTML5

- Czym jest semantyka tagów?
- Na co wpływa semantyka tagów?
- Jakie znasz tagi semantyczne?
- Czym jest Document Outline?
- Czy Document Outline jest ważny?
Więcej na ten temat na:
#1//HTML - semantyka tagów w HTML5



A jak to wpływa na Document Outline?
#1//HTML - atrybuty

- Jakie znasz przykłady podstawowych atrybuty, które można nadać dla każdego dowolnego elementu HTML?
- Czym charakteryzują się te atrybuty, czym różnią się od siebie i do czego najczęściej są wykorzystywane?
- Czym są specyficzne atrybuty tagów i jakie znasz przykłady takich atrybutów?
#1//HTML - atrybuty

| Atrybut | Opis | Przykład |
|---|---|---|
| id | Identyfikator. (!) Element o danym ID może występować tylko i wyłącznie raz na danej stronie. (!!) Każdy element HTML może posiadać maksymalnie jeden identyfikator. |
<div id="header-wrapper"></div> <section id="topic-basic-terms"></section> |
| class | Klasa. (!) Na stronie może się znajdować wiele elementów posiadających tą samą klasę. (!!) Każdy element HTML może posiadać dowolną ilość klas. |
<div class="color-primary"> <div class="color-primary wide-box"> <div class="color-primary wide-box small-text"> |
| data-* | Atrybut HTML5 pozwalający na tworzenie własnych atrybutów. | <article data-article-title="Nice code in one week" data-article-id="5"></article> |
#2//css

#2//css - składnia

/* Domyślne style dla:
- strony głównej
- podstron tekstowych */
p{
font-size: 16px;
font-weight: bold;
text-align: center;
}
.category-menu{
width: 250px;
height: 300px;
float: left;
}
#main-nav{
height: 30px;
}
#main-nav.color-primary {
background-color: blue;
}Czym jest selektor?
Czym jest właściwość, a czym wartość w CSS?
#2//css - rodzaje selektorów

| Rodzaj selektora | Opis | Przykład |
|---|---|---|
| Wszystkie elementy | Wybiera wszystkie elementy | * |
| Element | Wybiera wszystkie elementy o określonym tagu | div p |
| Klasa | Wybiera wszystkie elementy o określonej wartości atrybutu class | .color-primary .text-highlighted |
| Identyfikator | Wybiera wszystkie element o określonej wartości atrybutu id. | #header #footer |
| Atrybut | Wybiera wszystkie element na podstawie wartości zadanego atrybutu | [href] [rel="nofollow"] |
| Pseudoselektor | Wybiera wszystkie elementy spełniające warunek pseudoselektora | :hover :fist-child :last-child |
Więcej na ten temat na:
#2//css - rodzaje kombinatorów

| Kombinator | Opis | Przykład |
|---|---|---|
| (spacja) | Wybiera wszystkie elementy a wewnątrz wszystkich elementów z klasą menu | .menu a |
| (brak spacji) | Wybiera element div mający identyfikator header oraz klasę color-primary | div#header.color-primary |
| > | Wybiera wszystkie elementy a znajdujące się bezpośrednio elemencie z klasą menu | .menu > a |
| , | Wybiera wszystkie elementy a i wszystkie elementy strong i wszystkie elementy span | a, strong, span |
Więcej na ten temat na:

#2//css - siła selektorów
| Rodzaj selektora | Mnożnik |
|---|---|
| Element | x1 |
| Klasa | x10 |
| Identyfikator | x100 |
| Atrybut style | x1000 |
<p id="main-text" class="custom-styles">
Lorem ipsum dolor sit.
</p>p{
font-size: 10px;
}
.custom-styles{
font-size: 11px;
}
p.custom-styles{
font-size: 44px;
}
#main-text{
font-size: 6px;
}
p#main-text{
font-size: 22px;
}
p#main-text.custom-styles{
font-size: 12px;
}Więcej na ten temat na:

#2//css - Przykłady selektorów //1
/* Wszystkie paragrafi */
p {...}
/* Wszystkie elementy z klasą "menu-item" */
.menu-item {...}
/* Element o id "main-nav" */
#man-nav {...}
/* Wszystkie elementy z atrybutem href */
[href] {...}
/* Wszystkie elementy z atrybutem rel ustawionym na nofollow */
[rel="nofollow"] {...}
/* Wszystkie elementy z atrybutem href, który zaczyna się od "file" */
[href^="file"] {...}
/* Wszystkie elementy z atrybutem href, który kończy się na ".pdf" */
[href$=".pdf"] {...}
/* Wszystkie elementy z atrybutem href, w którym znajduje się ciąg "smile" */
[href*="smile"] {...}
#2//css - Przykłady selektorów //2
/* Wszystkie tagi em strong i element z klasą hl */
em, strong, .hl {...}
/* Wszystkie paragrafy znajdujące się w elementach z klasą .section */
.section p {...}
/* Wszystkie tagi li będące bezposrednim potomkiem elementu z klasą "main-menu" */
.main-menu > li {...}
/* Wszystkie tagi a, które znajdują się w elementach
li będących bezposrednimi potomkami elementu z klasą "main-menu" */
.main-menu > li a {...}

#2//css - Przykłady selektorów //3
/* Wszystkie tagi strong posiadające klasę "hl" */
strong.hl {...}
/* Tag ul posiadający identyfikator "main-nav" */
ul#main-nav {...}
/* Tag ul posiadający identyfikator "main-nav" i klasę "custom-style" */
ul#main-nav.custom-style {...}
/* Tag ul posiadający identyfikator "main-nav" i klasy "custom-style" oraz "big" */
ul#main-nav.custom-style.big {...}
/* Wszystkie tagi "a", których wartosć atrybutu href kończy się na ".pdf" */
a[href$=".pdf"] {...}
#2//css - pseudoselektory
/* Wszystkie elementy a, na któych znajduje się kursor myszki */
a:hover {...}
/* Wszystkie odwiedzone linki */
a:visited {...}
/* Wszystkie tagi <li>, które są pierwszymi potomkami */
li:first-child {...}
/* Wszystkie tagi <p>, które są ostatnimi potomkami */
p:last-child {...}
/* Każdy co drugi (przysty) paragraf w swoim rodzicu */
p:nth-child(2n) {...}
/* Każdy nieprzysty paragraf w swoim rodzicu */
tr:nth-child(odd) {...}
/* Każdy przysty paragraf w swoim rodzicu */
td:nth-child(even) {...}
/* Każdy tag <p>, który nie posiada klasy "hl" */
p:not(.hl) {...}
#2//css - pseudoElementy
/* Dla wszystkich paragrafów na początku dodaje strzałkę o rozmiarze .6em'a */
p::before {
content: '->';
font-size: .6em;
}
/* Dla wszystkich elementów z klasą read-more dodaje na końcu znak wielokropka */
.read-more::after {
content: '...';
}Więcej na ten temat na:

#2//css - Kaskadowość

#2//css - dziedziczenie
Czym jest dziedziczenie w CSS jak działa?

#2//css - dziedziczenie

#2//css - Kaskadowość, specyfika, dziedziczenie - podsumowanie
#2//css - Jednostki

Jakie znasz jednostki, którymi możemy posługiwać się w CSS?
Czym różnią się od siebie?
Jakie jest ich optymalne przeznaczenie?

| Nazwa | Jednostka | Najczęstsze zastosowanie |
|---|---|---|
| piksele | px | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
| procenty | % | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
| emy | em | Definiowanie Media Queries, wielkości czcionek. |
| remy | rem | Definiowanie wielkości czcionek. |
| procent szerokości okna (viewport) | vw | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
| procent wysokości okna (viewport) | vh | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
| procent najmniejszego wymiaru okna (viewport) | vmin | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
| procent największego wymiaru okna (viewport) | vmax | Definiowanie szerokości, wysokości, marginesów, paddingów, etc. |
W CSS oprócz powyższych można spotkać inne jednostki jak: ex, cm, mm, in, pt, pc - jednak są one bardzo rzadko stosowane. Zobacz więcej na: W3Schools.
#2//CSS - najcześciej wykorzystywane jednostki
#2//css - Jednostki / em i rem

1 em = 100% z wielkości rodzica
1 rem = 100% z wielkości głównego węzła (root)
#2//css - Jednostki / vw i vh

1 vw = 1% szerokości okna (viewport)
1 vh = 1% wysokości okna (viewport)
#2//css - Jednostki / vmin i vmax

1 vmin = 1% najmniejszego wymiaru okna (viewport)
1 vmax = 1% największego wymiaru okna (viewport)
Tworzenie stron WWW: HTML, CSS (Vavatech, 24-25.09.2018)
By Maciej Żukiewicz
Tworzenie stron WWW: HTML, CSS (Vavatech, 24-25.09.2018)
- 186