Pseudoklasa :target działa tylko w FF

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
MobyDick
Nowy
Nowy
Posty: 55
Rejestracja: czw sty 24, 2008 7:49 pm
Lokalizacja: Jarocin
Kontakt:

Pseudoklasa :target działa tylko w FF

Post autor: MobyDick »

Mam następujący przykładowy kod:

[xml]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel='stylesheet' type='text/css' href='style.css' />

<script type='text/javascript'>
document.onmousedown = function($e)
{
($e || ($e = window.event));

if (
$e.target &&
$e.target.nodeName != 'A' &&
$e.target.parentNode.nodeName != 'A'

||

$e.srcElement &&
$e.srcElement.nodeName != 'A' &&
$e.srcElement.parentNode.nodeName != 'A'
) {
location.href = '#';
}
}
</script>
</head>

<body>
<a href="#obraz">link</a>
<div id='obraz'> </div>
</body>
</html>
[/xml]

Oraz css:

[xml]
body {
font: 16px sans-serif;
margin: 20px;
color: white;
background: black;
}

#obraz {
position:absolute;
left: 200px;
top: 100px;
height: 150px;
width: 150px;
background-color:#FF0033;
visibility:hidden;
}
#obraz:target {
visibility: visible;
}
[/xml]

Efekt działania tego kodu w FF jest prawidłowy, tzn po kliknieciu w link pojawia sie element dib o id #obraz, kliknięcie w dowolne miejsce strony poza linkiem ukrywa ten element (dzięki działaniu js w nagłówku strony)
Nie wiem dlaczego nie działa to prawidlowo w IE 7.0 i Operze 9.25, czy te przeglądarki obsługują :target? Slyszałem że tak, ale już pewny nie jestem
ooo_michal
Przelotem
Przelotem
Posty: 245
Rejestracja: śr kwie 18, 2007 9:06 am

Re: Pseudoklasa :target działa tylko w FF

Post autor: ooo_michal »

Z tego co wiem pseudoklasa :target zawiera się w specyfikacji css3 a obecnie przeglądarki (prawie) radzą sobie z css2.1 więc przez najbliższe kilkanaście - kilkadziesiąt miesięcy nie masz co sobie zawracać głowy takimi nowinkami:-D

//edit

Poczytałem i się dowiedziałem, że tylko FF radzi sobie z :target
MobyDick
Nowy
Nowy
Posty: 55
Rejestracja: czw sty 24, 2008 7:49 pm
Lokalizacja: Jarocin
Kontakt:

Re: Pseudoklasa :target działa tylko w FF

Post autor: MobyDick »

Udalo mi sie zmusić IE do obslugi tej pseudoklasy, a także innych zawartych w css3, za pomoca specjalnie w tym celu napisanej biblioteki .js, jedynie opera ignoruje te rozwiązania.
ooo_michal
Przelotem
Przelotem
Posty: 245
Rejestracja: śr kwie 18, 2007 9:06 am

Re: Pseudoklasa :target działa tylko w FF

Post autor: ooo_michal »

Wiele problemów można rozwiązać za pomocą istniejących metod. Podejżewam, że ta biblioteka działa w oparciu o możliwości CSS2.1 (choć szczerz mówiąc nie widziałem jej na oczy). Dlatego lepiej skupić się na odpowiednim stosowaniu właśnie tego standardu.

PS Mógłbyś mi podać link do tej biblioteki? Chętnie zobaczyłbym na czym polega jej działanie.
MobyDick
Nowy
Nowy
Posty: 55
Rejestracja: czw sty 24, 2008 7:49 pm
Lokalizacja: Jarocin
Kontakt:

Re: Pseudoklasa :target działa tylko w FF

Post autor: MobyDick »

http://dean.edwards.name/weblog/

Ciekawej lektury, gościu moim zdaniem robi dobrą robotę
ooo_michal
Przelotem
Przelotem
Posty: 245
Rejestracja: śr kwie 18, 2007 9:06 am

Re: Pseudoklasa :target działa tylko w FF

Post autor: ooo_michal »

Chciałem poczytać ale... To jest 40kB kodu, prawie 40 000 znaków! Ten skrypt musi nieźle obciążać przeglądarkę. Fakt, dobra robota ale ja jednak dalej będę pisał własne skrypty robiące to, czego potrzebuję i nic poza tym. Według mnie to jest dużo lepsze wyjście.
MobyDick
Nowy
Nowy
Posty: 55
Rejestracja: czw sty 24, 2008 7:49 pm
Lokalizacja: Jarocin
Kontakt:

Re: Pseudoklasa :target działa tylko w FF

Post autor: MobyDick »

Wiem, ale chodzi ladnie, naprawde, poprzednia wersja podzielona na moduły, wgrywało się tylko to co konieczne. Ale poprzednia nie działala z IE7 tylko z wcześniejszymi wersjami, ta działa tylko że jest duża. Ale naprawde nie widzę jakoś zbytniego obciążenia przeglądarki i łącza.

No a poza tym jak sie nie zna javascriptu (hmm warto by sie nauczyć) to trzeba korzystać z gotowych rozwiązań.
ooo_michal
Przelotem
Przelotem
Posty: 245
Rejestracja: śr kwie 18, 2007 9:06 am

Re: Pseudoklasa :target działa tylko w FF

Post autor: ooo_michal »

No ale jak już się taką stronę otworzy na komputerze z jakimś starym Athlonem 1GHz, 256 RAM i kilkoma kartami w przeglądarce, do tego jakiś Winamp albo coś podobnego to efekt nie jest najciekawszy. Sam często pracuję przy komputerze z Duronem 1.2 GHz + 128 RAM to jak już trzy karty w Operze otworzę to mi ręce opadają, tak wolno działa.
MobyDick
Nowy
Nowy
Posty: 55
Rejestracja: czw sty 24, 2008 7:49 pm
Lokalizacja: Jarocin
Kontakt:

Re: Pseudoklasa :target działa tylko w FF

Post autor: MobyDick »

Ja ro rozumiem i myślę że spokojnie możnaby wyodrebnić potrzebną funkcję z calego pliku.

ps.
Pytanie z innej beczki, co jest grane z tym forum, że zawiesza mi FF 3.0, musze na operze wchodzić
ODPOWIEDZ