Tworzenie i praca z arkuszami stylów CSS

Transkrypt

Tworzenie i praca z arkuszami stylów CSS
Ćwiczenie 3
Temat:
Tworzenie i praca
z arkuszami stylów
CSS
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie studenta z możliwościami formatowania
wyglądu strony internetowej za pomocą kaskadowych arkuszy stylów CSS.
Student zapozna się z metodami osadzania stylów w dokumencie, definiowania
stylów
dla
poszczególnych
selektorów,
selektorów
pseudoklas
oraz
pseudoelementów.
Celem tego ćwiczenie nie jest testowanie poszczególnych właściwości
wyglądu stron internetowych, a raczej przedstawienie sposób pracy z
arkuszami stylów.
Kaskadowe arkusze stylów CSS - Wstęp
Kaskadowe arkusze stylów (CSS z ang. Cascading Style Sheets) to rodzaj języka skryptowego,
interpretowanego po stronie przeglądarki klienta, służącego do opisu wyglądu
poszczególnych elementów stron internetowych.
CSS powstał z potrzeby rozszerzenia
możliwości definiowania wyglądu stron internetowych. Pozwolił oddzielić aspekt treści
strony od kwestii jej formatowania. Zaletą styli CSS jest fakt, że do raz zdefiniowanego stylu
dla danego elementu strony można się odwoływać wielokrotnie bez konieczności
wielokrotnego powtarzania dyrektyw formatowanie. Arkusz składa się z reguł definiujących
styl dla danego elementu strony internetowej (np. akapitu, tabeli itd., pola formularza).
Reguła składa się z selektora oraz deklaracji stylu. Natomiast deklaracja stylu składa się z
poszczególnych właściwości i ich wartości.
selektor{
właściwość_A: wartość1;
właściwość_B: wartość2;
}
Selektorem może być każdy znacznik HTML. Przykładem definicji właściwości znacznika h1
oraz h2 jest zapis:
h1{
color: red;
font-size: 34pt;
}
h2{
color: blue;
font-size: 30pt;
}
Osadzanie stylów CSS
Style mogą zostać osadzone w dokumencie za pomocą trzech metod:
•
Poprzez osadzenie łącza do zewnętrznego pliku stylów, za pomocą znacznika link,
który musi znajdować się w sekcji head dokumentu, np.
<link rel="Stylesheet" href="ścieŜka_do_pliku/styl.css" type="text/css" />
Tworzenie i praca z arkuszami stylów CSS
30
•
Poprzez definicję stylu w nagłówku dokumentu, za pomocą znacznika style. Pamiętać
należy, że definicja stylu musi znajdować się w sekcji head dokumentu, np.:
<style type="text/css">
h1{
color : red;
font-size : 34pt;
}
</style>
•
Poprzez bezpośrednią definicję stylu w parametrze „style” znacznika którego styl ma
dotyczyć. Pamiętać należy, że kolejne właściwości należy oddzielać znakiem „;” np.:
<h1 style="color : blue; font-size : 24pt;">Tytuł sekcji</h1>
Kaskadowa struktura stylów CSS – Kolejność interpretacji
Nazwa „kaskadowe arkusze stylów” wywodzi się z faktu, iż style interpretowane są
hierarchicznie. Na pierwszym miejscu brany jest pod uwagę styl przeglądarki internetowej.
Styl ten został zdefiniowany przez autorów (programistów) tworzących przeglądarkę, i to oni
zadecydowali, jaki rozmiar, kolor, czy wyrównanie domyśle posiada tekst zawarty w sekcji
jakiegoś znacznika, jeśli nie ma jawnie zdefiniowanego wyglądu. Następnie pod uwagę brany
jest styl zdefiniowany w zewnętrznym pliku CSS (za pomocą znacznika link). W następnej
kolejności pod uwagę brany jest styl zdefiniowany w nagłówku strony, a na końcu styl
zdefiniowany w parametrze style konkretnego znacznika. Schemat interpretacji stylów
przedstawia poniższy rysunek:
Schemat kolejności interpretacji stylów strony internetowej.
Tworzenie i praca z arkuszami stylów CSS
31
Oznacza to, iż zawsze pierwszeństwo ma definicja, która jest „najbliższa” znacznikowi
(interpretowana jako ostatnia).
Zadanie 1. Dołączanie styli do strony – zasady pierwszeństwa
Celem ćwiczenia jest dołączenie do strony internetowej stylów CSS za pomocą trzech
możliwych metod. Potrzebne do wykonania ćwiczenia właściwości i ich możliwe wartości
znaleźć można w załączniku 1 do tego ćwiczenia. W celu realizacji zadania postępuj wg
poniższych zaleceń:
1. Stworzyć prostą stronę internetową, zawierającą znaczniki:
•
Div (stworzyć dwa osobne akapity tekstu objęte znacznikami div)
•
H1
•
H2
•
TD (wykonać prostą tabelę 4x4)
2. Zdefiniować style:
2.1. W zewnętrznym pliku tekstowym o nazwie styl_01.css. Plik za pomocą znacznika link
dołączyć do strony internetowej. W pliku styli zdefiniować wygląd znaczników :
•
DIV:
o Kolor tekstu: czerwony
o Rozmiar czcionki: 32
•
H1
o Kolor tekstu: niebieski
o Rozmiar czcionki: 32
•
BODY
o Zdefiniować obrazek tła, tak aby znajdował się w prawym dolnym
rogu strony, nie powtarzał się na stronie oraz aby nie przewijał się
razem ze stroną lecz znajdował się zawsze w tym samym miejscu
mimo, że strona będzie się przewijała.
2.2. W nagłówku dokumentu HTML zdefiniować styl dla znaczników:
•
DIV
o Kolor tekstu: niebieski
Tworzenie i praca z arkuszami stylów CSS
32
o Rozmiar czcionki: 22
•
H2
o Kolor tekstu: zielony
o Rozmiar czcionki: 22
•
TD
o Wyrównanie tekstu pionowe: do środka
o Wyrównanie tekstu poziome: do lewej
o Wysokość komórki: 100px
o Szerokość komórki: 100px
2.3. W jednym ze znaczników DIV, stworzyć parametr STYLE, a następnie zdefiniować w
nim kolor tekstu na czerwony, oraz rozmiar tekstu na 15pt.
3. Sprawdzić w przeglądarce efekt działania definicji stylów. Zwrócić szczególną uwagę na
znaczniki DIV który definiowany był w każdym z możliwych sposobów. Jakie
właściwości przyjął ostatecznie tekst objęty tym znacznikiem ?
Grupy i rodziny selektorów
Zbiorowe definiowanie stylów może być zrealizowane dla grup selektorów lub dla rodzin
selektorów. W celu zdefiniowania wyglądu dla więcej niż jednego selektora wystarczy
wypisać nazwy selektorów których styl ma dotyczyć rozdzielone znakiem przecinka: np.:
h1, h2, div, p
{
color: Black;
}
W powyższym przykładzie zdefiniowany został kolor tekstu dla grupy znaczników. Oczywiście
zastosowane będą tylko właściwości które odnoszą się do danego znacznika. Przykładowo,
grupując znacznik rysunku (img) i komórki (td) należy mieć świadomość, że niektóre
właściwości zadziałają tylko dla komórki, a niektóre tylko dla rysunku.
Tworzenie i praca z arkuszami stylów CSS
33
Definicja stylu może być także zależna od miejsca, gdzie znajduje się formatowany znacznik
(w jakiej zależności rodzinnej występuje). Wyróżnia się trzy rodzaje zależności:
•
Selektor potomka, np.:
h1 i { color: green }
Powyższa definicja dotyczy znacznika <i> ... </i>. Tekst zawarty w tym znaczniku
będzie koloru zielonego, tylko wtedy, gdy znajduje się pomiędzy znacznikami <h1> ...
</h1>, ale niekoniecznie bezpośrednio, może znajdować się dodatkowo w innym
znaczniku, jednak nadal jest potomnym dla znacznika <h1>
•
Selektor dziecka, np.: p > b { color: red }
Powyższa definicja dotyczy znacznika <b> ... </b>. Tekst zawarty w tym znaczniku
będzie koloru czerwonego, tylko wtedy, gdy znajduje się bezpośrednio pomiędzy
znacznikami <p> ... </p>, nie może znajdować się w innym znaczniku.
•
Selektor braci, np.: i + b { color: blue }
Powyższa definicja dotyczy znacznika <b> ... </b>. Tekst zawarty w tym znaczniku
będzie koloru niebieskiego, tylko wtedy, gdy występuje bezpośrednio po znacznikach
<i> ... </i>, nie może znajdować się dodatkowo w innym znaczniku, .
Zadanie 2. Grupy i rodziny selektorów.
Przetestować grupowanie oraz zależności rodzinne selektorów:
1. Zdefiniować wyrównanie tekstu do lewej strony dla grupy znaczników: div, p oraz td.
2. Stworzyć definicję stylu dla znacznika <b> (kolor tekstu: czerwony, rozmiar czcionki:
20pt), który zastosowany zostanie tylko wtedy, gdy znacznik znajdzie się w znaczniku
<div>
3. Stworzyć definicję stylu dla znacznika <i> (kolor tekstu: zielony), który zastosowany
zostanie tylko wtedy, gdy znacznik znajdzie się w znaczniku <H1> lub w kolejnych
potomnych znacznikach.
4. Stworzyć definicję stylu dla znacznika <U> (kolor tekstu: niebieski), który zastosowany
zostanie tylko wtedy, gdy znacznik znajdzie się bezpośrednio po znaczniku </b> .
5. Stworzyć stronę HTML testującą zależności zdefiniowanych stylów.
Tworzenie i praca z arkuszami stylów CSS
34
Selektory atrybutów (parametrów) znacznika
Większość znaczników w języku HTML może posiadać parametry takie jak np. wyrównanie w
komórce <td align=”left”> czy szerokość obrazka <img width=”300px”>. Możliwe jest
określenie stylu dla danego znacznika w zależności od jego parametrów. Nadanie stylu
danemu znacznikowi uzależnić można od sytuacji, w której:
•
Parametr istnieje, np.: td[width]{text-align: center}
Jeśli komórka ma określony parametr szerokości (jego wartość jest nieistotna) styl
zostanie zastosowany
•
Parametr istnieje i wynosi, np.: div[align="left"]{color:blue}
Jeśli akapit ma określony parametr wyrównania tekstu i jest to wyrównanie „do
lewej” to styl zostanie zastosowany
•
Parametr istnieje, a jego wartość zawiera określony wyraz, np.:
img[Alt~="Fotografia"]{width: 450px}
Jeśli znacznik obrazka posiada parametr ”alt” a jego częścią jest wyraz „Fotografia” to
styl zostanie zastosowany
•
Parametr istnieje, a jego wartość rozpoczyna się od określonego wyrazu, np.:
img[Alt|="Fotografia"]{height: 300px; width: 350}
Jeśli znacznik obrazka posiada parametr ”alt” a jego wartość rozpoczyna się od
wyrazu „Fotografia” to styl zostanie zastosowany.
Parametry można także łączyć, np.:
div[class][align="left"] { color: red }
W powyższym przypadku styl zostanie zastosowany do akapitów, które posiadają określony
(jakikolwiek) atrybut klasy oraz atrybut wyrównania tekstu do lewej.
Możliwe jest także pominięcie nazwy znacznika, dla którego dany parametr ma istnieć
poprzez zastosowanie symbolu gwiazdki *:
*[align="left"] { color: red }
W takim przypadku zarówno paragraf <p> jak i akapit <div> jeśli będą posiadały parametr
align=”left” wyświetlone zostaną na czerwono.
Tworzenie i praca z arkuszami stylów CSS
35
Zadanie 3. Selektory atrybutów (parametrów) znacznika
1. Stworzyć styl nadający kolor czerwony wszystkim tekstom objętych znacznikiem <div>
posiadających parametr wyrównania tekstu do strony prawej.
2. Stworzyć styl nadający kolor niebieski wszystkim tekstom objętych dowolnym
znacznikiem posiadającym parametr wyrównania tekstu do strony lewej.
3. Przetestować powyższe definicje stylów.
Klasy selektorów oraz selektor ID
Klasa jest nazwą własną danego stylu zdefiniowanego dla jednego selektora lub w przypadku
użycia symbolu * dana klasa może zostać wywołana dla wszystkich selektorów. Nazwa klasy
może zawierać tylko litery i cyfry (najlepiej nie używać polskich znaków) oraz znaki ”-”
(minus) oraz ”_” (podkreślenie). Poniżej przykład definicji dwóch klas:
*.wazny_tekst {
color: red;
}
a.ciekawe_linki {
color:green;
}
Pierwsza klasa “wazny_tekst” to klasa ogólna, może zostać zastosowana we wszystkich
znacznikach w których znajduje się tekst, np.:
<div class="wazny_tekst"> ... </div>
<p class="wazny_tekst"> ... </p>
<td class="wazny_tekst"> ... </td>
W każdym z tych przypadków tekst zawarty pomiędzy znacznikami będzie koloru
czerwonego. W drugim przypadku tylko znacznik <a> może mieć klasę „ciekawe_linki”. Jeśli
inny znacznik niż <a> będzie mieć klasę „ciekawe_linki” styl nie zostanie zastosowany.
<p class="ciekawe_linki">Strony warte polecenia:</p>
<a href="http://google.com" class="ciekawe_linki">Google</a>
Tworzenie i praca z arkuszami stylów CSS
36
Style mogą być także definiowane za pomocą selektora ID. Analogicznie jak w przypadku
klasy, identyfikator może być przypisany do jednego selektora, lub może zostać zdefiniowany
ogólnie, np.:
#w_ramce {
border : 1px solid black ;
}
div#obramowany {
border : 2px solid red ;
}
Odwołania do tak zdefiniowanych stylów realizuje się za pomocą parametru id, np.:
<div id="obramowany"> ... </div>
<p id="w_ramce"> ... </p>
Atrybut id nadaje unikalną nazwę dla wybranego znacznika (pola, akapitu). W jednym
dokumencie może istnieć tylko jeden element o takiej samej nazwie ID. Dlatego styl dla
parametru ID definiuje się najczęściej dla elementów, które występują na stronie tylko raz.
Pseudoklasy
W celu zastosowanie różnych stylów elementów w zależności od ich stanu stosuje się
określenia pseudoklas. Wyróżnić można następujące pseudoklasy:
•
:link – pseudoklasa nieodwiedzanego jeszcze łącza (linka)
•
:visited – pseudoklasa odwiedzonego już łącza
•
:hover – pseudoklasa wskazywanego myszą łącza
•
:active – pseudoklasa wybranego (klikniętego) łącza
•
:focus – pseudoklasa elementu, który został zaznaczony, lub wybrany klawiszem
tabulatora
Wszystkie powyższe pseudoklasy mogą zostać użyte ze znacznikiem <a>, natomiast
ostatnia może dodatkowo dotyczyć wszystkich elementów formularzy. Pozwala to
określić inny wygląd łącza (linku) zanim został wybrany (kliknięty) oraz inny wygląd po
najechaniu nad link wskaźnikiem myszy. W przypadku pól formularzy, pseudoklasa :focus
pozwala na zdefiniowanie innego wyglądu nieaktywnych pół oraz innego dla pola w
którym znajduje się kursor (edytowanego pola).
Tworzenie i praca z arkuszami stylów CSS
37
Wygląd łącza dla konkretnego stanu może zostać zdefiniowany ogólnie, dla wszystkich
znaczników <a>, np.:
a:link {color:blue; text-decoration:none}
lub dla konkretnej klasy łącza:
a.ciekawe_linki:link {color:blue; text-decoration:none}
Zadanie 4. Klasy, pseudoklasy, selektor ID
Stworzyć:
1. Klasę stylów „wazny_tekst” dla znaczników <div>. Tekst tej klasy będzie koloru
niebieskiego.
2. Klasę stylów „wyroznione” dla wszystkich znaczników. Tekst tej klasy będzie pogrubiony
oraz pisany kursywą.
3. Klasę stylów „wyrozniona_kom” dla znaczników <td>. Tekst w komórce tej klasy będzie
wyrównany do środka (zarówno w poziomie i pionie), pogrubiony oraz posiadał będzie
żółte tło.
4. Styl dla pola tekstowego o nazwie ID=”nazwisko”. Pole będzie koloru szarego (#c4c4c4).
Jednak podczas edycji pole będzie miało kolor biały.
5. Odpowiednie style dla znacznika <a>, tak aby każdy link w dokumencie był koloru
niebieskiego, pogrubiony, bez podkreślenia. Natomiast po najechaniu na niego
wskaźnikiem myszy link powinien być pomarańczowy, pogrubiony i podkreślony.
6. Utworzone style przetestować w dokumencie HTML
Tworzenie i praca z arkuszami stylów CSS
38
ĆWICZENIE 3 - DODATEK 1- Najważniejsze właściwości i ich wartości
Właściwości tła
Właściwości
background-attachment
background-color
background-image
background-position
background-repeat
Opis
Wartości
Określa jak ma być osadzony obrazek scroll
tła. Czy ma być zablokowany, czy
fixed
powinien przewijać się ze stroną
inherit
color-rgb
color-hex
Definiuje kolor tła elementu
color-name
transparent
inherit
url(URL)
Określa obrazek tła elementu
none
inherit
top left
top center
top right
center left
center center
Określa pozycję obrazka w tle
center right
elementu
bottom left
bottom center
bottom right
x% y%
xpos ypos
inherit
repeat
Określa, czy obrazek tła powinien się repeat-x
powtarzać, jeśli tak to ile razy i w
repeat-y
jakich kierunkach.
no-repeat
inherit
Tworzenie i praca z arkuszami stylów CSS
39
Właściwości tekstu
Właściwości
Opis
Wartości
color
Określa kolor tekstu
direction
Określa kierunek tekstu
line-height
Określa odstęp pomiędzy kolejnymi liniami tekstu
letter-spacing
Określa odległość pomiędzy literami
text-align
Określa wyrównanie tekstu
text-decoration
Określa „dekorację” (styl) tekstu: podkreślenie,
przekreślenie, miganie itd.
text-indent
Określa wcięcie akapitu
text-shadow
Określa kolor efektu cienia tekstu
text-transform
Zamienia tekst na małe/duże litery, kapitaliki
vertical-align
Określa pionowe wyrównanie tekstu
word-spacing
Określa odległości pomiędzy wyrazami
color
ltr
rtl
normal
number
length
%
normal
length
left
right
center
justify
none
underline
overline
line-through
blink
length
%
none
color
length
none
capitalize
uppercase
lowercase
baseline
sub
super
top
text-top
middle
bottom
text-bottom
length
%
normal
length
Tworzenie i praca z arkuszami stylów CSS
40
Właściwości czcionki
Właściwości
font-family
font-size
font-style
font-variant
font-weight
Opis
Wartości
family-name
generic-family
inherit
xx-small
x-small
small
medium
large
x-large
Określa rozmiar czcionki
xx-large
smaller
larger
length
%
inherit
normal
italic
Określa styl tekstu
oblique
inherit
normal
Określa wariant czcionki
small-caps
inherit
normal
bold
bolder
lighter
100
200
300
Określa „wagę” czcionki (stopień pogrubienia)
400
500
600
700
800
900
inherit
Określa czcionkę
Tworzenie i praca z arkuszami stylów CSS
41
Właściwości obramowań
Właściwości
Opis
Wartości
border
Specyfikacja obramowania w jednej deklaracji
border-bottom
Specyfikacja dolnego obramowania w jednej
deklaracji
border-bottom-color
border-bottom-style
border-bottom-width
Kolor dolnego obramowania
Styl dolnego obramowania
Szerokość dolnego obramowania
border-color
Kolor obramowania
border-left
Specyfikacja lewego obramowania w jednej
deklaracji
border-left-color
border-left-style
border-left-width
Kolor lewego obramowania
Styl lewego obramowania
Szerokość lewego obramowania
border-right
Specyfikacja prawego obramowania w jednej
deklaracji
border-right-color
border-right-style
border-right-width
Kolor prawego obramowania
Styl prawego obramowania
Szerokość prawego obramowania
border-style
Określa styl wszystkich ram
border-top
Specyfikacja górnego obramowania w jednej
deklaracji
border-top-color
border-top-style
border-top-width
Kolor górnego obramowania
Styl górnego obramowania
Szerokość górnego obramowania
border-width
Określa grubość obramowania
border-width
border-style
border-color
border-bottom-width
border-bottom-style
border-bottom-color
border-color
border-style
border-width
color_name
hex_number
rgb_number
transparent
inherit
border-left-width
border-left-style
border-left-color
border-color
border-style
border-width
border-right-width
border-right-style
border-right-color
border-color
border-style
border-width
none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset
inherit
border-top-width
border-top-style
border-top-color
border-color
border-style
border-width
thin
medium
thick
length
inherit
Tworzenie i praca z arkuszami stylów CSS
42
Właściwości tabel i komórek
Właściwości
Opis
width
height
Szerokość
Wysokość
text-align
Określa wyrównanie tekstu
vertical-align
Określa pionowe wyrównanie tekstu
Odległość tekstu od krawędzi komórki
padding
background-color Kolor tła
Wartości
length
length
left
right
center
justify
baseline
sub
super
top
text-top
middle
bottom
text-bottom
length
%
length
kolor
Właściwości list
Właściwości
Opis
list-style-image
Określa obrazek jako symbol punktu
list-style-position
Pozycja punktów listy
list-style-type
Określa styl punktu
Wartości
URL
none
inherit
inside
outside
inherit
none
disc
circle
square
decimal
decimal-leading-zero
armenian
georgian
lower-alpha
upper-alpha
lower-greek
lower-latin
upper-latin
lower-roman
upper-roman
inherit
Tworzenie i praca z arkuszami stylów CSS
43
ĆWICZENIE 3 – DODATEK 2 - Miary
Miary absolutne
•
•
•
•
•
in - cal, (1in = 2.54cm)
cm - centymetr, 1cm
mm - milimetr, 1mm
pt - punkt, 1pt = 1/72in
pc - pika, 1pc = 12pt
Miary względne
•
•
•
•
em - wysokość czcionki elementu
ex - x-height - wysokość litery x
px - piksele, w odniesieniu do rozdzielczości tła
% - procent szerokości/wysokości elementu ograniczającego
Tworzenie i praca z arkuszami stylów CSS
44
ĆWICZENIE 3 - DODATEK 3 - Firebug
Narzędzie Firebug
Istnieje wiele narzędzi ułatwiających analizę już gotowych stron pod względem budowy kodu
HTML oraz arkuszy stylów CSS. Narzędzie Firebug jest programem (dodatkiem do
przeglądarki Firefox) umożliwiającym inspekcję kodu HTML i CSS gotowych już stron.
Nowatorską funkcją programu jest możliwość pracy w trybie ciągłej inspekcji (włączenie
trybu zostało zaznaczone na poniższym screenie za pomocą czerwonego kwadratu), który
umożliwia wyświetlanie w dwóch dolnych oknach kodu HTML oraz CSS aktualnie
wskazywanej myszką sekcji
oglądanej strony. Co więcej, narzędzie umożliwia zmiany
wartości właściwości CSS oglądanej strony tak, że efekty zmian są od razu widoczne w oknie
przeglądarki. Zmiany oczywiście dokonywane są tylko na naszym komputerze i przestają
działać po odświeżeniu strony.
Zarówno przeglądarka Firefox, jak i dodatek Firebug są darmowymi programami, które mogą
zostać pobrane ze stron:
•
•
•
Przeglądarka Firefox: http://www.mozilla.com
Dodatek Firebug:
http://getfirebug.com
Tworzenie i praca z arkuszami stylów CSS
45