onceupon: w3c konformität

Hallo zusammen

Ich habe nur eine kurze Frage bezüglich konformität: Wäre ein block-element in einem inline-element,dem per css die eigenschaft "display:block" zugewiesen ist, erlaubt oder nicht?
also beispielsweise ein <div> in einem entsprechend formatierten <a>?

Ich habe entsprechendes an anderer Stelle gelesen, kann mir aber kaum vorstellen, dass dem so sein soll?

Internet Explorer akzeptiert es tatsächlich, im Firefox habe ich jedoch ein seltsames Verhalten beobachtet: Die Fehlerkonsole zeigt zwar keinen Fehler an und in gut 95% der Fälle wirds angezeigt wie "erwünscht", doch ab und zu wendet er das <a>-Tag auf alle im <a> enthaltenen div und span separat an, was den seltsamen effekt hat, dass der quellcode zwar so aussieht:
(zur veranschaulichung)
<a href="#">
   <div /><span /><span /><div />
</a>
aber im firebug so angezeigt wird:
<a href="#">
   <div />
</a>
<a href="#">
   <span />
</a>
<a href="#">
   <span />
</a>
<a href="#">
   <div />
</a>

:)

  1. @@onceupon:

    nuqneH

    Wäre ein block-element in einem inline-element,dem per css die eigenschaft "display:block" zugewiesen ist, erlaubt oder nicht?

    Nein.

    Unterscheide zwischen HTML-Blockelementen und CSS-Blockelementen!
    http://forum.de.selfhtml.org/archiv/2006/6/t132132/#m854853, http://forum.de.selfhtml.org/archiv/2007/4/t149631/#m972077 ff.

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. @@onceupon:

      nuqneH

      Wäre ein block-element in einem inline-element,dem per css die eigenschaft "display:block" zugewiesen ist, erlaubt oder nicht?

      Nein.

      Hab ich mir doch gedacht :)

      danke dir!

  2. Hi!

    Ich habe nur eine kurze Frage bezüglich konformität: Wäre ein block-element in einem inline-element,dem per css die eigenschaft "display:block" zugewiesen ist, erlaubt oder nicht?

    CSS hat keinen Einfluss auf die Regeln von HTML. Üblicherweise dürfen Inline-Elemente keine Block-Elemente enthalten, mit den Ausnahmen map, object und button.

    Ob du ein Element mit der CSS-Eigenschaft display als block oder inline formatierst ist eine andere Geschichte. Dadurch ändert sich ja das zugrunde liegende HTML nicht.

    Lo!

    1. Hi,

      Üblicherweise dürfen Inline-Elemente keine Block-Elemente enthalten, mit den Ausnahmen map, object und button.

      Und DEL und INS, die - kontextabhängig - sowohl als block- als auch als inline-Element Verwendung finden können.

      MfG ChrisB

      --
      “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
      1. Hi!

        Üblicherweise dürfen Inline-Elemente keine Block-Elemente enthalten, mit den Ausnahmen map, object und button.

        Und DEL und INS, die - kontextabhängig - sowohl als block- als auch als inline-Element Verwendung finden können.

        Ah ja, mein Spickzettel der Block- und Inline-Elemente stammt noch von der 4.01er DTD, da sind ins und del nicht in %inline oder %block enthalten sondern nur als Inhalt von body.

        <!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->

        Seit XHTML sind ins und del Mitglied von %misc.inline und damit %misc und diese beiden tauchen als erlaubter Inhalt in ziemlich vielen Elementen auf.

        Lo!

        1. @@dedlfix:

          nuqneH

          Ah ja, mein Spickzettel der Block- und Inline-Elemente stammt noch von der 4.01er DTD, da sind ins und del nicht in %inline oder %block enthalten sondern nur als Inhalt von body.

          ?? Das validiert:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
          <html>  
              <head>  
                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
                  <title>TEST</title>  
              </head>  
              <body>  
                  <p>Aus <del>alt</del> mach <ins>neu</ins>.</p>  
              </body>  
          </html>
          

          „[INS und DEL] können ein oder mehr Worte innerhalb eines Absatzes enthalten oder ein oder mehr Block-Level-Elemente wie Absätze, Listen und Tabellen.“ [HTML401 §9.4]

          <!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->

          Ja, das macht mich auch etwas stutzig. Was genau heißt '+' in SGML? Wird da was an Kinder vererbt?

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hi,

            Ah ja, mein Spickzettel der Block- und Inline-Elemente stammt noch von der 4.01er DTD, da sind ins und del nicht in %inline oder %block enthalten sondern nur als Inhalt von body.

            +(X) ist das Gegenstück zu -(X).

            Siehe z.B. a-Element

            <!ELEMENT A - - (%inline;)* -(A)>

            In a dürfen alle inline-Elemente vorkommen, aber kein a-Element, egal in welcher Schachtelungstiefe.

            Oder form-Element

            <!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>

            In form darf kein form-Element vorkommen, egal in welcher Schachtelungstiefe.

            <!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->

            bedeutet also, daß INS (nichtexklusiv-) oder DEL in body vorkommen darf, egal in welcher Schachtelungstiefe.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
            1. @@MudGuard:

              nuqneH

              <!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->
              bedeutet also, daß INS (nichtexklusiv-) oder DEL in body vorkommen darf, egal in welcher Schachtelungstiefe.

              Danke für die Aufklärung.

              Ich weiß schon, warum mir XHTML/XML lieber ist als HTML/SGML.*

              Qapla'

              * Ich weiß auch, dass XML SGML ist. Ich wusste nur nicht, wie ich das sprachlich unterbringen sollte.

              --
              Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
              1. * Ich weiß auch, dass XML SGML ist. Ich wusste nur nicht, wie ich das sprachlich unterbringen sollte.

                Naja, XML ist nicht SGML - XML ist "nur" eine stark vereinfachte Teilmenge und genau darum ist es dir lieber. Dem schließe ich mich vollumfänglich an.

                1. @@suit:

                  nuqneH

                  * Ich weiß auch, dass XML SGML ist.
                  Naja, XML ist nicht SGML - XML ist "nur" eine stark vereinfachte Teilmenge

                  So war’s gemeint. So wie in: dass VW Käfer Autos sind.

                  Qapla'

                  PS: Man sollte natürliche Sprache abschaffen und sich der Symbolik der Mathematik bedienen: VW Käfer ⊂ Autos. Das lässt keine Zweideutigkeiten offen, dass nicht VW Käfer = Autos gemeint ist.

                  PPS: Andererseits möchte ich auf Zweideutigkeiten in der Sprache doch nicht verzichten.

                  --
                  Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)