Ć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.
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.:
" 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.:
Tytuł sekcji
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 znalezć 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 ... . Tekst zawarty w tym znaczniku będzie koloru zielonego, tylko wtedy, gdy znajduje się pomiędzy znacznikami
...
, ale niekoniecznie bezpośrednio, może znajdować się dodatkowo w innym znaczniku, jednak nadal jest potomnym dla znacznika
" Selektor dziecka, np.: p > b { color: red } Powyższa definicja dotyczy znacznika ... . Tekst zawarty w tym znaczniku będzie koloru czerwonego, tylko wtedy, gdy znajduje się bezpośrednio pomiędzy znacznikami
...
, nie może znajdować się w innym znaczniku. " Selektor braci, np.: i + b { color: blue } Powyższa definicja dotyczy znacznika ... . Tekst zawarty w tym znaczniku będzie koloru niebieskiego, tylko wtedy, gdy występuje bezpośrednio po znacznikach ... , 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 (kolor tekstu: czerwony, rozmiar czcionki: 20pt), który zastosowany zostanie tylko wtedy, gdy znacznik znajdzie się w znaczniku
3. Stworzyć definicję stylu dla znacznika (kolor tekstu: zielony), który zastosowany zostanie tylko wtedy, gdy znacznik znajdzie się w znaczniku
lub w kolejnych potomnych znacznikach. 4. Stworzyć definicję stylu dla znacznika (kolor tekstu: niebieski), który zastosowany zostanie tylko wtedy, gdy znacznik znajdzie się bezpośrednio po znaczniku . 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
czy szerokość obrazka . 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
jak i akapit
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
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.:
Google 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.: