Pseudoklasa :target działa tylko w FF
Pseudoklasa :target działa tylko w FF
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
[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

- Posty: 245
- Rejestracja: śr kwie 18, 2007 9:06 am
Re: Pseudoklasa :target działa tylko w FF
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
//edit
Poczytałem i się dowiedziałem, że tylko FF radzi sobie z :target
Re: Pseudoklasa :target działa tylko w FF
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

- Posty: 245
- Rejestracja: śr kwie 18, 2007 9:06 am
Re: Pseudoklasa :target działa tylko w FF
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.
PS Mógłbyś mi podać link do tej biblioteki? Chętnie zobaczyłbym na czym polega jej działanie.
-
ooo_michal
- Przelotem

- Posty: 245
- Rejestracja: śr kwie 18, 2007 9:06 am
Re: Pseudoklasa :target działa tylko w FF
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.
Re: Pseudoklasa :target działa tylko w FF
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ń.
No a poza tym jak sie nie zna javascriptu (hmm warto by sie nauczyć) to trzeba korzystać z gotowych rozwiązań.
-
ooo_michal
- Przelotem

- Posty: 245
- Rejestracja: śr kwie 18, 2007 9:06 am
Re: Pseudoklasa :target działa tylko w FF
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.
Re: Pseudoklasa :target działa tylko w FF
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ć
ps.
Pytanie z innej beczki, co jest grane z tym forum, że zawiesza mi FF 3.0, musze na operze wchodzić
