Closed gunnarbittersmann closed 7 years ago
In der vorgeschlagenen Form bin ich dagegen.
Oft ist der Beispielcode, der in ein Posting eingefügt wird, breiter und/oder höher, als der Viewport. Der Code wird also nicht vollständig angezeigt, so dass, wie Gunnar schon schrieb, der Leser scrollen muss. Speziell in dem Fall, dass der Codeblock breiter als der Codecontainer ist, führt das dazu, dass der Leser querscrollen muss. Das geht nur sehr schlecht, wenn sich der Querscrollbalken irgendwo unterhalb des unteren Rands des Viewport befindet und der Leser andauernd zwischen zu lesendem Code und dem Querscrollbalken hin und her scrollen muss.
Hier bei Github ist das unschön zu sehen, wenn man sich die Quelltexte von Dateien mit überlangen Zeilen ansieht. Der Querscrollbalken – es ist der einzige, da nicht vertikal gescrollt wird – ist am Ende des Quelltextes, womit sich der über die vorhandene Anzeigebreite hinaus vorhandene Code in langen Zeilen auf Nicht-Touch-Geräten nur mit der Tastatur erreichen lässt. Die Spalte mit den Zeilennummern wird aber ohne weitere Handstände beim wieder nach links verschieben der Ansicht nicht mehr angezeigt. Das ist mMn Mist.
Um Gunnar zu paraphrasieren: Den Bug des Anzeigeprogramms, dem Nutzer nicht klarzumachen, dass noch mehr Inhalt vorhanden ist, damit zu beheben, allen Anderen die Möglichkeit des Querscrollens zu nehmen, ist selten eine gute Idee. (wenn denn überhaupt gescrollt werden muss/soll)
Das Problem ließe sich umgehen und auflösen, wenn (über)lange Zeilen auch in Codeblöcken umgebrochen würden. Dann gäbe es überhaupt keine Scrollbalken. Wie gut das ankommt, sei dahingestellt.
Das Problem ließe sich umgehen und auflösen, wenn (über)lange Zeilen auch in Codeblöcken umgebrochen würden.
Das ist bereits der Fall
code.block {
white-space: pre;
white-space: pre-wrap;
}
An horizontales Scrollen hatte ich nicht gedacht. Dann ist das momentane max-height: 50em
aber auch nicht zielführend; es müsste max-height: 100vh
heißen – oder ein paar Mü weniger: 95vh
oder calc(100vh - 4em)
.
Aber wie @MatthiasApsel gerade sagte, ist das eh kein Thema.
Das habe ich auf Wunsch von Matthias eingeführt. Bitte mit ihm abklären, mir ist das egal.
das momentane
max-height: 50em
[ist] aber auch nicht zielführend; es müsstemax-height: 100vh
heißen – oder ein paar Mü weniger:95vh
odercalc(100vh - 4em)
.
Ich habe mir gleich nach der Umstellung auf cforum4 92vh
ins Benutzerstylesheet eingetragen. Codezeilen wurden damals noch nicht umgebrochen. Damit habe ich den Scrollbalken mehr oder minder immer (wenn er denn da ist) in Sichtweite. Dass die Codezeilen (seit wann auch immer) umgebrochen werden, ist mir nicht einmal aufgefallen; sie sind ja eh nicht immer "überlang".
Wenn es also keinen Grund zum querscrollen gibt, sollten die Scrollbalken auch nicht angeboten werden. Wer der "reinen Lehre" von den nicht umbrechenden Codezeilen frönt, kann das immer noch mit dem Benutzerstylesheet überschreiben.
Wie kommst du die ganze Zeit auf vertikales Scrollen und überlange Zeilen? 😉 es geht hier im horizontales Scrollen bei Quelltexten, die mehr als 50em Höhe einnehmen:
max-height: 50em;
overflow: auto;
Und das scrollen wird nur bei mehr als 50em Höhe angeboten. Das wurde damals auf Wunsch von Matthias hin so implementiert, mir ist das egal, ich habe da keine Präferenz.
Wie kommst du die ganze Zeit auf vertikales Scrollen und überlange Zeilen? 😉 es geht hier im horizontales Scrollen bei Quelltexten, die mehr als 50em Höhe einnehmen:
Sicher? Die gezeigten Zeilen sagen (mir) nur, dass ein vertikaler Scrollbalken eingeblendet wird, sobald der Codeblock höher als 50em
ist. Ein horizontaler Scrollbalken (Querscrollbalken) würde (wenn nicht woanders der Umbruch ermöglicht würde) immer eingeblendet, wenn die Zeilen zu lang/breit wären.
Mit dem von Matthias gezeigten Code wird es nie horizontale, sondern nur vertikale Scrollbalken geben. Als ich Gunnar widersprach wusste ich das aber nicht. In meinem Szenario (kein Umbruch in Codeblöcken) wären sowohl vertikale Scrollbalken (bei Überschreitung einer Maximalhöhe) als auch horizontale Scrollbalken (bei jeglicher Überschreitung der Breite des Codeblocks) möglich.
Sorry, drehe es einmal um bitte, war etwas abgelenkt beim schreiben ;-) Die Frage bleibt: wie kommst du auf querscrollen? Darum ging es hier doch gar nicht, es ging um das hoch/runter scrollen.
Ich habe damals ohne besondere Präferenz die Code-Blöcke in der Höhe begrenzt. (bis auf "Zu viel Code ist meistens für die Lösung des Problems ohnehin nicht sinnvoll") Meinetwegen kann das auch weg.
Die Frage bleibt: wie kommst du auf querscrollen? Darum ging es hier doch gar nicht, es ging um das hoch/runter scrollen.
Gunnar möchte, weil sein Browser "die Scrollbalken nur bei Bedarf anzeig[t]", diesen Bedarf aber offensichtlich nicht immer erkennt/anzeigt, (speziell) die vertikalen Scrollbalken weglassen. Ich hielt, in Unkenntnis des vorhandenen Umbruchs zu langer Codezeilen, dagegen, dass das dazu führte, dass ich in Codeblöcken, deren Inhalt sowohl die Breite des Blocks sprengt, als auch höher als der Viewport ist, nur noch umständlich an einen horizontalen Scrollbalken herankäme.
Der horizontale Scrollbalken befände sich, wenn er denn zugelassen und notwendig wäre, logischerweise am Ende des Codeblocks. Dieses wäre evtl. nur durch scrollen erreichbar. Das hin und her zwischen Scrollbalken und zu begutachtender Codestelle wäre nicht gerade erfreulich. Es ging mir also um einen (tatsächlich nicht auftretenden) Nebeneffekt.
Da das aber hoffentlich nur bei kleinen Viewports vorkommt (Handy) braucht man da aber im Allgemeinen die Scrollbalken nicht, um zu scrollen 😉
Codeboxen sind in ihrer Höhe beschränkt, was dazu führt, dass nicht aller Quelltext sichtbar ist. Auf Systemen, die Scrollbalken nur bei Bedarf anzeigen (wie macOS), führt das dazu, dass der Leser keinerlei Hinweis hat, dass da noch mehr Quelltext ist. Scrollbare Boxen in scrollbaren Boxen (ganze Seite) sind selten eine gute Idee.
Lösung: Deklaration von
max-height
fürcode.block
entfernen.