ckruse / cforum

https://github.com/ckruse/cforum_ex/
GNU Affero General Public License v3.0
22 stars 5 forks source link

Quelltext nicht vollständig sichtbar #687

Closed gunnarbittersmann closed 7 years ago

gunnarbittersmann commented 7 years ago

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ür code.block entfernen.

auge8472 commented 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.

MatthiasApsel commented 7 years ago

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;
}
gunnarbittersmann commented 7 years ago

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.

ckruse commented 7 years ago

Das habe ich auf Wunsch von Matthias eingeführt. Bitte mit ihm abklären, mir ist das egal.

auge8472 commented 7 years ago

das momentane max-height: 50em [ist] aber auch nicht zielführend; es müsste max-height: 100vh heißen – oder ein paar Mü weniger: 95vh oder calc(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.

ckruse commented 7 years ago

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.

auge8472 commented 7 years ago

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.

ckruse commented 7 years ago

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.

MatthiasApsel commented 7 years ago

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.

auge8472 commented 7 years ago

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.

MatthiasApsel commented 7 years ago

Da das aber hoffentlich nur bei kleinen Viewports vorkommt (Handy) braucht man da aber im Allgemeinen die Scrollbalken nicht, um zu scrollen 😉