Professional Documents
Culture Documents
Spis treci
Przykadowy rozdzia
Katalog ksiek
Katalog online
Zamw drukowany
katalog
Twj koszyk
Dodaj do koszyka
Cennik i informacje
Zamw informacje
o nowociach
Zamw cennik
Czytelnia
Fragmenty ksiek
online
Kontakt
Helion SA
ul. Kociuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
Helion 19912010
Spis treci
O autorze ......................................................................................................... 21
Wprowadzenie ................................................................................................. 23
Spis treci
10
Spis treci
11
12
Spis treci
13
14
Spis treci
15
16
Spis treci
17
18
Spis treci
19
<dl> ............................................................................................................................................651
<dt> ............................................................................................................................................651
<em> ...........................................................................................................................................652
<fieldset> ....................................................................................................................................652
<form> ........................................................................................................................................653
<h1>, <h2>, <h3>, <h4>, <h5>, <h6> ........................................................................................654
<head> ........................................................................................................................................654
<hr> ............................................................................................................................................655
<html> ........................................................................................................................................655
<i> ..............................................................................................................................................656
<img> .........................................................................................................................................656
<input> .......................................................................................................................................657
<ins> ...........................................................................................................................................658
@<kbd> ......................................................................................................................................659
<label> ........................................................................................................................................659
<legend> .....................................................................................................................................660
<li> .............................................................................................................................................660
<link> .........................................................................................................................................661
<map> .........................................................................................................................................662
<meta> ........................................................................................................................................662
<noscript> ...................................................................................................................................663
<object> ......................................................................................................................................664
<ol> ............................................................................................................................................665
<optgroup> .................................................................................................................................665
<option> .....................................................................................................................................666
<p> .............................................................................................................................................666
<param> ......................................................................................................................................667
<pre> ..........................................................................................................................................668
<q> .............................................................................................................................................668
<samp> .......................................................................................................................................669
<script> .......................................................................................................................................669
<select> ......................................................................................................................................670
<small> .......................................................................................................................................671
<span> ........................................................................................................................................672
<strong> ......................................................................................................................................672
<style> ........................................................................................................................................673
<sub> ..........................................................................................................................................674
<sup> ..........................................................................................................................................674
<table> ........................................................................................................................................674
<tbody> ......................................................................................................................................676
<td> ............................................................................................................................................676
<textarea> ...................................................................................................................................677
<tfoot> ........................................................................................................................................678
<th> ............................................................................................................................................678
<thead> .......................................................................................................................................679
<title> .........................................................................................................................................680
<tr> .............................................................................................................................................680
<tt> .............................................................................................................................................681
<ul> ............................................................................................................................................682
<var> ..........................................................................................................................................682
20
Rozdzia 36.
560
cznika naley usun , a znak znajdujcy si bezporednio za nim naley zapisa wielk
liter. Wszystkie pozostae znaki nazwy waciwoci s zapisywane maymi literami. Na
przykad waciwo :
font-size
Tak uzyskan nazw waciwoci dodaje si do nazwy (lub identyfikatora) obiektu zawierajcego kolekcj stylw. Na przykad, aby odwoa si do waciwoci font-size obiektu
o nazwie bigText, naley uy nastpujcego wyraenia:
bigText.style.fontSize
Powysze wyraenie moe zosta uyte take do okrelenia nowej wartoci waciwoci. Na przykad ponisza instrukcja przypisuje waciwoci font-size obiektu bigText
warto xx-large:
bigText.style.fontSize = "xx-large";
561
Rysunek 36.2.
Po klikniciu wielko
czcionki zostaje
zmieniona na bardzo
du (xx-large)
A teraz musimy powici troch czasu na to, by dobrze przeanalizowa i zrozumie , jak
dziaa powyszy przykad. Mona sdzi , e kolekcja style zapewnia dostp do stylw
562
przypisanych danemu elementowi, niezalenie od tego, skd one pochodz. Okazuje si jednak, e tak nie jest. Kolekcja style zapewnia moliwo odwoywania si i operowania
na atrybucie style umieszczonym w znaczniku obiektu. Oznacza to, e wykonanie poniszego fragmentu kodu JavaScript bezporednio po wywietleniu naszej przykadowej strony
w przegldarce spowodowaoby wywietlenie okienka informacyjnego z napisem null:
alert(document.getElementById("bigText").style.fontSize);
Naley zwrci uwag, e nazwa stylu jest zapisana bez cznika, zatem ma ona posta
fontSize, a nie font-size.
W przegldarce Firefox naley wykona dodatkowy, poredni krok, gdy wywoanie
metody getComputedStyle() zwraca kolekcj, z ktrej dopiero mona odczyta interesujc nas warto stylu. Ten etap poredni wymaga uycia metody getPropertyValue().
Cay proces wyglda nastpujco:
obj = document.getElementById(id);
objstyles = window.getComputedStyle(obj,null);
value = objstyles.getProperty('font-size');
563
i zaimplementowania ich w postaci jednej funkcji. Poniszy listing przedstawia kod funkcji, ktra zwraca warto stylu na podstawie przekazanej w wywoaniu nazwy elementu
oraz nazwy waciwoci CSS (przy czym uywana jest tu prawidowa nazwa waciwoci,
a nie nazwa zapisywana bez cznika):
// Funkcja zwraca warto waciwoci CSS o nazwie propName
// odczytanej z elementu okrelonego przy uyciu identyfikatora id
function getStyleVal (id, propName) {
// Czy w ogle moemy cokolwiek zrobi [czy uda si nam
// pobra obiekt elementu przy uyciu metody getElementById()]?
if (obj = document.getElementById(id)) {
// Czy dostpna jest waciwo currentStyle (IE)?
if (obj.currentStyle) {
// Konwertujemy nazw waciwoci na format uywany w IE
if (propName.indexOf("-") != -1) {
hyp = propName.indexOf("-");
propName = propName.substr(0,hyp) +
propName.charAt(hyp+1).toUpperCase() +
propName.substr(hyp+2);
}
return obj.currentStyle[propName];
}
// Czy jest dostpna metoda getComputedStyle (Mozilla)?
if (window.getComputedStyle) {
compStyle = window.getComputedStyle(obj,null);
return compStyle.getPropertyValue(propName);
}
} // Koniec instrukcji if (obj == document.getElementById(id))
// Nie udao si odszuka elementu zwracamy pusty a
cuch znakw
return "";
}
564
565
566
Rysunek 36.6. Odpowied jest wywietlana po klikniciu duej litery P (bd dowolnego innego
fragmentu pytania). Ponowne kliknicie powoduje ukrycie odpowiedzi
.Atext { margin-left: 20px;
margin-top: 0;
padding-top: 0; }
</style>
<script type="text/javascript">
// Naprzemiennie ukrywamy i wywietlamy element
function hideseek(id) {
obj = document.getElementById(id);
// Jeli styl nie jest okrelony, to moemy zaoy,
// e element nie by jeszcze modyfikowany i jest niewidoczny
567
if ((obj.style.display == "") ||
(obj.style.display == "none")) {
obj.style.display = "block";
} else {
obj.style.display = "none";
}
}
</script>
</head>
<body>
<div onClick="hideseek('A1');">
<p class="Q" >P:</p>
<p class="Qtext">Jakiego komputera i urzdze peryferyjnych potrzebuj, by mc
wzi udzia w rozgrywkach sieciowych?</p>
</div>
<div id="A1" class="hideseek">
<p class="A" >O:</p>
<p class="Atext">
Musisz przynie komputer o nastpujcej (minimalnej) konfiguracji: Pentium 4
z co najmniej 2 GB pamici RAM i wysokiej jakoci kart graficzn; do tego
monitor LCD (nie wikszy ni 19 cali), klawiatur, myszk i kabel sieciowy
(o minimalnej dugoci 2 metrw). Nie przyno niczego wicej
(a w szczeglnoci nie prbuj uywa dwch komputerw)!
</p>
</div>
</body>
</html>
Powikszanie obrazkw
Innym czsto spotykanym zastosowaniem moliwoci CSS do tworzenia ciekawych
efektw wizualnych jest powikszanie obrazkw, ktre pocztkowo s wywietlane
w postaci miniaturek. Technika ta jest powszechnie wykorzystywana we wszelkiego typu
galeriach internetowych lub w innych witrynach, na ktrych wywietlanie obrazkw w penej wielkoci jest podane, lecz kosztowne.
Prezentowana tu technika jest podobna do rozwizania przedstawionego w poprzednim
punkcie rozdziau take w tym przypadku generowane przez uytkownika zdarzenie
wywouje skrypt, ktry odpowiednio modyfikuje waciwoci CSS danego elementu.
568
569
Podmieniane menu
We wszystkich przykadach przedstawionych we wczeniejszej czci rozdziau uzyskiwalimy zamierzony efekt wizualny, stosujc kod JavaScript do modyfikowania waciwoci CSS. Jak na razie nie skorzystalimy z pseudoklas CSS dostpnych w elementach
czy, ktre pozwalaj na uzyskanie podobnych efektw.
570
Rysunek 36.8. Po umieszczeniu wska nika myszy na miniaturce, zamiast niej w przegldarce
jest wywietlany obrazek w penych wymiarach
:link
Formatuje elementy wybrane przez selektor jako cza, ktre jeszcze nie zostay odwiedzone.
:visited
:hover
:active
571
Rysunek 36.9. Pseudoklasy mog by stosowane do tworzenia dynamicznego menu, w tym
przypadku wskazany element menu jest podwietlany
572
Naley zauway , e cho technika polegajca na zastosowaniu pseudoklas w celu uzyskania ciekawych efektw wizualnych jest bardzo popularna, to jednak nie jest ona zgodna
z zasad separacji dziaa od prezentacji. Dlatego te znacznie lepszym rozwizaniem
jest tworzenie podobnych efektw przy wykorzystaniu kodu JavaScript.
Zwr uwag, e opisana tu technika moe by stosowana w poczeniu niemal
ze wszystkimi elementami HTML. Jednak pseudoklas mona uywa wycznie
do formatowania znacznikw czy, a zatem by odpowiednio formatowa cza
w dokumencie, naley korzysta z innych znacznikw.
Podsumowanie
W tym rozdziale przedstawione zostay technologie DHTML i CSS. Dowiedziae si,
jak uywa JavaScriptu, by modyfikowa style CSS elementw i uzyskiwa ciekawe
efekty wizualne, oraz jak tworzy takie efekty przy uyciu pseudoklas CSS. W nastpnym
rozdziale zamieszczone zostay informacje dotyczce stosowania kaskadowych arkuszy
stylw do okrelania postaci stron przeznaczonych do wydruku. W kolejnych rozdziaach, od 38. do 41., przedstawione zostay bardziej specjalistyczne zagadnienia zwizane
ze stosowaniem kaskadowych arkuszy stylw.