Jochen: <br> in <option> nicht möglich - Alternative?

Verehrtes Forum,
für ein Formular habe ich eine Auswahlliste <select> erstellt. Die Liste enthält sehr viele und vor allem: sehr lange Einträge (options). Und zwar so lang, daß sie bei "aufgeklappter" Liste z.T. weit über den rechten Bildschirmrand hinausreichen (es handelt sich um eine umfangreiche wissenschaftliche Systematik). Sehr unschön, sehr unpraktisch. Also habe ich versucht, innerhalb eines <option>-Eintrages ein <br> zu setzen - leider ohne Erfolg (<br> wird nicht gelesen).
Das Verkleinern der Schrift ist zwar auch möglich innerhalb von <select>, geht aber bei mir nicht, da die Schrift - wenn alle langen Einträge komplett auf den Bildschirm passen sollen - dann so klein ist, daß sie definitiv nicht mehr lesbar wäre. Auch ein (riskantes) Austauschen der Schriftart bringt kaum etwas.
Wer hat eine Alternativ-Idee? In Self-HTML habe ich noch nichts passendes gefunden.
(Achtung: Es geht um eine aufklappbare Auswahlliste <select>, nicht etwa um ein einfaches Texteingabefeld <textarea> oder <textfield>, in dem Umbrüche ja steuerbar sind.)
Viele Grüße aus Göttingen
Jochen

  1. Tach,

    Wer hat eine Alternativ-Idee? In Self-HTML habe ich noch nichts passendes gefunden.

    das Umbrechen von Einträgen ist nicht vorgesehen, du wirst um Abkürzungen nicht drumrumkommen.

    mfg
    Woodfighter

  2. Hallo Jochen,

    hmm - Zeilenumbrüche in <select>-Tags sind nicht möglich.
    Vielleicht solltest du dir die Radiobuttons mal ansehen - mit PHP oder einer anderen serverseitigen Sprache kannst du die relativ leicht erzeugen, und der Text daneben kann auch Zeilenumbrüche enthalten.

    Bis dann!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
  3. Hi,

    für ein Formular habe ich eine Auswahlliste <select> erstellt. Die Liste enthält sehr viele und vor allem: sehr lange Einträge (options). Und zwar so lang, daß sie bei "aufgeklappter" Liste z.T. weit über den rechten Bildschirmrand hinausreichen (es handelt sich um eine umfangreiche wissenschaftliche Systematik). Sehr unschön, sehr unpraktisch.

    Richtig, derart lange Texte sind zum Auswählen wirklich sehr unpraktisch, (fast) egal wie die Darstellung ist.
    Lassen die sich nicht verkürzen? Oder ggf. aufteilen?

    Also habe ich versucht, innerhalb eines <option>-Eintrages ein <br> zu setzen - leider ohne Erfolg (<br> wird nicht gelesen).

    Daß das nicht funktionieren kann, sieht man ja schon am content-model des option-Elements: (#PCDATA)

    Wer hat eine Alternativ-Idee? In Self-HTML habe ich noch nichts passendes gefunden.
    (Achtung: Es geht um eine aufklappbare Auswahlliste <select>,

    Verzichte auf das Aufklapppen (gib dem select ein size > 1), dann sollte es auch horizontal scrollbar sein.
    Oder kürze die Einträge.
    Oder nutze radiobuttons mit labels (ggf. in ein scrollbares Element eingebettet.

    nicht etwa um ein einfaches Texteingabefeld <textarea> oder <textfield>, in dem Umbrüche ja steuerbar sind.)

    Was soll textfield sein?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Was soll textfield sein?

      • War wohl ein kleiner Irrtum von mir. Ich meinte mehrzeilige Textfelder (= textarea) und einzeilige Textfelder (= input type="TEXT"). Dreamweaver weist diesen einzeiligen Textfeldern automatisch "name=TEXTFIELD" zu und da habe ich wohl TEXT mit TEXTFIELD verwechselt.
        Jochen
  4. Moin!

    für ein Formular habe ich eine Auswahlliste <select> erstellt. Die Liste enthält sehr viele und vor allem: sehr lange Einträge (options).

    Es ist extrem benutzerunfreundlich, Auswahllisten mit sehr vielen Einträgen zu erstellen. Meine Faustregel: Wenn man die Ausklappliste scrollen muß, dann sind zuviele Einträge drin.

    Dazu kommt bei dir noch das Problem, dass nicht nur viele Einträge drin sind, sondern auch noch viel Text je Eintrag. Beides in Kombination ist ein definitives "No" - so sollte man es nicht umsetzen, sondern sich Alternativen ausdenken.

    Zwei Ansätze fallen einem da sofort ein:

    1. Wenn das Formular weiterhin eher "nackt" sein soll, also ausschließlich HTML einsetzt, dann solltest du dein SELECT umwandeln in eine Liste von Radiobuttons (wenn nur eine Auswahl möglich ist) oder Checkboxen (bei SELECT MULTIPLE). Der zugehörige Text kann dann mit allen Mitteln von HTML und CSS vernünftig lesbar gemacht werden. Wenn dir die notwendigerweise lange Liste mit den einzelnen Punkten nicht gut gefällt, dann wäre etwas CSS-Formatierung (overflow:scroll) eine Alternative - damit würde der Bereich mit der Auswahl dann vernünftig klein.

    2. Selbstverständlich kann man auch Javascript einsetzen, um diverse unterstützende Aktionen für die Auswahl anzubieten. Das Arsenal geht von "in der SELECT-Liste steht nur ein Kürzel, eine Textarea darunter kriegt onchange dann den erklärenden Text zu gewiesen" über "man hat mehrere SELECT-Listen, die hierarchisch von Hauptgruppen über Untergruppen bis zur endgültigen Auswahl jeweils nur die entsprechend möglichen Optionen darstellen und dynamisch befüllt werden" bis hin zu "man bastelt sich etwas, was wie ein SELECT-Feld aussieht, aber formatierbar ist".

    (es handelt sich um eine umfangreiche wissenschaftliche Systematik)

    Wenn die Systematik gut ist, dann kann man sie auch vernünftig so in einem Formular wählen, dass es ohne "viele Einträge mit viel Text in genau einem SELECT" gehen kann.

    • Sven Rautenberg
  5. Erstmal vielen Dank für die schnellen Antworten und interessanten (kreativen) Alternativlösungen!!! Ich muß überlegen und ausprobieren, was am besten paßt.
    Falls noch jemand eine weitere kreative Idee hat: immer her damit, denn irgendwie macht es Spaß, zusammen über Alternativen nachzudenken.
    Viele Grüße
    Jochen