screen1: "Wie geht's dir?" ist EINE Flaeche -- und die Spalten waren der Fehler
Filipe, mit dem Bildschirmfoto der Seite: "ich will dass diese seite
viel uebersichtlicher aussieht, es soll eine riesssen kachel sein wo
alles viel besser und geiler aussieht. los"
WAS ANDERS IST
--------------
Vorher lagen Gruppenkoepfe und Fragen flach nebeneinander in derselben
Spalte: jede Frage eine eigene Kachel mit Rand, Schatten und Fase,
dazwischen ab und zu eine Ueberschrift. Zwoelf Kacheln, kein Zusammenhang.
Jetzt: eine Flaeche (`b-flaeche`), darin je Gruppe ein Abschnitt mit
ihrem Kopf und ihren Fragen. Getrennt wird durch eine Linie, nicht durch
eine Luecke. Die Frage ist darin kein eigener Kasten mehr, sondern ein
flaches Feld; beantwortet erkennt man an der linken Kante. Obendrauf ein
Band, das den eigenen Stand zeigt ("2 von 9 Fragen dieser Runde
beantwortet") -- auf einer Seite, die man ausfuellt, ist genau das die
Uebersicht, die gefehlt hat.
DER EIGENTLICHE FUND: DER SPALTENSATZ
-------------------------------------
Nach dem Umbau stand auf dem Bildschirmfoto rechts oben eine Reihe
Antwortknoepfe ohne Ueberschrift darueber, und die Ueberschrift
"Miteinander" links unten neben fremden Fragen. Eine Ueberschrift, die
neben fremdem Inhalt steht, ordnet den falschen zu -- das ist nicht
unschoen, das ist falsch.
Ursache war `columns: 2` auf `#fragen`, dem Behaelter um ALLES. Solange
darin nur flache Fragen lagen, ging es auf. Seit die Fragen in Gruppen
stecken, schneidet der Spaltenumbruch mitten durch eine Gruppe. Das
`break-inside: avoid` daneben konnte nichts halten: Es galt fuer
`#fragen > .e-punkt`, und ein `.e-punkt` ist seit dem Umbau kein direktes
Kind von `#fragen` mehr. Die Regel lief ins Leere.
Zwei Spalten gibt es weiterhin -- aber INNERHALB einer Gruppe, ueber ein
Raster (`.b-gruppe__fragen`). Ein Raster verteilt Kaesten und bricht
keinen Textfluss um; es kann per Bauart nichts zerschneiden. Damit ist
die Ursache weg und nicht der Schaden ueberklebt.
`.b-feld__liste` stand in derselben Regel und kommt in keiner Seite und
keinem Skript mehr vor -- nachgesehen, nicht vermutet. Faellt mit weg.
GEPRUEFT WIRD DIE LAGE DER KAESTEN, NICHT DIE VERSCHACHTELUNG
-------------------------------------------------------------
pruef-befinden bekommt fuenf Messungen dazu. Wichtig dabei, und der
Grund fuer die Form: Eine Pruefung auf "steht der Kopf im richtigen
Abschnitt?" waere die ganze Zeit gruen gewesen. Nachgemessen war sie es
auch (`kopfInGruppe: true`), waehrend das Bild falsch war. Das HTML war
nie das Problem.
Gemessen wird deshalb, WO die Kaesten liegen: jede Frage unterhalb des
Kopfes ihrer Gruppe, keine Gruppe ragt in die naechste. Gegenprobe
gefahren -- mit dem Spaltensatz zurueck faellt das erste auf 5 von 6 und
das zweite auf 3 von 5, bei 1280 px. Die Pruefung kann also auch "nicht
in Ordnung" sagen.
pruef-befinden: 121 Pruefungen, 0 Fehler (vorher 116).
Gemessen bei 1280 und 390 px, keine Browsermeldungen.
Nebenbei: eine deutsche Anfuehrung in einer Pruefmeldung war mit einem
ASCII-Anfuehrungszeichen geschlossen.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -183,7 +183,37 @@
|
||||
const uebrig = daten.punkte.filter((pt) => !bekannt.has(pt.feld));
|
||||
if (uebrig.length) gruppen.push({ feld: null, punkte: uebrig });
|
||||
|
||||
/* =================================================================
|
||||
EINE FLAECHE, GRUPPEN DARIN (23.09.2026)
|
||||
=================================================================
|
||||
|
||||
Filipe: „ich will dass diese seite viel übersichtlicher
|
||||
aussieht, es soll eine riesßen kachel sein wo alles viel besser
|
||||
und geiler aussieht."
|
||||
|
||||
VORHER lagen Gruppenkoepfe und Fragen FLACH nebeneinander in
|
||||
derselben Spalte -- jede Frage eine eigene Kachel mit eigenem
|
||||
Rand, dazwischen ab und zu eine Ueberschrift. Im zweispaltigen
|
||||
Raster rutschte der Kopf einer Gruppe dadurch neben die Fragen
|
||||
einer anderen; auf seinem Bildschirmfoto steht „Miteinander"
|
||||
links unten neben den Fragen von „Klarheit & Rückhalt".
|
||||
|
||||
Das ist nicht nur unschoen, es ist FALSCH: Eine Ueberschrift,
|
||||
die neben fremdem Inhalt steht, ordnet den falschen zu.
|
||||
|
||||
Jetzt gehoert jede Gruppe zusammen: ein `<section>` mit ihrem
|
||||
Kopf und ihren Fragen darin, und das Ganze liegt in EINER
|
||||
Flaeche (b-flaeche in befinden.html). Getrennt wird durch eine
|
||||
Linie, nicht durch eine Luecke -- dieselbe Entscheidung wie bei
|
||||
den Regeln am 22.09.
|
||||
|
||||
DIE GRUPPE TRAEGT IHRE NUMMER als CSS-Variable. Daraus faerbt
|
||||
die Stilvorlage den Balken vor der Ueberschrift; eine Farbe je
|
||||
Gruppe im Skript waere eine zweite Farbliste. */
|
||||
let nr = 0;
|
||||
for (const g of gruppen) {
|
||||
const abschnitt = el('section', 'b-gruppe');
|
||||
abschnitt.style.setProperty('--gruppe-nr', String(nr++));
|
||||
if (g.feld) {
|
||||
const kopf = el('div', 'e-feld');
|
||||
const wort = el('h3', 'e-feld__wort');
|
||||
@@ -195,10 +225,49 @@
|
||||
wort.append(document.createTextNode(g.feld.name));
|
||||
kopf.append(wort);
|
||||
if (g.feld.text) kopf.append(el('p', 'e-feld__text', g.feld.text));
|
||||
ziel.append(kopf);
|
||||
abschnitt.append(kopf);
|
||||
}
|
||||
for (const pt of g.punkte) zeichneFrage(pt, ziel);
|
||||
const raster = el('div', 'b-gruppe__fragen');
|
||||
for (const pt of g.punkte) zeichneFrage(pt, raster);
|
||||
abschnitt.append(raster);
|
||||
ziel.append(abschnitt);
|
||||
}
|
||||
fortschrittZeigen();
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
WIE WEIT BIN ICH? (23.09.2026)
|
||||
|
||||
„viel übersichtlicher" heisst bei einer Seite, auf der man etwas
|
||||
AUSFUELLT, vor allem eines: zu wissen, wie viel noch kommt. Der
|
||||
Kasten oben sagt „9 von 18 Fragen dran" -- das ist die Runde,
|
||||
nicht der eigene Stand.
|
||||
|
||||
Gezaehlt werden die Fragen, die WIRKLICH auf dem Bildschirm
|
||||
stehen, und davon die mit einer Antwort aus dieser Runde. Eine
|
||||
Zahl aus den Daten waere eine zweite Rechnung neben dem, was man
|
||||
sieht -- und zwei Rechnungen ueber dasselbe gehen irgendwann
|
||||
auseinander.
|
||||
|
||||
`aria-live` steht im HTML: Wer nicht hinsieht, bekommt den neuen
|
||||
Stand vorgelesen, sobald er eine Frage beantwortet. */
|
||||
function fortschrittZeigen() {
|
||||
const band = $('b-stand');
|
||||
if (!band) return;
|
||||
const fragen = [...document.querySelectorAll('#fragen .e-punkt')];
|
||||
const fertig = fragen.filter((f) => f.dataset.stufe).length;
|
||||
const gesamt = fragen.length;
|
||||
if (!gesamt) { band.hidden = true; return; }
|
||||
band.hidden = false;
|
||||
const balken = $('b-stand-balken');
|
||||
if (balken) balken.style.width = `${Math.round((fertig / gesamt) * 100)}%`;
|
||||
const wort = $('b-stand-wort');
|
||||
if (wort) {
|
||||
wort.textContent = fertig === gesamt
|
||||
? `Alle ${gesamt} Fragen dieser Runde beantwortet.`
|
||||
: `${fertig} von ${gesamt} Fragen dieser Runde beantwortet.`;
|
||||
}
|
||||
band.dataset.fertig = fertig === gesamt ? 'ja' : 'nein';
|
||||
}
|
||||
|
||||
/** Eine einzelne Frage. Ausgelagert, damit die Gliederung oben
|
||||
@@ -237,6 +306,10 @@
|
||||
b.setAttribute('aria-pressed', String(b === knopf));
|
||||
}
|
||||
z.dataset.stufe = stufe;
|
||||
/* DER STAND OBEN ZIEHT SOFORT MIT. Wer eine Frage beantwortet
|
||||
und die Zahl erst beim naechsten Laden steigen sieht, haelt
|
||||
sie fuer kaputt. */
|
||||
fortschrittZeigen();
|
||||
const s = await hole(`/workspace/api/entwicklung/mich/${pt.schluessel}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
|
||||
Reference in New Issue
Block a user