Dansk hosting fra Aalborg
100% CO₂-neutral hosting
24/7/365 dansk support
support@hostious.io
● Hostious viden · artikel

Layoutet går i stykker efter UCSS eller Critical CSS

Skrevet af , stifter af Hostious · Udgivet 28. august 2026 · Opdateret 30. august 2026
Layoutet går i stykker efter UCSS eller Critical CSS

Kort svar: Åbn den berørte URL i et privat vindue med /?LSCWP_CTRL=before_optm. Ser siden korrekt ud uden LiteSpeed page optimization, er optimeringslaget bekræftet. Slå derefter CSS-funktionerne fra på staging, purge og aktiver UCSS eller async CSS/CCSS én ad gangen. Find den konkrete manglende selector eller CSS-fil og tilføj den smalleste allowlist/exclusion. Husk, at Guest Optimization kan aktivere UCSS for førstegangsbesøg, selv når hovedindstillingen ser slået fra ud.

Fagligt gennemgået: 28. august 2026 Kontrolgrundlag: WordPress 7.1, LiteSpeed Cache 7.9, PHP 8.4.23 og Chrome 151 på isoleret staging. QUIC.cloud-integration, Page Optimization-status og quota er ikke aktiveret eller verificeret; den konkrete UCSS/CCSS-request skal kontrolleres i din egen opsætning.

UCSS og Critical CSS løser forskellige opgaver. UCSS fjerner selectors, generatoren vurderer som ubrugte for en side. Critical CSS leverer de regler, der skal bruges tidligt, mens resten indlæses senere. En manglende interaktionsstate kan derfor skyldes UCSS; et kort uformateret første view kan skyldes CCSS/async load. Fejlsøg dem separat.

Bekræft at LiteSpeed-optimering er ejeren

  1. Tag screenshots af den samme URL, viewport og brugerstate med og uden LSCWP_CTRL=before_optm.
  2. Kontrollér både første load, reload og interaktion: menu, modal, tabs, formularfejl og sticky elementer.
  3. Se Network/Elements efter inline Critical CSS, UCSS-filer og forsinkede stylesheets.
  4. Notér om fejlen kun rammer førstegangsbesøg, en bestemt enhed, sprog eller indlogget rolle.
  5. Kontroller LiteSpeed-/QUIC.cloud-queue og eventuelle CSS syntax/timeout-fejl.

Diagnoseoversigt

SymptomSandsynlig årsagKontrolNæste skridt
Element mangler styling efter klikUCSS fjernede en dynamisk selectorSammenlign computed styles før/efter interaktionAllowlist den specifikke selector
Siden blinker uformateret ved første loadCCSS mangler/er forkert eller async CSS kommer sentFilmstrip/Network og inline styleRegenerer/fix CCSS
Kun førstegangsbesøg fejlerGuest Optimization aktiverer ekstra optimeringGuest Mode-test og cachevariantIsoler Guest Optimization
Kun en URL/template fejlerSide/template-specifik CSS eller genereret builderklasseUCSS/CCSS-fil og DOMSeparat cache/allowlist
Queue viser timeout/syntax errorQUIC.cloud kan ikke generere korrekt CSSDashboard/request-logRet CSS-syntax, callback eller timeout
before_optm er stadig forkertFejlen ligger ikke i LiteSpeed page optimizationStandardtema/assetfejlStop CSS-tuning og find anden ejer

1. Lav en sikker baseline på staging

Eksporter LiteSpeed-indstillinger. Slå alle CSS Optimization-funktioner fra, purge LSCache og relevante CSS-genererede caches, og test samme URL. Hvis layoutet stadig er forkert, gendan indstillingerne; fejlen ligger sandsynligvis i tema/builder eller en anden optimering.

Hvis layoutet bliver korrekt, aktiveres kun den funktion, der skal testes. Hold JavaScript-optimering uændret eller dokumenteret fra, så CSS- og JS-fejl ikke blandes.

2. Isoler UCSS

Aktiver UCSS uden CCSS/async CSS-kombinationer. Purge UCSS for test-URL'en og kør dens queue. Sammenlign DOM/computed styles mellem normal og before_optm. Find den selector, der er til stede i original CSS, men mangler i UCSS-output.

Dynamiske states som .is-open, .active, :focus, valideringsfejl eller klasser tilføjet efter scroll/klik bliver ikke altid set af generatoren. Tilføj kun den nødvendige selector eller stabile prefix til UCSS Allowlist. En hel tema-CSS-fil som global allowlist fjerner det meste af gevinsten.

LiteSpeed Cache 7.9 viser UCSS- og Critical CSS-indstillinger
LiteSpeed Cache 7.9 på isoleret staging, aflæst 28. august 2026 med QUIC.cloud-krav synligt. UI-baseline; billedet viser ikke et ødelagt layout eller en gennemført UCSS-kø.

3. Isoler Critical CSS

Aktiver async CSS/CCSS uden UCSS. Kontroller, at den genererede CCSS findes, er knyttet til den rigtige URL/template og indsættes i HTML. Hvis queue viser syntaxfejl, ret originalfilen. Hvis der er timeout, kontroller QUIC.cloud-adgang, originresponstid og service-status.

Efter ny CCSS er genereret skal den gamle cached HTML purges, så den nye inline CSS kommer i brug. Purge ikke hele sitet gentagne gange, mens queue stadig er pending.

Find selectorens oprindelige ejer

Når en manglende regel er fundet, skal du afgøre, om den kommer fra tema, builder, plugin eller sideindhold. Brug DevTools til at sammenligne den forventede computed property med den faktiske og find originalfilen i den uoptimerede side. Notér selector, property, filsti og den brugerhandling, der tilføjer klassen. Et screenshot af et “skævt layout” uden denne kæde er ikke nok til en varig rettelse.

Foretræk en stabil klasse frem for en automatisk genereret engangsselector. Hvis builderen skifter ID ved hver save, vil en snæver allowlist til det aktuelle ID bryde igen. I sådanne tilfælde bør komponenten få en stabil klasse i builderen, og netop den klasse allowlistes. Ændr ikke vendorfilen direkte; en pluginopdatering overskriver rettelsen.

Kontroller responsive og betingede styles

UCSS-generatoren kan se en desktop-DOM uden at udløse mobilmenu, fejlbesked, loginstate eller et sent indlæst modul. Test derfor de breakpoints, siden faktisk bruger, og fremkald hver vigtig state før og efter ændringen. Sammenlign mindst navigationsmenu, cookie-/samtykkebanner, formularfejl, modal, accordion og eventuelle commercekomponenter.

En bred allowlist kan skjule den konkrete fejl, men også genindføre store mængder ubrugt CSS. Mål størrelsen på den genererede CSS før og efter. Acceptér kun væksten, når den svarer til de regler, der er nødvendige for de dokumenterede states. Hvis en hel tredjepartswidget skifter markup ofte, kan en filspecifik undtagelse være mere stabil end mange skrøbelige selectors, men beslutningen skal beskrives og retestes efter opdateringer.

4. Husk Guest Mode og Guest Optimization

Guest Optimization kan aktivere UCSS/andre optimeringer for kvalificerede første requests, selv om den almindelige UCSS-indstilling er off. Reproducer som helt ny gæst. Brug LiteSpeeds testmekanisme for en kontrolleret IP på staging, og fjern IP'en igen bagefter. Publicer aldrig test-IP'en.

Hvis forkert sprog, pris eller personlig variant vises kort, er det Guest Mode-problemet, ikke kun en CSS-selector.

5. Test alle states, ikke kun folden

Efter allowlist/regenerering testes hover, focus, keyboard, mobilmenu, modal, accordion, sticky header, formularvalidationsfejl, cookie-banner og eventuelle produktvariationer. Tag før/efter-screenshots ved samme viewport og scrollposition.

Et godt første screenshot beviser ikke, at CSS til en senere interaktion er bevaret.

Find den state, generatoren ikke så

En CSS-generator ser ikke nødvendigvis alle tilstande, som en bruger kan åbne. En mega-menu kan først få en klasse efter klik. En formular viser kun fejlklassen efter validering. En webshop åbner variationer, mini-kurv eller betalingsfelter efter JavaScript. Hvis selectorens state ikke fandtes under genereringen, kan UCSS vurdere reglen som ubrugt.

Lav derfor en state-liste før allowlist: almindelig side, aktiv menu, modal åben, formular med fejl, produktvariant valgt, tom og fyldt kurv samt eventuelle sprog- eller medlemsstates. Reproducer kun den state, der bryder, med og uden optimering. Så ved du, om du mangler en selector, et stylesheet eller en senere JavaScript-klasse.

Mikroeksempel: mobilmenuen er usynlig

Desktop ser korrekt ud, men mobilmenuens overlay har ingen baggrund. Computed Styles viser, at .menu-overlay.is-open mangler, mens grundreglen til .menu-overlay findes. Den mindste rettelse er at beskytte den dynamiske state-selector eller dens kildefil — ikke at ekskludere hele temaets CSS. Efter regenerering testes lukket og åben menu ved mindst to mobilbredder.

Mikroeksempel: siden blinker uden at ende forkert

Hvis layoutet kun er uformateret i det første øjeblik og derefter bliver korrekt, er problemet snarere Critical CSS/async-indlæsning end permanent fjernet UCSS. Sammenlign filmstrip og Network: kommer hovedstylesheetet sent, eller mangler de kritiske regler i første response? Ret CCSS-generation eller load-rækkefølge separat. En UCSS-allowlist er ikke relevant, hvis den fulde CSS til sidst indeholder reglen.

Undgå en voksende liste af tilfældige exclusions

En exclusion uden ejer og årsag bliver teknisk gæld. Skriv selector, komponent, state og dato ved hver undtagelse. Efter tema- eller builderopdatering testes den igen; hvis koden er ændret, kan den gamle undtagelse fjernes. Mange brede wildcards er et signal om, at funktionen ikke passer til sidens dynamik eller at generatorens input er forkert.

Kontrollér også HTML-variationen, før CSS får skylden. Hvis to brugergrupper modtager forskellig markup under samme cachekey, kan den genererede UCSS være korrekt til den ene og forkert til den anden. Ret cache vary eller bypass først; en længere allowlist kan ikke gøre ét stylesheet sikkert til to uforenelige DOM-strukturer.

Verifikation

  • Normal og before_optm har samme layout ved første view og alle testede states.
  • UCSS-filen indeholder den nødvendige selector uden bred global undtagelse.
  • CCSS queue er complete uden syntax/timeout, og korrekt inline CSS ses i HTML.
  • Førstegangs-, repeat- og Guest Mode-varianter er testet.
  • Desktop, tablet og mobil har ingen ny horisontal overflow eller skjult kontrol.
  • CSS-/browserlog har ingen ny relevant fejl.

Rollback

Fjern den seneste allowlist/exclusion, gendan eksporterede indstillinger og purge kun UCSS/CCSS plus den berørte page cache. Hvis layoutet er forretningskritisk, deaktiveres den ene dokumenterede problemfunktion, mens rettelsen udvikles; resten af LiteSpeed behøver ikke slås fra.

Hvornår skal udvikler eller QUIC.cloud hjælpe?

Tema-/builderudvikleren skal have selector, original CSS og interaktionsstate. QUIC.cloud skal have requeststatus og syntax/timeout uden kontodata. Se LiteSpeed hosting hos Hostious ved origin-/queueadgang.

Ofte stillede spørgsmål om UCSS og Critical CSS

Hvorfor ødelægger UCSS mit layout?

UCSS fjerner CSS, generatoren ikke så i brug – men sliders, popups, menuer og hover-tilstande bruger CSS, der først aktiveres ved interaktion. De selectors skal på allowlisten.

Hvordan finder jeg de selectors, der mangler?

Sammenlign elementets klasser i DevTools med den genererede CSS. Den komponent, der ser forkert ud, mangler typisk sin klasse eller state (fx .open, .active) i UCSS-resultatet – tilføj præcis dem, ikke hele stylesheetet.

Skal jeg regenerere CSS efter ændringer?

Ja – efter tema-, plugin- eller allowlist-ændringer skal UCSS/CCSS regenereres og cachen purges, ellers tester du mod gamle filer. Gør det pr. skabelon, og verificér i privat vindue.

Læs også

Sådan dokumenterer du dit eget layoutproblem

Tag samme viewport, URL og interaktionsstate før og efter before_optm-kontrollen. Gem den manglende selector i Computed Styles og dens oprindelige stylesheet, men undgå et helt temaudtræk. Hvis du bruger en allowlist, dokumenteres kun den mindste stabile selector og hvorfor den er dynamisk.

Eftertesten skal dække mobil, desktop, menu, modal, formularfejl og andre skjulte states — ikke kun toppen af forsiden. Gem også køstatus, hvis UCSS/CCSS kommer fra QUIC.cloud, men registrér den som din egen måling. Status og quota for QUIC.cloud-services kontrollerer du i dit eget dashboard.