Kuno: Blöcke in Labels

Funktionieren eigentlich auch solche konstelationen:

<label for="test"><div style="display:block">...</div></label>

  1. hi,

    Funktionieren eigentlich auch solche konstelationen:

    <label for="test"><div style="display:block">...</div></label>

    Nein, label darf nur #PCDATA und Inline Elemente (ausser Label) enthalten.

    Aber du kannst natürlich inline-Elemente darin per CSS als Block darstellen lassen.
    Nur ob das sinnvoll ist, ist eine andere Frage.
    Label soll einen kurzen, erklärenden, idR. klickbaren Text zum jeweiligen Formularfeld enthalten. Um dem Formular selbst Struktur zu geben - klingt so, als ob du das vorhättest - ist es eigentlich nicht gedacht.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Das tolle bei diesen Labels ist ja, dass durch klicken des label-textes das <input> markiert wird bzw der Cursor dort hinspringt.

      1. hi,

        Das tolle bei diesen Labels ist ja, dass durch klicken des label-textes das <input> markiert wird bzw der Cursor dort hinspringt.

        Gut erkannt.

        Und der Zusammenhang zu deiner Frage ist welcher?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Sagte ich doch bereits:

          Beispiel:
          Ich möchte, dass ein <input> auch nach einem Klick auf benachbarte Text oder Bildbausteine aktiviert wird die Blöcke sind.
          Aber ich seh schon, hier sind eher Grafiker unterwegs.

          1. Hallo,

            Sagte ich doch bereits:
            Beispiel:
            Ich möchte, dass ein <input> auch nach einem Klick auf benachbarte Text oder Bildbausteine aktiviert wird die Blöcke sind.

            ja, du wiederholst dich. Aber das erklärt immer noch nicht, warum du ein div-Element in ein Label stopfen willst und so invaliden Code produzierst, der _vielleicht_ von dem einen oder anderen Browser so interpretiert wird, wie du das möchtest.
            Eine Lösung hat wahsaga dir doch auch schon angeboten.

            Aber ich seh schon, hier sind eher Grafiker unterwegs.

            Wenige. Die meisten hier sind eher Techniker.
            Ich wüsste auch nicht, was deine Problematik mit "Grafiker" zu tun hat.

            So long,
             Martin

            --
            Ist die Katze gesund,
            freut sich der Hund.
          2. Hallo,

            Ich möchte, dass ein <input> auch nach einem Klick auf benachbarte Text oder Bildbausteine aktiviert wird die Blöcke sind.

            Statte die Blöcke mit einem onclick-Event-Handler aus. Erstelle dann entweder eine Funktion, oder baue die Javascript-Methode direkt in den Eventhandler ein.
            Getestetes Beispiel:

              
              <script type="text/javascript">  
               function makeFocus(element){ document.getElementById(element).focus() }  
              </script>  
              <form>  
               <input id="input1">  
              </form>  
              <div onclick="makeFocus('input1')">[...]</div>  
            
            

            Aber ich seh schon, hier sind eher Grafiker unterwegs.

            Hä? Voher willst du das schließen?
            Grüße,
            Willi

            1. hi,

              Statte die Blöcke mit einem onclick-Event-Handler aus.

              Wozu - um die Nutzbarkeit des Formulars für Nutzer ohne Javascript bewusst, aber ohne jede Not unkomfortabler zu machen?
              Unsinnig.
              Labels sind das Mittel der Wahl.

              gruß,
              wahsaga

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

                Statte die Blöcke mit einem onclick-Event-Handler aus.

                Wozu - um die Nutzbarkeit des Formulars für Nutzer ohne Javascript bewusst, aber ohne jede Not unkomfortabler zu machen?
                Unsinnig.
                Labels sind das Mittel der Wahl.

                Natürlich, das sehe ich auch so - weniger (JS) ist mehr.
                Aber: Da es in seinem Fall ohne Javascript keine Lösung gibt (außer eine, die dann aber nicht validiert...), finde ich es durchaus nicht schlimm, Usern mit eingeschaltetem JS diese Lösung zu präsentieren. Das schließt ja nicht die Möglichkeit aus, zusätzlich noch ein Label anzufertigen.

                Grüße,
                Willi

                1. Hallo Willi,

                  Natürlich, das sehe ich auch so - weniger (JS) ist mehr.

                  da stimme ich grundsätzlich zu.

                  Aber: Da es in seinem Fall ohne Javascript keine Lösung gibt (außer eine, die dann aber nicht validiert...), ...

                  Was ist gegen die bereits vorgeschlagene valide CSS-Lösung einzuwenden?

                  Ciao,
                   Martin

                  --
                  Das einzige Problem beim Nichtstun: Man weiß nie, wann man damit fertig ist.
                  1. Hallo,

                    Aber: Da es in seinem Fall ohne Javascript keine Lösung gibt (außer eine, die dann aber nicht validiert...), ...

                    Was ist gegen die bereits vorgeschlagene valide CSS-Lösung einzuwenden?

                    Mhm... mist^^ hatte das falsch gelesen^^ Ich dachte, das Label sollte ein Blockelement enthalten, dass mittels CSS in ein inline-Element umgewandelt wird, damit das validiert (<--- ziemlich sinnfrei, stimmt^^)

                    Na gut, dann gibt es zwar eine validierende Lösung, aber strenggenommen ist sie semantisch nicht korrekt...

                    Grüße,
                    Willi

    2. Hallo,

      Label soll einen kurzen, erklärenden, idR. klickbaren Text zum jeweiligen Formularfeld enthalten. Um dem Formular selbst Struktur zu geben - klingt so, als ob du das vorhättest - ist es eigentlich nicht gedacht.

      Nur der Interesse halber: Ich handle es zurzeit so, dass ich die <input> und <select>s in den Label hineinbaue, also z.B. so:
      <label for="name">Vorname: <input type="text" name="name" id="name" /></label>
      Was haltet ihr davon? Ist das vom W3C auch so "erlaubt"?

      (Hintergrund: Damit kann ich einfach alle <label>-Tags per CSS in Blockelemente umwandeln, wenn ich ein untereinanderhängendes Formular haben möchte (was in der Regel der Fall ist). Ansonsten müssen die Labels und die Input-Tags zu Blöcken gemacht werden, und dann wieder mit Ausnahmen, falls ein Textfeld mal inline sein soll etc...)

      Grüße,
      Willi