CSS Dla Blogerów

Marcin Krzemiński


krzeminski.net
marcin@krzeminski.net

github youtube-play codepen twitter

Agenda

  1. Wprowadzenie ~10 minut
  2. Omówienie podstaw ~ 45 minut
  3. Zadania praktyczne i zabawa ~ 30 minut
  4. Konkurs z nagrodami ~5 minut
  5. Podsumowanie

Czat

tlk.io/cssdb

Dla kogo?

Dla osób zupełnie początkujących, który nie miały styczności z tworzeniem stron, pisaniem kodu HTML i CSS.

Co jest wymagane?

Jakakolwiek nowoczesna przeglądarka.
Chrome, Firefox

* ja będę używał Google Chrome pod macOS

Co się przyda?

codepen.io

Tutaj będziemy się bawić w HTML i CSS

Odpalcie sobie tą stronę w zakładce lub nowym oknie. Jeśli chcecie zapisać swoje zmiany musicie założyć konto.

Znajomość języka angielskiego

⁉️

  1. Elementy języka HTML i CSS to skróty lub słowa po angielsku.
  2. Duża część wiedzy w tym dokumentacja często po angielsku (są fragmenty po polsku 🙌).

Czy to jest zrozumiałe?

<style> body { background-color: red; color: blue; font-weight: bold; } </style>

A to?

<header style="color: red;"> <h1> CSS Dla Blogerów </h1> </header>
Toim Berners-Lee
Kto wie kim jest ten przystojniak?

HTML

HyperText Markup Language

Nie jest językiem programowania, nie zawiera żadnej logiki. Jest językiem znaczników służącym do definiowania elementów w dokumencie (pliku HTML), który jest wyświetlany w przeglądarce.
Znaczniki HTML to nic innego jak elementy pewnej układanki, jak puzzle czy klocki lego.

Jak wygląda element?

Zawartość
  • Jest to pewne słowo / skrót w j. angielskim zawarte w nawiasach trójkątnych < oraz >.
  • W większości przypadków zawiera tag otwierający (linia 1) i tag zamykający (linia 3).
  • Tag zamykający poprzedzony jest ukośnikiem (ang. slash) /.
  • W większości przypadków znaczniki można zagnieżdżać.

Atrybuty

CSS dla Blogerów
  • Każdy element może posiadać jeden lub wiele atrybutów.
  • Atrybut to zazwyczaj para typu klucz / wartość np. class="align-left". Istnieją atrybuty, które można zapisać bez wartości, tylko sam klucz, np. disabled.
  • Atrybut umieszczamy w tagu otwierającym
  • Każdy atrybut oddzielamy spacją
  • Wartość atrybutu umieszczamy w cudzysłowie

Podstawowe znaczniki HTML

<p> jak paragraph

Akapit

Używany do wyświetlania akapitu, bloku treści.

Warsztaty CSS dla Blogerów na WordCamp Łódź.

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/p

<h> jak heading

Nagłówek

Używane do separacji zwartości treści i innych elementów na stronie.
Mamy 6 poziomów, h1 najważniejszy, h6 najmniej ważny.

Nagłówek stopnia 1

Nagłówek stopnia 2

Nagłówek stopnia 3

...

wiki.developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements

a jak anchor

Hiperłącze / link / kotwica

Używany do zdefiniowania linku do wewnętrznego lub zewnętrznego źródła (strony, dokumentu, pliku, adresu email, telefonu, itd).

wiki.developer.mozilla.org/en-US/docs/Web/HTML/Element/a

Nasza oferta Wyszukiwarka Google Hiperłącze do sekcji na tej samej stronie
Sekcja na stronie do której odnosi powyższe hiperłącze

<img> jak image

Obrazek / zdjęcie / grafika

Używany do wyświetlenia obrazka. Atrybut alt nie jest wymagany, ale jest wskazany, zwłaszcza jeśli obrazek niesie za sobą jakąś wartość informację, a nie tylko wizualną. <img> jest jednym z tych znaczników, które nie mają tagu zamykające

<img src="images/logo.png" alt=""> <img src="https://domena.pl/images/wykres.png" alt="Wykres przychodu firmy za 2019 rok">

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/img

<div> jak division

Generyczny kontener

Używany do otoczenia innych elementów w celu zgrupowania ich. Element ten należy stosować w momencie gdy nie może go zastąpić żaden inny, bardziej pasujący element (np. article lub section).

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor, explicabo?

<img src="images/soft-kitty.jpg" alt="Soft Kitty, Warm Kitty">

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/div

article

kontener treści

Używany do otoczenia treści, która jest ze sobą powiązana i może być użyty samodzielnie poza całym dokumentem nie tracąc przy tym sensu.

CSS dla Blogerów

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor, explicabo?

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam amet dolore ducimus fugiat id inventore, perferendis porro provident reprehenderit sequi?

<img src="images/soft-kitty.jpg" alt="Soft Kitty"&;gt;

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/article

section

Kontener

Używany do otoczenia zawartości, której nie można przedstawić za pomocą bardziej szczegółowego elementu jak chociażby article

<section>

CSS dla Blogerów

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor, explicabo?

</section>

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/section

Jaki element wybrać?

Jak wybrać odpowiedni element. Źródło: html5doctor.com/downloads/h5d-sectioning-flowchart.pdf

<ol> jak ordered list

lista uporządkowana

Używany do wyświetlania listy elementów od najważniejszego do najmniej ważnego

  1. pierwszy punkt - najważniejszy
  2. drugi punkt - mniej ważny
  3. trzeci punkt - najmniej ważny

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/ol

<ul> jak unordered list

Lista nieuporządkowana

Używany do wyświetlania nieuporządkowane listy elementów, których kolejność na liście nie ma znaczenia

  • Pierwszy element na liście
  • Kolejny element na liście, ten jest nieco dłuższy
  • A ten zawiera link do wpisu

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/ul

<li> jak list item

Pozycja na liście

Używany do wyświetlania elementu na liście

  1. pierwszy punkt - najważniejszy
  2. drugi punkt - mniej ważny
  3. trzeci punkt - najmniej ważny

wiki.developer.mozilla.org/pl/docs/Web/HTML/Element/ol

To tylko niewielka część, z tego co oferuje nam HTML. Poniżej odnośniki do pełnej listy w dwóch różnych formach.

<table> jak ... table

<table> <tr> <td>Lorem ipsum.</td> <td>Lorem ipsum.</td> </tr> <tr> <td>Lorem ipsum.</td> <td>Lorem ipsum.</td> </tr> </table>

<form> jak formularz

HTML

Podsumowanie

  1. HTML to język znaczników, nie język programowania
  2. Elementy HTML to bloki, z których składamy stronę
  3. Prawie każdy blok (element) posiada tag otwierający i zamykający
  4. Elementy mogą być zagnieżdżone
  5. Elementy mogą posiadać atrybuty

Przerwa?

CSS

Cascading Style Sheets

CSS tak jak HTML nie jest językiem programowania.

Jest używany do definiowania wyglądu elementów a także układu na stronie.

Co potrafi CSS?

Podstawy

Składnia CSS

Reguła CSS mówi przeglądarce jak dany element ma wyglądać, przykładowo: Chcę aby każdy nagłówek h1 miał kolor czerwony.

h1 { color: red; }

Rodzaje selektorów

Selektor po tagu HTML

h1 { color: red; }

Selektor po klasie CSS

.error { color: red; }

Selektor po atrybucie ID

#error { color: red; }

Selektory pseudo-elementów i pseudo-klas

.box::after { /* pseudo-element */ color: red; } a:hover { /* pseudo-klasa */ color: red; }

Selektory można łączyć

#error div .heading { color: red; }
⚠️ With great power comes great responsibility.

Kaskada

Kolejność reguł w pliku / plikach CSS ma znaczenie. Ustala, który selektor jest najważniejszy.

Dziedziczenie

Style zdefiniowane na rodzicu mają wpływ na to jak wyglądają dzieci.

Nie wszystkie właściwości są dziedziczone.

Specyficzność

Pozwala przeglądarce podjąć decyzję jaki styl przypisać elementowi, jeśli kilka reguła pasuje do kilku elementów.

Specyficzność ma wyższy priorytet niż kaskada, dzięki czemu nie musimy przenosić reguł w pliku. Wystarczy, że nadamy selektorowi większą wagę.

Specyficzność selektorów

Na podstawowym poziomie można posłużyć się systemem liczbowym.

/* 0 0 0 1 - elementy oraz pseudoelementy */ h1, ::after {} /* 0 0 1 0 - klasy, pseudoklasy i atrybuty */ .warning, :hover, [title] {} /* 0 1 0 0 - IDki */ #main-section {} /* 1 0 0 0 - inline */

Kalkulator wagi selektorów

codecaptain.io/tools/css-specificity-calculator

!important

Przy pomocy słowa kluczowego !important możemy nadpisać właściwości bez tworzenie mocniejszego selektora. Używanie !important to na ogół zła praktyka, jednak są sytuacje kiedy się przydaje.

Model pudełkowy

Każdy element na stronie jest w jakim sensie prostokątem. Niektóre z nich przenoszą elementy poniżej do nowej lini (elementy blokowe) a inne nie (elementy liniowe)

Elementy blokowe vs. liniowe

Blokowe

ang. block level elements

np. div, h1, p, section, article

  • domyślnie każdy element ma 100% szerokości rodzica
  • element blokowy przenosi każdy kolejny element po nim następujący do nowej lini
  • szerokość i wysokość elementu jest respektowana

Liniowe

ang. inline level elements

np. a, span, em, strong

  • domyślny rozmiar wynosi tyle ile zawartość tego elementu
  • każdy kolejny element po elemencie liniowym wyświetla się w tej samej lini
  • szerokość i wysokość elementu nie jest respektowana

Składowe modelu pudełkowego

  • Zawartość (ang. content)
  • Wypełnienie / odstęp wewnętrzny (ang. padding)
  • Obramowanie (ang. border)
  • Margines / odstęp zewnętrzny (ang. margin)

Model pudełkowy wizualnie

Ważna uwaga

Domyślnie takie właściwości jak wypełnienie czy czy margines oraz obramowanie wpływają na zwiększenie rozmiaru elementu, dlatego aby ułatwić sobie życie warto korzystać z właściwości box-sizing: border-box; na głównym elemencie.

Jednostki w CSS

Jednostek w CSS używany to ustawienia rozmiaru elementów, wielkości fontów, obramowania, pozycji i wielu innych właściwości.

Wybrane jednostki

  • px - oznacza rozmiar absolutny, niezależny od innych właściwości
  • % - rozmiar relatywny do rodzica - font-size / width / height
  • em - rozmiar relatywny względem wielkości fonta w bezpośrednim rodzicu rodzica
  • rem - rozmiar relatywny względem wielkości fonta głównego węzła / elementu (rem = root em)

Zapis skrócony vs. zapis pełny

Wiele właściwości w CSS można zapisać przy pomocy zapisu pełnego (dosłownego) lub zapisu skrócone.

.box { padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; } /* zgodnie z ruchem wskazówek zegara: top, right, bottom, left */ .box { padding: 10px; } /* top, bottom: 10px, right,left: 20px */ .box { padding: 10px 20px; } Jaki wybrać? To zależy - od konkretnej sytuacji a także preferencji kodera.

Podsumowanie podstawowych pojęć

  • Reguły CSS i Selektory
  • Kaskada
  • Dziedziczenie
  • Specyficzność
  • Model pudełkowy
  • Jednostki
  • Zapis skrócony vs. zapis pełny

Wybrane właściwości

Kolory

Kolory w CSS można zapisywać na wiele różnych sposobów.

  • Po nazwie koloru w języku angielskim, np. red, blue
  • Używając zapisu heksadecymalnego dla RGB (Red, Green, Blue), np. #ff0000
  • Używając zapisu funkcyjnego dla RGB, np. rgb(255, 0 , 0) lub rgb(100%, 0%, 0%)
  • Jeśli chcemy dołożyć przezroczystość (kanał alfa) używany zapisu rgba(255, 0, 0, 0.5) czerwony, 50% przezroczystości

Typografia

Wybrane właściwości

  • color - kolor
  • font-family - rodzina fontów
  • font-size - rozmiar
  • font-weight - grubość
  • font-style - styl
  • line-height - wysokość lini / wiersza
  • font - zapis skrócony
  • letter spacing - odstęp między literami
  • text-align - wyrównanie tekstu
  • text-decoration - dekoracja tekstu
  • text-transform - transformacja tekstu

Tło

Wybrane właściwości

  • background-color - kolor
  • background-image - obrazek / gradient
  • background-size - rozmiar tła
  • background-position - pozycja
  • background-repeat - powielanie tła
  • background - zapis skrócony
  • box-shadow - cień

Obramowania i Zaokrąglenia

Wybrane właściwości

  • border-top - górne obramowanie
  • border-right - prawe obramowanie
  • border-bottom - dolne obramowanie
  • border-left - lewe obramowanie
  • border-style - styl obramowania
  • border-width - szerokość obramowania
  • border-color - kolor obramowania
  • border - zapis skrócony
  • border-radius - zaokrąglone rogi, zapis skrócony

Odstępy

Wybrane właściwości

  • margin - margines / zapis skrócony
  • padding - dopełnienie / zapis skrócony

Rozmiar

Wybrane właściwości

  • width - szerokość
  • height - wysokość
  • min-width - minimalna szerokość
  • min-height - minimalna wysokość
  • max-width - maksymalna szerokość
  • max-height - maksymalna wysokość

Widoczność elementów

Wybrane właściwości

  • display - wyświetl
  • visibility - widoczność
  • opacity - przezroczystość

Pseudo klasy

Wybrane właściwości

  • :hover - po najechaniu kursorem na element

Responsive Web Design

Z RWD ściśle związany jest takie pojęcie jak Media Queries.

Mobile First

Skupiamy się na małych ekranach i dostosowujemy jak rozmiar ekranu rośnie

Desktop First

Skupiamy się na dużych ekranach i dostosowujemy jak rozmiar ekranu maleje

CSS w praktyce

Logujemy się do testowego bloga

Adres logowania: wordpress.seohost.com.pl/CYFRA/admin

Jak znaleźć element, który chcemy zmienić?

Konkurs

Pierwsze 3 osoby otrzymają konto hostingowe w SeoHost.pl na rok, a także e-booka Oli Gościniak "CSS w Praktyce" aby dalej szlifować swoją wiedzę z CSSa.

Dziękuję za uwagę

  1. Zabierzcie ze sobą dostępy. Na swoich blogach możecie się bawić jeszcze przez najbliższe 11 miesięcy.
  2. Link do prezentacji a także materiałów pomocniczych na moim blogu pod adresem: krzeminski.net
  3. Jeśli macie jakiekolwiek pytania piszcie śmiało na marcin@krzeminski.net lub bezpośrednio w trakcie trwania konferencji.