H. Meier: Was ist hier falsch/korrekter Einsatz von <div> Tags

Hallo Forum,

programmiere gerade an einer Seite in PHP und fange nun an die ganzen Fehler zu suchen, bzw. zu beheben. U.a. bekomme ich hier Fehler:

div class="tax_info">[inkl. 16% MwSt zzgl. <a href="https://www.meinedomain.de/shop/shipping.php" class="tax_info"><u>Versandkosten</u></a>]</div>

Erzeugt wird das ganze mit

<div class="tax_info">" . sprintf(TEXT_INFO_TAX, $products_tax , tep_href_link(FILENAME_SHIPPING)) . "</div>"

Hier noch die fehlerbeschreibung von W3C:

468: document type does not allow element "DIV" here; missing one of "APPLET", "OBJECT", "MAP", "IFRAME", "BUTTON" start-tag
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").

und

end tag for element "DIV" which is not open
The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

Was mich viel mehr interessiert, was ist an den div Tags falsch, bzw. wie muss es richtig heißen?

Gruß und Danke,

Hans

  1. Hallo Freunde des gehobenen Forumsgenußes,

    <div class="tax_info">" . sprintf(TEXT_INFO_TAX, $products_tax , tep_href_link(FILENAME_SHIPPING)) . "</div>"

    Wie du diesen Code erzeugst ist vollkommen uninteressant, nur das Ergebnis zählt.

    468: document type does not allow element "DIV" here; missing one of "APPLET", "OBJECT", "MAP", "IFRAME", "BUTTON" start-tag

    Welches ist das Elternelement von dem div?

    Gruß
    Alexander Brock

    --
    SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:? ss:| de:> js:( ch:| sh:( mo:} zu:}
    http://againsttcpa.com
    1. Hallo Alexander Brock

      danke für die schnelle Antwort.

      Hallo Freunde des gehobenen Forumsgenußes,

      <div class="tax_info">" . sprintf(TEXT_INFO_TAX, $products_tax , tep_href_link(FILENAME_SHIPPING)) . "</div>"

      Wie du diesen Code erzeugst ist vollkommen uninteressant, nur das Ergebnis zählt.

      Da hast du natürlich vollkommen Recht. Wollte das nur der Vollständigkeit halber mit angeben, wobei ich da wohl doch was vergessen habe...

      468: document type does not allow element "DIV" here; missing one of "APPLET", "OBJECT", "MAP", "IFRAME", "BUTTON" start-tag

      Welches ist das Elternelement von dem div?

      Das sagt mir jetzt nichts. Nehme mal an, du möchtest gerne wissen wie der Code davor und danach aussieht. Das ganze ist eine Tabelle, wobei jede Zelel so aufgebaut ist:

      <td align="center" class="boxText">
      <a href="http://www.meinedomain.de/index.html">
        <img src="images/10-058.JPG" border="0" alt="10-058" title=" 10-058 " width="100" height="80">
      </a><br>
      <a href="http://www.meinedomain.de/index.html">
        10-058
      </a><br>
      11,00&euro;<br>
      <div class="tax_info">
        [inkl. 16% MwSt zzgl.
        <a href="http://www.meinedomain.de/shop/shipping.php" class="tax_info">
         <u>
          Versandkosten
         </u>
        </a>
        ]
      </div>
      </td>

      Gruß
      Alexander Brock

      Hilft das weiter? Danke,

      Hans

      1. Lieber Hans,

        Welches ist das Elternelement von dem div?
        <td align="center" class="boxText">
        ...
        11,00&euro;<br>
        <div class="tax_info">
          [inkl. 16% MwSt zzgl.
          <a href="http://www.meinedomain.de/shop/shipping.php" class="tax_info">
           <u>
            Versandkosten
           </u>
          </a>
          ]
        </div>
        </td>

        Darf ein <td> ein <div> enthalten? Prüfe das! Wenn es erlaubt ist, dann könnte sich der Validator an den Eckigen Klammern ("[" und "]") stören. Kannst Du sie maskiert ausgeben? Ich denke dabei an soetwas:
        $string = "<div class=\"tax_info\">" . htmlentities(sprintf(TEXT_INFO_TAX, $products_tax , tep_href_link(FILENAME_SHIPPING))) . "</div>";

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. hi,

          Darf ein <td> ein <div> enthalten?

          ja.

          Wenn es erlaubt ist, dann könnte sich der Validator an den Eckigen Klammern ("[" und "]") stören. Kannst Du sie maskiert ausgeben?

          eckige klammern sind keine sonderzeichen, die maskiert werden müssten.

          der fehler muss noch woanders liegen.

          eine beispielseite wäre vermutlich am geeignetsten, um das problem nachzuvollziehen.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Lieber wahsaga,

            der fehler muss noch woanders liegen.

            Natürlich! Du hast ja recht! Ich bin ein Blindfisch... Die Fehlermeckerung des Validators sprach ja von "document type".

            468: document type does not allow element "DIV" here;

            Da ist es ja vielleicht möglich, dass der Code-Ausschnitt aufgrund des DOCTYPEs nicht als valide anerkannt wird, oder?

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            1. hi,

              Die Fehlermeckerung des Validators sprach ja von "document type".

              468: document type does not allow element "DIV" here;

              das tut er natürlich, weil er das dokument ja gegen eine bestimmte DTD validiert.

              Da ist es ja vielleicht möglich, dass der Code-Ausschnitt aufgrund des DOCTYPEs nicht als valide anerkannt wird, oder?

              gewisse unterschiede bzgl. transitional und strict sind natürlich vorhanden, was die "legalität" bestimmter elemente an bestimmten stellen betrifft.

              allerdings ist aus den bisher geposteten code-ausschnitten noch nicht ersichtlich, wo der fehler liegt.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. Hallo,

                vielen Dank für eure Denkanstöße, bzw. den Wink mit dem Zaunpfahl.
                Es lag tatsächlich am (falsch) deklarierten Doctype. Mit transitional passt die optische Anzeige und W3C meckert auch nichts mehr an.

                Vielen Dank an euch da draußen für die hilfreichen Tipps und schnellen + netten Antworten. Muss mir das Forum mal merken.

                Schönes Wochenende,

                Hans (im Glück ;=))

        2. puts "Hallo " + gets.chomp + "."

          ?> Felix
          => Hallo Felix.

          Darf ein <td> ein <div> enthalten?

          Ja. -> SelfHTML Elementreferenz <td>

          Wenn es erlaubt ist, dann könnte sich der Validator an den Eckigen

          Klammern ("[" und "]") stören.

          Warum sollte er? Text ist Text und bis auf die besonderen Zeichen <, >, und " muss man da kaum auf etwas achten. (Selbst diese drei nur bedingt.)

          Folgendes Konstrukt ist valide und erzeugt keinerlei Fehlermeldung:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          <html>  
            <head>  
              <title>New Document</title>  
              <meta http-equiv="content-type" content="text/html; charset=utf-8">  
            </head>  
            <body>  
              <table>  
            <tr>  
            <td align="center" class="boxText">  
            <a href="http://www.meinedomain.de/index.html"><img src="images/10-058.JPG" border="0" alt="10-058" title=" 10-058 " width="100" height="80"></a><br>  
            <a href="http://www.meinedomain.de/index.html"> 10-058</a><br>  
            11,00&euro;<br>  
            <div class="tax_info">  
              [inkl. 16% MwSt zzgl.<a href="http://www.meinedomain.de/shop/shipping.php" class="tax_info"><u>Versandkosten</u></a>  
              ]  
            </div>  
            </td>  
            </tr>  
           </table>  
            </body>  
          </html>
          

          Einen schönen Freitag noch.

          Gruß, Ashura

          --
          Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
          30 Days to becoming an Opera8 Lover -- Day 20: search.ini
          Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
          [Deshalb frei! - Argumente pro freie Software]
  2. div class="tax_info">[inkl. 16% MwSt zzgl.

    Hier fehlt auf jeden Fall das Start-tag.

    Gruß,
    Onkel Schnitzel

    1. div class="tax_info">[inkl. 16% MwSt zzgl.

      Hier fehlt auf jeden Fall das Start-tag.

      Hallo Onkel Schnitzel,

      danke für die schnelle Antwort. Keine Angst, die spitze Klammer auf steht vor dem div, also <div class="tax_info">... Muss mir beim copy&paste entfallen sein.

      Trotzdem danke,

      Hans