Announcement

Collapse
No announcement yet.

Probleme mit "map"-Befehl

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit "map"-Befehl

    Hallo alle beisammen,

    ich habe den Verdacht, dass mich bei dem map-Befehl ein Bug quält.

    Soweit ich das gefunden habe, muss der map-Befehl in Kombination mit XHTML 1.0 (Strict) wie folgt aussehen:

    Code:
    <img src="weltkarte_1255.gif" usemap="#weltkarte" alt="World map" />
    <map name="weltkarte" id="weltkarte">
    	<area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
    </map>
    ...so funktioniert es, es wird im W3-Validator als korrekt ausgegeben.
    Das Internet spuckt einem im Übrigen sehr viel Schrott aus, da die meisten nicht valide sind, hauptsächlich, weil das id-Attribut fehlt. Lässt man bei dem Befehl das name-Attribut weg, funktioniert der Code nicht mehr, obwohl "name" eigentlich schon optional sein müsste in XHTML 1.0, aber das weiß ich nun nicht genau, ob dem beim map-Befehl auch so ist.


    Was ich aber eigentlich haben wollte, ist "derselbe" (...in der richtigen Form) Code in XHTML 1.1. Wenn ich bei meinem Code den Doctype nun in XHTML 1.1 änder, sagt der Validator folgendes:
    Code:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    		<title>World map</title>
    		<style type="text/css">
    			img {
    				border: 0;
    			}
    		</style>
        </head>
        <body>
    		<div id="imagemap">
                <img src="weltkarte_1255.gif" usemap="#weltkarte" alt="World map" />
                <map name="weltkarte" id="weltkarte">
                    <area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
                </map>
    		</div>
        </body>
    </html>
    Validator:
    - Line 18, Column 39: character "#" is not allowed in the value of attribute "usemap"
    - Line 19, Column 11: there is no attribute "name"
    - Line 18, Column 39: reference to non-existent ID "#weltkarte"
    Dass es das Attribut "name" nicht mehr gibt, ist mir ja auch klar, der Fehler sei also gerechtfertigt. Dass er aber meint, dass das "#" nicht dort auftauchen darf, versteh ich nun nicht mehr. Der Code, wie ich ihn getestet habe, wird vom FF und IE aber als funktionstüchtig anerkannt - vermutlich dank der Tatsache, dass sie kleinere Fehler ignorieren.

    Ändert man ihn nun stückweise ab, wie es der Validator verlangt, kommt folgendes dabei heraus:
    name-Befehl gelöscht:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    		<title>World map</title>
    		<style type="text/css">
    			img {
    				border: 0;
    			}
    		</style>
        </head>
        <body>
    		<div id="imagemap">
                <img src="weltkarte_1255.gif" usemap="#weltkarte" alt="World map" />
                <map id="weltkarte">
                    <area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
                </map>
    		</div>
        </body>
    </html>
    FF: Funktioniert nicht
    IE: funktioniert

    #-Zeichen gelöscht:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    		<title>World map</title>
    		<style type="text/css">
    			img {
    				border: 0;
    			}
    		</style>
        </head>
        <body>
    		<div id="imagemap">
                <img src="weltkarte_1255.gif" usemap="weltkarte" alt="World map" />
                <map name="weltkarte" id="weltkarte">
                    <area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
                </map>
    		</div>
        </body>
    </html>
    FF: funktioniert nicht
    IE: funktioniert nicht

    name-zeichen und #-Zeichen gelöscht
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    		<title>World map</title>
    		<style type="text/css">
    			img {
    				border: 0;
    			}
    		</style>
        </head>
        <body>
    		<div id="imagemap">
                <img src="weltkarte_1255.gif" usemap="weltkarte" alt="World map" />
                <map id="weltkarte">
                    <area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
                </map>
    		</div>
        </body>
    </html>
    FF: funktioniert nicht
    IE: funktioniert nicht

    Gerade letztere Variante, die vom Validator als valide angesehen wird, funktioniert in beiden Browser nicht. Entweder muss ich noch etwas abändern oder hinzufügen oder es wurde in den Browsern falsch implementiert. Dass die vorletzte Variante ohne "name" im FF nicht funktioniert, aber im IE, scheint mir klar ein Bug zu sein. Was sagt ihr zu den geschilderten Dingen? Mache ich was verkehrt oder will mich hier jemand veräppeln?

    Gruß,
    Martin

    Edit:
    Ich hab die letzten Tage schon viele Webseiten durchforstet, aber erst jetzt bin ich genau auf die Thematik gestoßen, die ich angesprochen habe:
    It's not a bug in the W3C validator and it isn't that the code is improperly formed.

    Browsers just haven't caught up to the 2001 W3C XHTML 1.1 recommendation. (Maybe it just fell through the cracks?) They still DO, however, understand the OLD way, which is why the old code still works. Oddly, IE accepts the newer "id"-only approach, while Mozilla (FireFox) must have the older "name" attribute. (And they call Mozilla a "modern browser" ... bah!)

    There's not much of a choice here. If you want an image map that FUNCTIONS, you must write invalid XHTML 1.1 code. This is the ONLY situation that I've come across (so far), where I haven't been able to write valid XHTML code and accomplish what I want. So ... break the standard and feel good about it!

    One of these days, after a new browser version release, someone will comment that the first image map is working. Then I'll have a little party, do a little dance, and delete this entry.
    zu finden hier: http://randsco.com/index.php/2005/06...s_in_xhtml_1_1

    Scheinbar doch ein Bug in den Browsern?
    Zuletzt editiert von =[KKB]=Becks; 27.05.2010, 12:28.

  • #2
    Originally posted by =[KKB]=Becks View Post
    "Browsers just haven't caught up to the 2001 W3C XHTML 1.1 recommendation."

    Scheinbar doch ein Bug in den Browsern?
    So würde ich den Satz interpretieren!

    Übrigens gibt es in HTML keine Befehle, denn HTML ist ja keine Programmiersprache.

    Grüße,
    -Efchen

    Comment


    • #3
      So, also, wenn man den Code wie folgt schreibt, ist es XHTML 1.1 in Höchstform:
      Code:
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
          <head>
      		<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
      		<title>World map</title>
      		<style type="text/css">
      			img {
      				border: 0;
      			}
      		</style>
          </head>
          <body>
      		<div id="imagemap">
                  <img src="weltkarte_1255.gif" usemap="weltkarte" alt="World map" />
                  <map id="weltkarte">
                      <area shape="poly" coords="599,104,595,106,591,109,587,118,592,123,592,131,599,131,608,129,612,125,608,119,613,117,613,107,606,106" href="http://www.kkb-clan.de" alt="Deutschland" />
                  </map>
      		</div>
          </body>
      </html>
      ...dennoch funktioniert dieser Code nicht, weshalb ich es jetzt als fehlerhafte Implementierung der Browser ansehe, denn besser weiß ich es nun wirklich nicht mehr. Fakt ist zudem auch, dass der beschi**ene IE6 damit herzlich wenig anfangen kann, weil diese Microsoft-Gurke mit Standards wie eh und je nichts am Hut hat. Da meine Firma aber offiziell den IE6 nutzt, werd ich auf XHTML 1.0 zurückgreifen, denn da kann man gewisse Dinge anwenden, die sowohl valide sind, als auch von dem IE6-"Browser" (wer's glaubt, wird seelig...) korrekt erkannt werden.


      PS: HTML ist eine Auszeichnungssprache, aber ich bleibe trotzdem bei Programmiersprache, da man so alles schön unter einen Hut bringt und nicht darüber nachdenken muss, wie das nun wieder korrekt hieß

      Comment


      • #4
        Ne Firma macht ne Clanhomepage oO Das muss ja ein reicher Clan sein

        Comment


        • #5
          Originally posted by fanderlf View Post
          Ne Firma macht ne Clanhomepage oO Das muss ja ein reicher Clan sein
          Hö? XD Nur weil ich meinen Clannamen hier eingetragen habe, heißt das nicht, dass eine Firma bzw. mein Arbeitgeber eine Clanpage baut Das, was ich hier bastel, ist ein Eingangsportal für die verschiedenen Betriebe mit einer Map.

          Mein Clannamen für den Login hab ich nur daher gewählt, weil ich hauptsächlich privat in diesem Forum unterwegs sein werde - auch weil ich für meinen Clan/Kumpels ein CMS baue

          Comment


          • #6
            Originally posted by =[KKB]=Becks View Post
            PS: HTML ist eine Auszeichnungssprache, aber ich bleibe trotzdem bei Programmiersprache, da man so alles schön unter einen Hut bringt und nicht darüber nachdenken muss, wie das nun wieder korrekt hieß
            Falsche Ausdrucksweise ist aber in allen Lebenslagen gefährlich.
            Gerade Anfänger erwarten dann von HTML Dinge, zu denen es nicht in der Lage ist, denn eine Programmiersprache hat ein ganz anderes Einsatzgebiet und einen vielfach größeren Umfang als eine Auszeichnungssprache wie HTML.

            Comment

            Working...
            X