fix: Dokumenten- und Download-Menü klappen auf Mobil wieder auf (D50)
Gemeldet: „Dokumente aufklappen/auswählen funktioniert in Mobilansicht nicht." Regression aus D47, einen Tag alt. Ursache: Das dort eingeführte `overflow-x:auto` macht aus der Titelzeile einen Scroll-Container — und beide Aufklapp-Menüs hängen als absolut positionierte Kinder genau darin (`#docMenu` im Editor-Kopf, `.dlmenu` im Diagramm-Kopf). Übersehen war dabei eine CSS-Regel: `overflow-x` auf etwas anderes als `visible` hebt ein `visible` der ANDEREN Achse auf `auto`. Geklippt wurde also nicht seitlich, sondern nach unten — dorthin, wo die Menüs aufklappen. Und ein Scroll-Container klippt, ob er überläuft oder nicht: Der Fehler traf jede Mobilbreite, nicht nur die schmalen, für die die Regel gedacht war. Nachgestellt bei 375 px: Das Dokumenten-Menü ist 153 px hoch und beginnt 156 px unterhalb der Kopfunterkante (clientHeight 43, scrollHeight 200); `elementFromPoint` an seiner Stelle liefert das Textfeld. Beim Download-Menü dasselbe. Das Menü war also nicht schwer zu treffen, sondern gar nicht da. Behoben durch Wegnahme: kein `overflow` mehr an der Zeile. An seine Stelle tritt Umbrechen, aber nur unter 360 px, wo neun Fingerziele arithmetisch nicht nebeneinander passen; darüber bleibt `nowrap`. Erwogen und verworfen war, die Menüs per `position:fixed` aus dem Container zu heben — JS-Geometrie für etwas, das CSS allein konnte, und der Preis stand in keinem Verhältnis: Das `overflow` diente nur Breiten unter 360 px, kaputt waren die Menüs überall. `flex:0 0 auto` gegen den zerdrückten Modus-Wähler bleibt. Nachgemessen — und zwar die Bedienung, nicht die Geometrie, denn genau darin war der Fehler unsichtbar (die Zeile war weiter 49 px hoch, alle Knöpfe an ihrem Platz): Bei 375 px und 320 px trifft `elementFromPoint` im geöffneten Menü `.docitem` bzw. `.dlmenu`, und ein Klick wechselt das Dokument wirklich (Werkbaum -> Example: Titel, `werkbaum-active`, neu gebauter Baum). Kopfzeile 375 px eine Reihe zu 49 px, 320 px zwei Reihen zu 78 px mit allen neun Elementen vollständig sichtbar. Desktop unverändert. 236 Tests grün. D47 bekommt den Verweis, dass sein `overflow` zurückgenommen ist; gelöscht wird dort nichts. frontend/CLAUDE.md warnt jetzt vor `overflow` an Leisten, die Menüs tragen — samt dem Hinweis, dass man das nicht an Maßen sieht. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
1b8bf06973
commit
ec338eb558
+10
-4
@@ -1128,10 +1128,16 @@
|
||||
/* Unterhalb von rund 360 px ist es reine Arithmetik: neun Bedienelemente à
|
||||
29 px plus Lücken brauchen mehr, als dort überhaupt da ist (bei 320 px
|
||||
fehlen 41 px). Kleiner als 29 px darf ein Fingerziel nicht werden
|
||||
(D17-Nachtrag 5), also schiebt die Zeile. Bei 375 px bleiben 14 px Luft —
|
||||
dort ändert die Regel nichts, weil nichts überläuft. */
|
||||
body.mobile .panel-head{overflow-x:auto;scrollbar-width:none}
|
||||
body.mobile .panel-head::-webkit-scrollbar{display:none}
|
||||
(D17-Nachtrag 5) — dort darf die Zeile deshalb umbrechen.
|
||||
**Kein `overflow` an dieser Stelle** (D50): Die Kopfzeile trägt die beiden
|
||||
Aufklapp-Menüs (Dokumente, Download) als absolut positionierte Kinder. Ein
|
||||
Scroll-Container klippt sie — und weil `overflow-x` das `visible` der
|
||||
anderen Achse auf `auto` hebt, klippt er auch nach unten, wo die Menüs
|
||||
stehen. Sie waren damit auf **jeder** Mobilbreite unerreichbar, nicht nur
|
||||
auf den schmalen. */
|
||||
@media (max-width:360px){
|
||||
body.mobile .panel-head{flex-wrap:wrap}
|
||||
}
|
||||
/* Inhalte rund 25 % kleiner, damit mehr Plan auf die Fläche passt
|
||||
(D17-Nachtrag 2). Das Diagramm macht das über den CSS-`zoom` (Faktor auf
|
||||
den Nutzer-Zoom, siehe MOBILE_ZOOM in app.js); der Text über die
|
||||
|
||||
Reference in New Issue
Block a user