TłUMACZENIA ANGIELSKI METODYKA JĘZYKOZNAWSTWO SŁOWNIK KONTAKT
Dokument ten jest tłumaczeniem, które może zawierać błędy.
Zostało ono wykonane przez Angielski ELTT
Zobacz inne strony
(This page uses CSS style sheets)
Menu, które widać w prawym górnym rogu tej strony jest po prostu elementem DIV zawierającym elementy A. Wszytkie reguły dotyczące jego stałej pozycji są określone w arkuszu. Oto kod wzięty bezpośrednio ze źródła tej strony:
<div class="banner"> <p> <a href="../../../"><img alt="W3C" src="../../../Icons/w3c_home"></a> <a href="../../../Consortium/Activities">Activities</a> <a href="../../../TR/">Tech. reports</a> <a href="../../../Help/siteindex">Site index</a> <a href="../../../Consortium/Translation/">Translations</a> <a href="../../../Status">Software</a> <a href="http://search.w3.org/">Search</a> <em>Nearby:</em> <a href="../../">Style</a> <a href="../../CSS/">CSS</a> <a href="./">tips & tricks</a> </div>
W przeglądarce bez CSS lub z CSS wyłączonym, bedzie to noramlnym paragrafem posiadającym linki. Dzięki poniższej regule będzie wydawało się, że się unosi na górze strony przy prawym rogu okna przeglądarki:
div.banner {
margin: 0;
font-size: 80% /*smaller*/;
font-weight: bold;
line-height: 1.1;
text-align: center;
position: fixed;
top: 2em;
left: auto;
width: 8.5em;
right: 2em;
}
div.banner p {
margin: 0;
padding: 0.3em 0.4em;
font-family: Arial, sans-serif;
background: #900;
border: thin outset #900;
color: white;
}
div.banner a, div.banner em { display: block; margin: 0 0.5em }
div.banner a, div.banner em { border-top: 2px groove #900 }
div.banner a:first-child { border-top: none }
div.banner em { color: #CFC }
div.banner a:link { text-decoration: none; color: white }
div.banner a:visited { text-decoration: none; color: #CCC }
div.banner a:hover { background: black; color: white }
Interesującymi tutaj regułami są 'position: fixed', która sprawia, że DIV jest w tym samym miejscu na ekranie i 'display: block', która przetwarza elementy A wewnątrz DIV w elementy bloku a nie w elementy usytuowane w jednej linii.
Proszę uważać na kolejność ostatnich trzech reguł. Ostatni ze stosowanych ustanawia kolor. Jeśli myszka krąży nad linkiem, chcemy aby zastosowany był :hover dlatego musi być ostatni.
Cała reszta, marginesy, granice, kolory, etc. mogą być usunięte lub zmienione według uznania. Proszę zauważyć jak ustaliliśmy reguły pomiędzy linkami: border jest ponad linkiem z wyjątkiem pierwszego, dzięki regule ':first-child'. Para reguł podobnych do tych (border-top na wszzystkich elementach plus border 'none' na first child) jest bardzo wygodna przy tworzeniu granic pomiędzy elementami.
(Jeśli popatrzysz na arkusze stylów tej strony: banner-o.css i banner.css, zobaczysz, że niektóre dodatkowe reguły są sprzeczne. Są one po to aby uchronić się przed "bugs" w kilku przeglądarkach. W szczególności w banner-o.css, banner jets ukryty i w banner.css wyświetlony jest jako blok. Ma to za zadanie ukrywanie banera przed Netscape 4, ponieważ pomija on @import w banner.css.)
Jeśli popatrzysz na tą stronę używając Microsoft Internet Explorer 5 lub 6 na Windows ("WinIE5" i "WinIE6"), zobaczysz, że ona nie działa. Przynajmniej nie z wersjami yz września 2002. Duzo ludzi mnie o to pyta, więc oto kilka wyjaśnień. Po krótce: bug jest w przeglądarce a nie na tej stronie.
WinIE5 i WinIE6 nie obsługują jeszcze 'fixed'. Niestety nie parsują również właściwości 'position' należycie. Przeglądarka, która nie zna 'fixed' powinna pominąć regułę 'position: fixed' i przyjąć poprzednią wartość 'position' jaka była w arkuszu stylów. Możemy wówczas dodać 'position: absolute' tuż przed 'fixed' i przeglądarka jej użyje. Ale w WinIE 5 i 6 tak się niestety nie dzieje. Słowo 'fixed' jest interpretowane jako 'static'.
Nie można zmusić WinIE5 i 6 aby popierały 'fixed' ale można to obejść. Johannes Koch powiadomił mnie, że jest pewien trik (z jego kolekcji obejść). Najpierw zamień 'position: fixed' w powyższych regułach stylu na 'position: absolute' a następnie wprowadź ją tuż niżej.
body>div.banner {position: fixed}
(Jeśli banner DIV. jest wewnątrz innego elementu oprócz elementu BODY, wymień BODY na ten element. W efekcie przeglądarki, które rozpoznają regułe '>' (child) selector będą ją stosować a pozostałe przeglądarki, w szczególności WinIE5 i WinIE6, zignorują ją. Zastosują one regułę 'position: absolute' i menu pojawi sie po prawej stronie z teym wyjątkiem, że menu nie będzie się przesuwać podczas skrolowania.
Ważnym jest aby nie było wolnych przestrzeni wewnątrz '>'.