Spielen mit (Fake) Container Queries mit watched-box & resizeasaurus

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Heydons <watched-box> ist ein verdammt fantastisches Werkzeug. Es ist ein Custom Element, das im Grunde Container Queries über Klassennamen implementiert, die basierend auf Größen-Breakpoints, die mit ResizeObserver berechnet werden, zur Box hinzugefügt werden. Es ist wie eine sauberere Version von dem, worüber Philip vor ein paar Jahren gesprochen hat.

Ich bin sicher, ich wäre glücklich, <watched-box> in der Produktion zu verwenden, da es leichtgewichtig ist, keine Abhängigkeiten hat und einen geradlinigen Ansatz verfolgt.

Für die Entwicklung hatte ich die Idee, Zachs interessantes kleines Web Component <resize-asaurus> zu verwenden. Es umschließt Elemente in einer anderen Box, die über CSS skalierbar ist und sie mit der aktuellen Breite beschriftet. Auf diese Weise müssen Sie nicht das gesamte Browserfenster manipulieren, um Dinge zu skalieren – jedes gegebene Element wird skalierbar. Wieder nur aus Entwicklungs- und Testgründen.

Sie würden sie zusammen verpacken wie…

<resize-asaurus>
  <watched-box widthBreaks="320px, 600px">
    <div class="card">
      ... 
    </div>
  </watched-box>
</resize-asaurus>

Was Ihnen erlaubt, CSS an Breakpoints zu schreiben wie…

.card {
   .w-gt-320px & { }
   .w-gt-600px & { } 
}

Das ist sicher nicht das, was die CSS-Syntax für Container Queries sein wird, aber es erreicht dasselbe mit klaren und verständlichen generierten Klassennamen.

Beispiel!

Live-Demo!