Spring til indhold

Har bygget et 637 linjer langt printstylesheet

Har bygget et 637 linjer langt printstylesheet, der tager højde for fire dokumenterede adfærdsmønstre i renderingsmotoren, herunder run‑in‑overskrifter, der blev udskrevet hvidt på hvidt for enhver læser, hvis browser foretrak mørkt.

  • Newspapers, brochures, stack
    Foto: anaterate / Pixabay
  • Meeting room, table, screen
    Foto: MagicDesk / Pixabay

637 linjers printstylesheet til fire motorer

Situation. Sitets casestudier er det, nogen printer og tager med til et møde. Det gør papir til et reelt output og ikke bare en høflighed, og papir er et andet medie end en smal skærm — læserens papirstørrelse er ukendt, læserens orientering er ukendt, og browserens printadfærd varierer mellem motorer på måder, som ingen forhåndsvisning på skærmen afslører.

Opgave. Sitet skulle printe korrekt på ukendt papir, i begge farvetemaer, uden at et særskilt dokument skulle vedligeholdes ved siden af webudgaven.

Handling. Det er ét stylesheet på 637 linjer med én sideregel og én printblok. Sidereglen sætter en margen og sætter bevidst ingen papirstørrelse, så uanset hvad læseren vælger i dialogen, slår det igennem, og alt andet tilpasser sig det. Rodelementets skriftstørrelse er låst fast i punkter, så hver relativ måling har et fysisk anker, og én linjelængde på omkring tooghalvfjerds tegn gælder for de fire blokke på øverste niveau — og her vinder arket over designet, for en liggende side ville ellers lade en linje løbe op på omkring hundrede og ti tegn. Fire former for motoradfærd er dokumenteret som fælder, og hver af dem har forårsaget en reel defekt. Viewport‑enheder regnes ud fra sideboksen i én motor og fra vinduet i en anden, så en side, der printes fra et bredt vindue, får skåret en tredjedel af hver linje af i den anden. Fastplacerede elementer males på hvert ark, så de dekorative er fjernet, og to af dem er genbrugt som brevhoved og kolofon. Paletten bruger som standard hvid tekst, fordi standardtemaet er mørkt, og det printede de fire indledende afsnitsetiketter hvidt på hvidt — ordene var simpelthen væk. Og paginerede medier kan ikke dele en flex- eller grid‑boks, hvilket gav et blankt første ark på en achievement‑side. Et tjek i seks dele dækker det og tester seks kombinationer af papir og orientering, begge indstillinger for farveskema og det reelle sideantal mod det, indholdshøjden tilsiger.

Resultat. Sitet printer på ukendt papir i begge temaer, og de fire former for motoradfærd er skrevet ned med den defekt, hver af dem gav. De kendte grænser er noteret og ikke skjult: ingen sidetal eller løbende sidehoveder, én motor ignorerer kontrollen af enlige linjer øverst og nederst på siden, og initialer virker ikke overalt. En forvildet kommentarafslutning fik engang CSS‑linteren til at sluge en hel regel og bestå uden fejl to gange — kun printtjekket opdagede det.

Ét stykke af en længere fortegnelse — og det hele ligger her på sitet.

Hver post er skrevet på samme måde: situationen, opgaven, hvad vi gjorde, og hvad der ændrede sig.

Se hele fortegnelsen