02. Składnia CSS

Każda reguła stylu składa się z dwóch części:

  • selektor – określa do jakich elementów strony internetowej dopasować dany styl
  • deklaracja stylu:
    • właściwość – oznacza jaką cechę elementu będziemy zmieniać
    • wartość – oznacza w jaki sposób będzie ta cecha wyglądać.

Ogólna deklaracja stylu:

selektor { właściwość : wartość }

Selektor

Selektorem może być:

  • każdy element HTML,
  • klasa elementów,
  • identyfikator elementu.

Kolejność selektorów

  • Jeżeli wypiszemy po sobie selektory np.: table, div, p { color:red } (z przecinkami) to wszystkie z wymienionych elementów będzie miało tekst koloru czerwonego.
  • Jeżeli wypiszemy po sobie selektory np.: table div p { color:red } (bez przecinków) to będzie określać kolor tekstu akapitu, który znajduje się w div, który to div znajduje się w tabeli, czyli:
    <table>
       <tr>
          <td>
             <div>
                <p>ten tekst będzie czerwony</p>
             </div>
          </td>
       </tr>
    </table>
    
  • Jeżeli wypiszemy selektory w ten sposób: div > p { color:red} to tylko akapit będący bezpośrednio w div będzie miał tekst koloru czerwonego. Przykład:
    <div>
       <span><p>ten tekst NIE będzie czerwony</p></span>
       <p>A ten tekst będzie czerwony</p>
    </div>
    

Deklaracja stylu

Na deklarację stylu składają się dwie części:

  • właściwość – określa co będziemy określać np.: obramowanie, marginesy, dopełnienia, tło, tekst, obrót, zachowanie po najechaniu myszą,
  • wartość właściwości – określa w jaki sposób będzie ta właściwość wyglądała np.: obramowanie będzie to 2px grubości, styl obramowania kropkowy, kolor niebieski, tekst będzie pisany czcionką o wysokości 20px, stylem pochylonym, czcionką Arial o kolorze szarym.

Media

Najnowsza odsłona CSS wprowadza pewne rozróżnienia sposobu wyświetlania elementów w zależności na jakim urządzeniu jest „wyświetlana” strona. Tymi urządzeniami mogą być np.: ekran, drukarka, urządzenia czytające na głos, projektory, telewizory, drukarki brajlowskie itd.

W tym celu wprowadzona tzw. przestrzenie nazw. Założenie jest takie, że elementy HTML zdefiniowane w ogólne przestrzeni nazw będą interpretowane przez wszystkie urządzenia jednakowo, natomiast elementy znajdujące się w np. przestrzeni ekranu (screen) nie będą interpretowane przez drukarkę.

Przestrzenie nazw można ustawić na dwa sposoby:

  • poprzez dyrektywę @import:
    @import url('style-drukarkowe.css') print;
    @import url('style-ekranowe.css') screen;
    
  • poprzez dyrektywę definiującą przestrzeń @media:
    @media screen {
       body {background-color:#f2f2f2;}/* tło na ekranie będzie szare*/
    }
    @media print {
       body {background-color:#ffffff;}/* tło na papierze będzie białe*/
    }
    @media screen, print {
       body {color:#000000;}/* tekst na ekranie i papierze będzie czarny*/
    }
    

Rodzaje urządzeń (przestrzenie nazw):

  • all, domyślna przestrzeń – wszystkie urządzenia,
  • print – drukarki
  • screen – kolorowy ekran
  • handheld – mały ekran (palmtop, telefony komórkowe)
  • projection – projektory
  • speech – urządzenia głosowe
  • tv – telewizory (mało kolorów, ograniczona wielkość, dźwięk)
  • tty – przeglądarki tekstowe (podstawową jednostką miary jest znak, a nie piksel)
  • embossed – drukarki brajlowskie (ograniczenie podobne do przeglądarek tekstowych, plus brak kolorów)

W przestrzeniach nazw można również stosować dodatkowe zasady. Najczęściej robi się to dla ekranów. W ten sposób można zrobić responsywny szablon strony. Przykład:

@media screen and (min-width: 480px) {
   body {
      background-color: lightgreen;
   }
}

Kolor tła zmieni się na jasny zielony jeżeli szerokość ekranu będzie równa lub większa od 480px.