Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Atrybut usemap - problem z #
chfast
post
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Tworze plik w XHTML 1.1. Jak odnieść się do mapy grafiki (<map>) za pomocą atrybutu usemap skoro nie wolno (według specyfikacji XHTML 1.1) używać w tym atrybucie znaku #.
Szukałem jakiegoś odpowiednika znaku # w znakach specjalnych, tak jak ma to miejsce np. w przypadku & = &amp; .
Niestety nic takiego nie znalazlem.


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #2





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
Tworze plik w XHTML 1.1. Jak odnieść się do mapy grafiki (<map>) za pomocą atrybutu usemap skoro nie wolno (według specyfikacji XHTML 1.1) używać w tym atrybucie znaku #.

Wolno używać i jest jak najbardziej dozwolony.
Zgodnie ze specyfikacją XHTML 1.1 nie można używać atrybutu name, należy go zastąpić atrybutem id...
Poprawny zapis przykładowo wygląda tak:
Mapa:
Kod
<map id="moja_mapa">...</map>

Wywołanie (dla img, input, object):
Kod
<img src="obraz.jpg" usemap="#moja_mapa" />


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
chfast
post
Post #3





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
Wolno używać i jest jak najbardziej dozwolony.

Moge się zgodzić, że specyfikacja XHTML 1.1 nic nie wspomina o tym, że znak '#' jest niedozwolony w atrybucie usemap. Ale już przy walidacji dokumentu otrzymujemy błąd:
Cytat
Line 52, column 86: character "#" is not allowed in the value of attribute "usemap"  
 ...mages/logo_group.jpg" alt="" usemap="#logo_group"/></td>


Jednocześnie pojawia się błąd odwołania do nieistniejącej mapy:
Cytat
Line 52, column 86: reference to non-existent ID "#logo_group"  
 ...mages/logo_group.jpg" alt="" usemap="#logo_group"/></td>


Idąc dalej, kiedy zapiszemy dowołanie do mapy bez znaku '#' (czyli np. id="map1" ; usemap="map1") to walidator stwierdza, że wszystko jest w porządku, dokument jest poprawny. Nie ma się jednak wcale z czego cieszyć, bo w takim przypadku przeglądarka (IE) nie radzi sobie z takim odniesieniem i mapa nie działa.

Jeszcze może dodam, że używając XHTML 1.0 Strict można stosować znak '#' w usemap.


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
Dominik
post
Post #4





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Tak to prawda. W HTML 4.01 i XHTML 1.0 wartosc usemap byla CDATA a w XHTML 1.1 to jest juz IDREF.
W DTD mozemy przeczytac:
Cytat
'usemap' points to the 'id' attribute of a <map> element,
    which must be in the same document; support for external
    document maps was not widely supported in HTML and is
    eliminated in XHTML.

    It is considered an error for the element pointed to by
    a usemap IDREF to occur in anything but a <map> element.

Mam nadzieje ze sie wyjasnilo.
Go to the top of the page
+Quote Post
Dominik
post
Post #5





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Dla pewnosci dodam jak to powinno teraz byc zrobione.
Kod
<map id="moja_mapa">...</map>


Kod
<img src="obraz.jpg" usemap="moja_mapa" />

Czyli bez #.
Acha i oczywiscie tylko w Mozilli to sie poprawnie wyswietla.
Go to the top of the page
+Quote Post
wasik89
post
Post #6





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.09.2008

Ostrzeżenie: (0%)
-----


A mi w mozilli juz to nie dziala ;] zdaje sie nigdzie juz tak nie pojdzie na nowych wersjach.
Rowniez mam problem z walidacja # i rowniez nie umiem sobie z nim poradzic.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:22