Struktura i reguły CSS

Apr 02
2009

Podstawowy syntaks

Ruguły

Selektory

Każdy element HTML może być selektorem CSS. Selector jest elementem, który linkuje do konkretnego stylu. Na przykład:

P { text-indent: 3em }

Selektory klas

Selektor może posiadać różne klasy, pozwalając aby ten sam element posiadał różne style, np.: projektant może chcieć aby element CODE miał różne kolory w zależności od języka:

code.html { color: #191970 }
code.css { color: #4b0082 }

Powyższy przykład storzył dwie klasy: css i html dla elementu CODE.

Klasy można również tworzyć nie przypisując do nich żadnego elementu:

.uwaga { font-size: small }

W powyższym przykładzie, klasa uwaga może zostać dodana do każdego elementu.

Najlepiej nazywać klasy wedłuch ich funkcji. Nazwa klasy: uwaga jest o wiele lesza aniżeli nazwa small, która może stracić swoje znaczenie jeśli projektant zdecyduje się na zmiane wielkości ten klasy.

Selektory ID

Selektory ID są stosowane jedynie raz dla danego elementu, dlatego powinny być rzadko używane. Definiuje sie je poprzez “#” , który poprzedza nazwę. Na przykład:

#svp94O { text-indent: 3em }

W dokumencie HTML pojawi sie nastepujący atrybut:

<P ID="svp94O">Text indented 3em</P>

Selektory kontekstualne

Selektory kontekstualne są ciagami selektorów oddzielonych spacją. Seletory te mogą definiować właścowości według zasad kolejności kaskad i są one ważniejsze niż selektory proste. Na przykład:

P EM { background: yellow }

Powyższa reguła mówi, że uwypuklony tekst powinien mieć kolor żółty jedynie w paragrafie. Nie bedzie on miał tego samego stylu w nagłówku.

Deklaracje

Właściwości

Właściwość jest nadawana selektorowi w celu określenia jego stylu, np.: kolor, czcionka, margines.

Wartości

Wartość nadawana jest konkretnej właściwości np.: właściwośc color otrzymuje wartość red.

Grupowanie

W celu uniknięcia niepotrzebnych powtórzeń w arkuszu, można zastosować grupowanie selektorów posiadajacych wspólne deklaracje, np.:

H1, H2, H3, H4, H5, H6

{
color: red;
font-family: sans-serif }

Dziedziczenie

Selektory, które znajdują się wewnątrz innych selektorów dziedziczą wartości właściwości tych selektorów, pod warunkiem, ze nie sprecyzuje się inaczej. Na przykład: kolor zdefiniowany dla elementu BODY pojawi sie również w elemencie P.

Istnieją klasy, których wewnętrzne selektory nie dziedziczą wartości, np.: margin-top. Paragraf nie będzie miał takiego samego marginesu jak BODY. Wynika to z logiki.

Komentarze

Komentarze maja nastepujący format:

/* Komentarze wewnątrz komentarzy są niedozwolone */

Pseudoklasy i pseudoelementy

Pseudoklasy i pseudoelementy są specjalnymi klasami i elementami uznawanymi przez przeglądarki. Pseudoklasy przypisywane są różnym typom elementów, np.: kink aktywny lu odwiedzony są dwoma różnymi typami tego samego elementu A. Pseudoelementy odnoszą sie do jakieś podczęści danego elementu, np.: pierwszej litery paragrafu.

Regułu pseudoklas i pseudoelementów wygladają nastepująco:

selector:pseudo-class { property: value }

lub

selector:pseudo-element { property: value }

Pseudoklasy i pseudoelementy uywane s z normalnymi klasami i elementami:

selector.class:pseudo-class { property: value }

lub

selector.class:pseudo-element { property: value }

Pseudoklas Anchor

Pseudoklasy mona przypisywać elementowi A aby wyświetlał linki odwiedzane i aktywne w inny sposób. Element A posiada pseudoklasy takie jak: link, visited lub active. Link odwiedzony może posiadać inny kolor, czcionkę lub styl czcionki.

Interesującym rozwiązaniem jest prezentowanie linków aktywnych w troszeczkę większym rozmiarze i innym kolorze. Kiedy strona jest odwiedzona ponownie, odwiedzony link może być mniejszy i w innym kolorze. Na przykład:

A:link { color: red }
A:active { color: blue; font-size: 125% }
A:visited { color: green; font-size: 85% }

Pseudoelement First Line

Często w gazetach pierwsza linia tekstu pojawia się w czcionce pogrubionej lub druku. CSS pozwala na zastosowanie pseudoelementu first-line, który może odnosić się do np.: P, H1, itp. Na przykład:

P:first-line
{
font-variant: small-caps;
font-weight: bold

}

Pseudoelement First Letter

Pseudoelement first-letter stosowany jest jedynie dla pierwszej litery paragrafu lub nagłówka lub innego elementu, np.:

P:first-letter { font-size: 300%; float: left }

wstawi czcionkę trzy razy wiekszą niż normalna dla pierwszej litery paragrafu.

Kolejność kaskad

Kiedy używa się wielu arkuszy stylów dla pojedynczej strony, mogą one walczyć pomiędzy sobą o kontrolę nad danym selektorem. W takich sytuacjach powinny pojawić się reguły określające, które deklaracje selektorów powinny mieć pierwszeństwo. Robi się to w nastepujący sposób:

  1. ! important

    Reguły mogą być precyzowane z określeniem ! important. Arkusz z takim określeniem jest nadrzędny w stosunku do innych. Ponieważ zarówno autor strony jak i jej użytkownik mogą okreslać ważne reguły, reguły autora są zawsze ważniejsze od reguł użytkownika. Przykład zastosowania ! important:

    BODY {

    background: url(bar.gif) white;
    background-repeat: repeat-x
    ! important

    }

  2. Pochodzenie reguł (autor kontra użytkownik)

    Zarówno autorzy jak i użytkownicy mogą używać arkuszy stylów. Kiedy istnieje konflik pomiędzy regułami autora i użytkownika, reguły autora są ważniejsze. Autorzy powinni uważać na stosowanie zwrotu ! important ponieważ tego typu reguły będą nadrzędne w stosunku do ważnych reguł użytkownika. Może to spowodować problemy związane z wielkością czcionek, kolorem, itp. Należy pamiętać, że użytkownik może mieć problemy ze wzrokiem i tego typu reguły uniemożliwią mu przeglądanie strony.

  3. Reguły selektorów

    Arkusze mogą również być zmieniane w oparciu o ich precyzję. Bardziej precyzyjne reguły zawsze wygrywają.

  4. Kolejność

    Dla ułatwienia, jesli takie same reguły mają ta samą wagę, ostatnia wygrywa.

Szybkie menu

Właściwości CSS

Apr 02
2009

Właściwości czcionki

Właściwości tła i koloru

Właściwości tekstu

Właściwości pojemnika

Właściwości klasyfikacji

Szybkie menu

Linkowanie arkuszy z HTML

Apr 02
2009

Linkowanie do zewnętrznego arkusza CSS

Zewnętrzny arkusz CSS jest połączony z dokumentem HTML za pomocą znacznika LINK:

<LINK REL=StyleSheet HREF=”style.css” TYPE=”text/css” MEDIA=screen>
<LINK REL=StyleSheet HREF=”color-8b.css” TYPE=”text/css” TITLE=”8-bit Color Style” MEDIA=”screen, print”>
<LINK REL=”Alternate StyleSheet” HREF=”color-24b.css” TYPE=”text/css” TITLE=”24-bit Color Style” MEDIA=”screen, print”>
<LINK REL=StyleSheet HREF=”aural.css” TYPE=”text/css” MEDIA=aural>

Znacznik <LINK> znajduje się wewnątrz znacznika HEAD. Opcjonalny atrybut TYPE okresla typ mediów np.: text/css.

Zewnętrzne arkusze nie powinny zawierać znaczników <HEAD> lub <STYLE>. Powinny jedynie zawierać reguły, np.:

P { margin: 2em }

Znacznik <LINK> pozwala rónież na atrybut MEDIA (opcjonalny), który określa rodzaj medium do którego stosuje sie dany arkusz. Mozliwe wartości:

  • screen, ekran komputerowy;
  • print, drukarka;
  • projection, projektor;
  • aural, syntezatory mowy;
  • braille;
  • tty;
  • tv;
  • all, wszystkie urządzenia.

Atrybut REL określa związek pomiedzy dokumentem HTML a linkowanym plikiem. REL=StyleSheet pkresla preferowany arkusz stylów, natomiast REL=”Alternate StyleSheet” określa alternatywny arkusz.

Obecne przeglądarki moga wybierać pomiędzy arkuszami.

Style mozna również podawać w kilku arkuszach, np:

<LINK REL=StyleSheet HREF=”basics.css” TITLE=”Contemporary”>
<LINK REL=StyleSheet HREF=”tables.css” TITLE=”Contemporary”>
<LINK REL=StyleSheet HREF=”forms.css” TITLE=”Contemporary”>

Zewnętrzne arkusze stylów są doskonałym rozwiązaniem, ponieważ moga z nich korzystać różne strony. Używając zewnętrznych arkuszy, projektant może zmienić wygląd całej witrny w przeciagu minuty.


Arkusze wenątrz dokumentów HTML

Arkusz styłów można umieścić wewnątrz dokumentu HTML stosując element STYLE:

<STYLE TYPE=”text/css” MEDIA=screen>
<!–

BODY
{ background: url(foo.gif) red; color: black }

P EM { background: yellow; color: black }
.note { margin-left: 5em; margin-right: 5em }
–>
</STYLE>

Element STYLE umieszony jest w sekcji HEAD dokumentu HTML. Wymagany atrybut TYPE precyzuje rodzaj mediów.

Arkusz umieszony w dokumencie HTML może być wykorzystywany jedynie przez ten dokument.


Importowanie arkuszy stylów

Arkusz mozna importować komendą @import. Komenda ta może pojawić się w pliku CSS lub wewnątrz elementu STYLE:

<STYLE TYPE=”text/css” MEDIA=”screen, projection”>

<!–

@import url(http://www.htmlhelp.com/style.css);

@import url(/stylesheets/punk.css);

DT { background: yellow; color: black }
–>
</STYLE>

Komenda @import musi pojawić się pierwsza w arkuszu. Wszystkie reguły oznaczone jako ważne mają automatyczny prirytet. Nawet jeśli konkretny arkusz zawiera regułę DT {background: aqua}, osytania definicja jest nadrzędna, w tym przypadku: DT kolor żółty.

Kolejność w jakiej arkusze są importowane ma wpływ na reguły w nich zawarte.


Style w elementach

Style mogą występować w poszczególnych elementach przy użyciu atrybutu STYLE. Atrybut STYLE do każdego elementu dokumentu HTML z wyjątkiem BASEFONT, PARAM i SCRIPT. Przykład deklaracji:

<P STYLE=”color: red; font-family: ‘New Century Schoolbook’, serif”> Paragraf z czcionką w kolorze czerwonym, typ czcionki: New Century Schoolbook, jeśli jest takowy dostępny.</P>

New Century Schoolbook znajduje się w pojedynczy cytat, ponieważ cała deklaracja jest w cudzysłowiu.

Srosowanie tego typu rozwiązania nie jest wygodne.


Atrybut CLASS

Atrybut CLASS precyzuje do jakiej klasy należy dany element. Na przykład: tworzymy dwie klasy: punk i warning:

.punk { color: lime; background: #ff80c0 }
P.uwaga { font-weight: bolder; color: red; background: white }

W dokumecie HTML klasy pojawiają się w znacznikach, które chcemy żeby posiadały daną klasę:

<H1 CLASS="punk">Proprietary Extensions</H1>
<P CLASS="uwaga">Many proprietary extensions can have negative side-effects, both on supporting and non-supporting browsers…

Klasa punk może być stosowana z każdym elementem, ponieważ nie jest przypisana konkretnemu elementowi w arkuszu stylów. Klasa uwaga może być stosowana jedynie z elementem P

Najlepiej nazywać klasy wedłuch ich funkcji. Nazwa klasy: uwaga jest o wiele lesza aniżeli nazwa np.: bald, która może stracić swoje znaczenie jeśli projektant zdecyduje się na zmianę tej wartości.


Atrybut ID

Atrybut ID definiuje styl dla konkretnego elementu do którego przypiszemy dany identifikator.

#wdg97 { font-size: larger }

Atrybut ten może pojawić się w dokumencie HTML w taki sposób

<P ID="wdg97">Welcome to the Web Design Group!</P>

Każdy atrybut ID musi mieć unikalną wartość w dokumencie. Wartość ta to litery, liczby i myślniki.


Element SPAN

Element SPAN wprowadzono do dokumentów HTML aby pozwolić projektantom na nadanie stylu segmentowi a nie konkretnym elementom HTML. SPAN może również wystąpić jako selektor w arkuszu stylów. Przyjmuje on również atrybuty STYLE, CLASS i ID.

SPAN jest elementem wewnątrz dokumentu HTML podobnie jak EM i STRONG. Różnica pomiędzy nimi jest taka, że EM i STRONG posiadają znaczenie strukturalne, którego znacznik SPAN nie posiada. Jets on elementem czysto stylistycznym.

Przyklad SPAN:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”>
<HTML>
<HEAD>
<TITLE>Example of SPAN</TITLE>
<META HTTP-EQUIV=”Content-Style-Type” CONTENT=”text/css”>

<STYLE TYPE=”text/css” MEDIA=”screen, print, projection”>
<!–

.firstwords { font-variant: small-caps }
–>

</STYLE>

</HEAD>
<BODY>
<P><SPAN CLASS="firstwords">Pierwsze słowa paragrafu mogą </SPAN> być w małej czcionce. Można również zmienić styl pojedynczego
<SPAN STYLE=”font-family: Arial”>słowa</SPAN>.</P>


Element DIV

Element DIV jest podobny do elementu SPAN w swojej funkcji. Różnica polega na tym, że element ten zawiera blok elementów. Na przykład:

<DIV CLASS="note">
<H1>Divisions</H1>
<P>Element DIVdefiniuje specyfikacja HTML 3.2. Atrybut ALIGN dozwolony jest w HTML 3.2. HTML 4.0 daje elementy CLASS, STYLE i ID, między innymi.</P>
<P>Ponieważ DIV może zawierać inne bloki, jest on bardzo ważnym znacznikiem definiującym większe sekcje dokumentu. </P>
<P>W zależnosci od typu dokumentu, można stosować i nie stosować końcowego znacznika. </P>
</DIV>

Szybkie menu

Archives

All entries, chronologically...

Pages List

General info about this blog...