HTML 5, Inline-SVG und Namespace-Awareness für SVG DOM

8

Die folgenden Fragen verwirren mich. Ich weiß, dass sie verwandt sind, aber ...

  1. Ist HTML 5-Namespace bekannt (um Tags von SVG / anderen XML-Dialekten aufzunehmen)?
  2. Wenn nicht, was ist dann?
      

    Ich habe diesen alten Link gelesen, aber ich bin total verwirrt ... Weil Mozilla sagt, "um Inline-SVG dynamisch zu modifizieren, muss Scripting dies erfolgen Wie kann ich inline SVG dynamisch verändern (wenn HTML 5 nicht Namespace kennt)?

  3. Oder die Seite muss als (X) HTML 5 geliefert werden?

Einzelheiten - %Vor%

Der obige Code ist der korrekte Weg, um ein rect (unter Verwendung von SVG) in HTML 5 zu rendern. Um nun das SVG mit JavaScript zu modifizieren, empfiehlt Mozilla, diese API. Und meine Frage ist, was ist der Sinn dies zu tun, wenn HTML 5 kein Namespace ist? In solchen Fällen wechseln Browser automatisch zu (X) HTML 5?

Ich lese diesen Kommentar zu SO, und ich finde es am nächsten zu der Antwort, die ich suche -

  

Ich nehme an, die HTML 5 SVG-Situation ist im Grunde "SVG ohne einen Namespace bekommt den Namespace während des Parsens hinzugefügt (aber danach ist es genau wie (X) HTML vorher)".

    
GLES 27.04.2014, 04:51
quelle

1 Antwort

25

HTML5 definiert HTML, XHTML und das DOM.

Das DOM ist dem Namespace bekannt. Wenn Sie DOM-Methoden verwenden, müssen Sie berücksichtigen, in welchem ​​Namespace sich jedes Element befindet, aber der Standard ist der HTML-Namespace ( http://www.w3.org/1999/xhtml ).

HTML und XHTML sind Serialisierungen, die durch Analyse in DOMs umgewandelt werden.

XHTML ist Namespace-bewusst, und XHTML-Dokumente wenden Namespaces nach den Regeln von XML an, daher müssen alle Namespaces jedem Element explizit zugewiesen werden . XHTML wird mit einem XML-Parser in ein DOM konvertiert.

HTML ist auch Namespace bekannt, aber Namespaces werden implizit zugewiesen . HTML wird mit Hilfe eines HTML-Parsers in ein DOM konvertiert, das weiß , welche Elemente in welchen Namespace gehen. Das heißt, dass <div> in den Namespace http://www.w3.org/1999/xhtml und% <svg> in den Namespace http://www.w3.org/2000/svg gelangt. Elemente wie <script> können abhängig vom Kontext, in dem sie im HTML-Code angezeigt werden, im Namensbereich http://www.w3.org/1999/xhtml oder http://www.w3.org/2000/svg enthalten sein.

Der HTML-Parser kennt HTML elements , SVG elements und MathML elements und keine anderen . Es gibt keine Option, Elemente aus anderen Namespaces zu verwenden, weder implizit noch explizit . Das heißt, xmlns -Attribute haben keine Auswirkung.

    
Alohci 27.04.2014, 10:47
quelle

Tags und Links