Google Map arbeitet nicht mit XHTML Doctype (Dokumenttyp)

8

Warum auf der Welt gibt es immer eine Chance, dass, wenn wir "Doctype" mit Google Maps verwenden, ein Problem darin besteht, Google Map korrekt anzuzeigen?

In einem letzten Fall hat dieser "Doctype" nur zwei Tage gedauert, ohne dass es produktiv war. Was für ein ekelhafter Fall? Diesmal bekam ich eine Hilfe von einem meiner Kollegen (Subhankar Bannerjee), und vielen Dank an ihn wegen seiner rechtzeitigen & amp; effiziente Hilfe. Er erwähnte auch das gleiche Problem, dem er schon oft ausgesetzt war.

Kann mir bitte jemand sagen, warum dieses Doctype Problem mit Google Map passiert?

Jede Hilfe wird sehr geschätzt.

BEARBEITEN (für Kommentar von @Balus): -
Ich benutzte den (X) HTML 1.0 Transitional Doctype, für Mozilla FF & amp; Google Chrome-Browser Ich habe diese Google Map in IE v6 + noch nicht überprüft, daher kann ich diese Browser nicht kommentieren.

    
Knowledge Craving 10.07.2010, 05:11
quelle

4 Antworten

16

Ich hatte vor einer Weile das gleiche Problem mit Google Maps API v3 und muss es sagen war nicht einfach zu debuggen.

Wenn Sie DOCTYPE nicht auf Ihrer Seite verwenden, wird die Seite im Quirks-Modus gerendert. Grundsätzlich erlaubt dies die Verwendung von Stilen ohne zusätzliches CSS oder JavaScript. In diesem Fall könnten Sie dieses Bit verwenden, um die Karte zu laden:

%Vor%

Bei DOCTYPE wird die Seite jedoch so gerendert, wie es der DOCTYPE sagt. Einen Stil wie den obigen zu setzen, würde ohne zusätzliches CSS nicht funktionieren, da es Prozentsätze verwendet. Das Element hat keine Größe, so dass Sie am Ende 100% von nichts nehmen. Also, wenn Sie XHTML 1.0 Strict verwenden, dh.

%Vor%

Die Seite rendert so, wie sie sollte, wenn Sie Pixel statt Prozent verwenden:

%Vor%

Sie könnten das auch in CSS tun.

So sind Ihre Optionen hier:

  1. Lassen Sie den DOCTYPE und verwenden Sie Pixel anstelle von Prozentangaben ODER geben Sie die Breite und die Höhe über CSS an.

  2. Entfernen Sie den DOCTYPE und verwenden Sie Prozentsätze. Dies wird nicht empfohlen, da das Dokument immer angeben sollte, mit welcher DTD es gerendert werden soll.

Weitere Informationen zum Quirks-Modus finden Sie hier. Es gibt auch eine Tabelle, die zeigt, wie verschiedene Browser reagieren zum Mangel an DTD.

    
vtorhonen 23.07.2010, 11:16
quelle
1
%Vor%

Ich benutze diesen Doctype und es scheint gut zu funktionieren. Es könnte nur dein Bootstrap sein. Wie laden Sie Google? Welche Fehler bekommst du? Zeigen Sie, welche Art von Ergebnis erhalten Sie?

    
CrazyEnigma 20.07.2010 14:03
quelle
0

Ihre Frage lautet "Wenn wir 'Doctype' verwenden". Bedeutet das, du warst vorher nicht? Wenn Sie es vorher nicht getan haben, ändern Sie im Wesentlichen die "Regeln", wie eine Webseite aufgebaut wird. Ohne einen richtigen Doctype sind Sie im Quirks-Modus.

    
Rob 20.07.2010 14:13
quelle
0

Eine schnelle Lösung könnte sein, es wie folgt zu verwenden:

document.getElementById("google-map").style.height = $(window).height()+'px';

vor

var map = new google.maps.Map(document.getElementById("google-map"), myMapOptions);

Es funktioniert ziemlich gut mit Doctype. Ausprobiert und getestet! :)

    
kushpf 25.09.2015 19:53
quelle