<pre> + <div> + scrollbar -> Probleme

  • Moin, Moin an alle Leser,

    ich komme mal wieder nicht weiter und hoffe auf eure Hilfe. Folgender Status und Wunschziel:

    • Alles in Beiträgen
    • Normaler Fließtext
    • Teils kurze, teils (sehr) lange Code-Passagen
    • css wird von einer alternativen Datei teils "umgebogen"
    • Code wird in <pre>-Tags eingeschlossen.


    Das funktioniert alles wunschgemäß. Der CSS-Code sieht so aus:

    Code
    #content pre {    background: silver;
        color: #222;
        padding: 5px 10px;
        border: 2px solid #5e2800;
    }

    Bei Codeblöcken mit bis zu etwa 15 Zeilen ist das ja voll OK, es wird sogar automatisch ein horizontaler Scrollbalken eingefügt, falls erforderlich.

    Bei Vielen Zeilen mag ich dem Leser nicht zumuten, zwei oder mehr Bildschimhöhen durchzuschrollen, um an den Folgetext zu gelangen. Insbesondere dann, wenn der Code im Moment nicht so wichtig für den Leser ist. Außerdem gibt es den auch noch als Download.

    Mit einem <div> hoffte ich nun, nur diese großen Codeblöcke in eine 300px-Ansicht zu zwängen und mit einer Scrollbar auszustatten:

    Beide Alternativen funktionieren nur scheinbar. Einerseits ist es (wohl) entscheidend, wie die beiden Statements geschachtelt sind. <div><pre> ... </pre></div> scheint gar nichts zu bewirken, wenn ich [COLOR=#a52a2a]<div class="VielCode"><pre>[/COLOR] einsetze. Die Code-Zeilen sind voll untereinander zu lesen, immerhin ist ein vertikaler Scrollbalken eingebaut.

    Schreibe ich jedoch [COLOR=#A52A2A]<div class="ScrollBar"><pre>,[/COLOR] dann wird das Ganze für mich irritierend. Text rechts wird abgeschnitten, es ist aber keine horizontale ScrollBar sichtbar. Siehe .
    Scrolle ich aber zum Ende des DIV-Bereichs, dann ist offensichtlich im PRE-Block eine Scrollbar eingebunden und sichtbar, am unteren Ende des DIVs jedoch nur Freiraum: .

    Un jetzt verstehe ich die Welt nicht mehr :(. Ich schreibe die andere Reihenfolge: <pre><div> ... </div></pre> und nach dem speichern des Entwurfs sieht die Vorschau genau so aus, wie ich es mir vorgestellt habe. Und funktioniert auch so. Wenn ich nun noch einmal speichere, dann geschieht das, was mich ratlos werden lässt: Die <pre> - Tags werden ohne mein Zutun gelöscht und sämtliche Zeilenschaltungen im <div>-Bereich entfernt. Und das ist dann natürlich auch im Blog sichtbar. Ich sag es mal auf Plattdeutsch: "Scheun Schiet!" ;).

    Dass ich etwas falsch mache, ist klar. Aber was? Oder gibt es eine andere Lösung? (Bei den Plugins bin ich nicht fündig geworden, liegt vielleicht auch daran, dass meine letzte Englischstunde >50 Jahre her ist.)Scheinbar "würgt" das <pre> so einiges ab, was aus meiner Sicht hilfreich wäre. Die Alternative, nur einige Zeilen anzuzeigen und dann einen Link zu einem Beitrag mit dem vollen Code zu setzen, finde ich nicht so optimal. Und prinzipiell 300px zu verwenden, ist bei wenigen Zeilen Code auch nicht schön, da so meist zu viel Leerraum entsteht.

    Ich arbeite mit dem "normalen" Text-Editor von WP, habe aber auch WP Edit Pro als Plugin installiert. - Bis jetzt habe ich den Code in voller Länge dargestellt, insofern ist der Link zu meinem Blog vielleicht nicht ganz so hilfreich.

    Jetzt schon einmal meinen Dank fürs lesen!

    Gruß
    Günther

    Einmal editiert, zuletzt von cpt. Nemo (24. September 2014 um 21:30)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • [COLOR=#333333]scheint gar nichts zu bewirken, wenn ich [/COLOR][COLOR=#a52a2a]<div class="VielCode"><pre>[/COLOR][COLOR=#333333] einsetze.[/COLOR]


    Wenn Du den Code so schreiben willst, muss die CSS so aufgebaut sein

    Code
    .VielCode pre {...}


    [COLOR=#333333]Schreibe ich jedoch [/COLOR][COLOR=#A52A2A]<div class="ScrollBar"><pre>,[/COLOR][COLOR=#333333] dann wird das Ganze für mich irritierend. Text rechts wird abgeschnitten, es ist aber keine horizontale ScrollBar sichtbar. [/COLOR]


    Versuch es mal mit max-height anstelle von height.

    Und als abschließende kleine Erklärung:
    CSS musst Du immer in der Reihenfolge schreiben, wie man auch den Quellcode liest, von oben nach unten.

    Wenn Du also <div class="VielCode"><pre> schreibst, muss auch erst die class für div und dann pre definiert werden:

    Code
    .VielCode pre


    Wie ich oben ja schon geschrieben habe.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Moin, Moin,

    also, den "Sir" (Adlstitel) hast du dir redlich verdient! :lol: :!:

    Zitat

    Wenn Du den Code so schreiben willst, muss die CSS so aufgebaut sein

    Code:
    ---------
    .VielCode pre {...}


    Genau das war's! DANKE!

    Klingt ja irgendwie logisch und du hast es sehr einleuchtend erklärt.

    Bis zum nächsten Problem, dieses ist gelöst. Vielleicht kann ich dir/euch ja mal in Excel weiter helfen ;).

    Gruß
    Günther

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!