{"id":880784,"date":"2023-10-21T18:48:54","date_gmt":"2023-10-21T23:48:54","guid":{"rendered":"https:\/\/blogging-techies.com\/ge\/der-einsteigerleitfaden-zum-css-objektmodell-cssom\/"},"modified":"2023-10-21T18:48:54","modified_gmt":"2023-10-21T23:48:54","slug":"der-einsteigerleitfaden-zum-css-objektmodell-cssom","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/ge\/der-einsteigerleitfaden-zum-css-objektmodell-cssom\/","title":{"rendered":"Der Einsteigerleitfaden zum CSS-Objektmodell (CSSOM)"},"content":{"rendered":"<p>Dazwischen passieren viele Dinge <strong>erste HTTP-Anfrage<\/strong> und das <strong>letzte Lieferung<\/strong> einer Webseite.  Der Daten\u00fcbertragungs- und Rendering-Prozess des Browsers erfordert viele verschiedene Technologien, eine davon ist <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/drafts.csswg.org\/cssom\/\">CSS-Objektmodell<\/a><\/strong>oder der <strong>CSSOM<\/strong>.<\/p>\n<p>Das CSS-Objektmodell \u00fcbernimmt den CSS-Code und repr\u00e4sentiert jeden Selektor <strong>in einer Baumstruktur<\/strong> um die Analyse zu erleichtern.  F\u00fcr Entwickler ist es vielleicht nicht entscheidend, dieses Konzept vollst\u00e4ndig zu verstehen, aber es ist ein wertvolles Thema, das Sie studieren sollten, wenn Sie mehr dar\u00fcber erfahren m\u00f6chten. <strong>wie Browser Code in eine funktionsf\u00e4hige Website umwandeln<\/strong>.<\/p>\n<p>In diesem Beitrag behandle ich die Grundlagen des CSS-Objektmodells und zeige Ihnen, wie es funktioniert.<\/p>\n<h5>Was ist CSSOM?<\/h5>\n<p>Der Begriff CSS-Objektmodell beschreibt a <strong>Ordnen Sie alle CSS-Selektoren und relevanten Eigenschaften f\u00fcr jeden Selektor zu<\/strong>.  Diese Stile k\u00f6nnen Stammelemente sein oder verschachtelte untergeordnete Elemente haben.<\/p>\n<p>CSSOM ist sehr \u00e4hnlich <strong>DOM in HTML<\/strong>, was f\u00fcr Document Object Model steht.  Beide sind Teil der <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/web.dev\/\/performance\/critical-rendering-path\">Kritischer Renderpfad<\/a><\/strong>    Das ist eine Reihe von Schritten, die passieren m\u00fcssen <strong>Eine Website richtig rendern<\/strong>.  Alle diese Prozesse passieren <strong>automatisch<\/strong>hinter den Kulissen.<\/p>\n<p>Warum ist CSSOM wichtig?  Es ist die Karte, die der Navigator verwendet <strong>CSS-Stile korrekt rendern<\/strong> Auf einer Website.  Es gibt keine einfache M\u00f6glichkeit, einem Computer mitzuteilen, dass alle Abs\u00e4tze in einem .main-content-Div eine zus\u00e4tzliche Zeilenh\u00f6he haben sollen.<\/p>\n<p>Die L\u00f6sung ist das CSS-Objektmodell <strong>bildet alle Elemente und Eigenschaften ab<\/strong> Ihres CSS-Codes.<\/p>\n<p>CSSOM erleichtert dem Browser die Arbeit <strong>Rendern Sie Stile auf der Seite<\/strong>.  Es ist alles sehr technisch, aber es lohnt sich, den Prozess ein wenig zu verstehen, insbesondere wenn Sie Websites erstellen.<\/p>\n<h5>Wie funktioniert es<\/h5>\n<p>Sowohl das DOM als auch das CSSOM sind <strong>Wird h\u00e4ufig von allen Webbrowsern verwendet<\/strong> zum Interpretieren und Rendern von Webseiten.  Das folgende Diagramm ist <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/web.dev\/\/performance\/critical-rendering-path\/constructing-the-object-model?hl=en\">Google-Entwicklerhandbuch zu Web-Grundlagen<\/a>und erkl\u00e4ren wie <strong>DOM wird in einem Webbrowser gerendert<\/strong>.<\/p>\n<figure class=\"is-mega\" data-lazy=\"\"> <\/figure>\n<p>Sowohl im DOM als auch im CSSOM sind alle Informationen vorhanden <strong>von Bytes in digitale Karten umgewandelt<\/strong> die jedes Element eines Webdokuments darstellen.  Der Prozess funktioniert wie folgt:<\/p>\n<ol>\n<li>Der Navigator <strong>Laden Sie den HTML-Code herunter<\/strong> f\u00fcr eine Webseite.<\/li>\n<li>W\u00e4hrend der HTML-Verarbeitung st\u00f6\u00dft der Parser m\u00f6glicherweise auf ein Link-Element <strong>Verweisen auf ein externes Stylesheet<\/strong>.<\/li>\n<li>Dieses CSS-Stylesheet ist dann <strong>auf einer Karte analysiert<\/strong> Verwendung der <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.w3.org\/TR\/cssom-1\/\">Spezifikationen des CSS-Objektmodells<\/a>.<\/li>\n<li>Der resultierende Code kann dann sein <strong>auf Elemente im DOM angewendet<\/strong>.<\/li>\n<\/ol>\n<p>All dies geschieht sehr schnell und geschieht <strong>bei jeder Seitenanfrage<\/strong>.  Dieses andere Diagramm unten zeigt a <strong>Beispiel f\u00fcr eine CSSOM-Baumstruktur<\/strong>.<\/p>\n<figure class=\"is-mega\" data-lazy=\"\"> <\/figure>\n<p>Beachten Sie, dass einige Eigenschaften im Diagramm hellere graue Schriftfarben haben.  Diese Eigenschaften sind <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en\/docs\/Web\/Guide\/CSS\/Getting_started\/Cascading_and_inheritance\">vererbt<\/a> des Vaters<\/strong>.  Da der Textk\u00f6rper eine bestimmte Schriftgr\u00f6\u00dfe hat, erhalten auch alle Elemente innerhalb des Textk\u00f6rpers diese Schriftgr\u00f6\u00dfe, sofern sie nicht \u00fcberschrieben werden.<\/p>\n<p>HTML- und CSS-Strings sind <strong>in Token umgewandelt<\/strong> was dann sein kann <strong>als Knoten verstanden<\/strong> durch den Browser.  Diese Knoten sind wie <strong>Objekte innerhalb der Baumstruktur<\/strong> Dies definiert, wie die gesamte Seite aufgebaut sein soll.<\/p>\n<p>Das CSSOM und das DOM sind vollst\u00e4ndig <strong>separate Datenmodelle<\/strong>deshalb sind sie es <strong>getrennt voneinander analysiert<\/strong>.  Aber das haben sie beide <strong>\u00e4hnliche Baumstrukturen<\/strong>und beide haben den gleichen Zweck: dem Browser eine Struktur zu geben, um verschiedene Elemente auf der Seite darzustellen und zu identifizieren.<\/p>\n<h5>Warum sich Webentwickler darum k\u00fcmmern sollten<\/h5>\n<p>Da alles Rendern <strong>passiert im Backend<\/strong>, m\u00fcssen Sie sich nicht wirklich viele Gedanken \u00fcber den CSSOM-Baum machen.  Aber es kann hilfreich sein zu verstehen, wie es funktioniert.<\/p>\n<p>Eine Sache, an die man sich erinnern sollte, ist, dass die <strong>CSSOM muss vollst\u00e4ndig geladen sein<\/strong> bevor die Webseite angezeigt wird, da dadurch festgelegt wird, wie jedes Element auf der Seite aussehen soll.  Wenn die Seite vor dem CSSOM geladen wurde, wird sie zuerst als einfaches HTML angezeigt, gefolgt von den Stilen einige Sekunden sp\u00e4ter.<\/p>\n<p>Browser vermeiden dies ausdr\u00fccklich, da es f\u00fcr Endbenutzer verwirrend w\u00e4re.  Und es ist erw\u00e4hnenswert, dass das CSSOM <strong>kann nicht zwischengespeichert werden<\/strong>;  muss sein <strong>auf jeder Seite neu erstellt<\/strong>.<\/p>\n<p>Tats\u00e4chliche CSS-Dateien k\u00f6nnen zwischengespeichert werden, um Ressourcen schneller zu laden, aber eine Seite im Browser darzustellen. <strong>erfordert immer die Ausf\u00fchrung des CSSOM-Parsers<\/strong>.  Dies bedeutet auch, dass JavaScript das Rendering und die Leistung negativ beeinflussen kann.<\/p>\n<p>Ich w\u00fcrde es w\u00e4rmstens empfehlen <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dash.plotly.com\/external-resources\">diesen Artikel lesen<\/a> Weitere Informationen zu externen CSS\/JS-Ressourcen und deren Ladezeiten finden Sie hier.<\/p>\n<p>Der beste Weg, Ihre Website zu optimieren, besteht darin, eine zu erstellen <strong>nat\u00fcrlicher Wasserfall<\/strong> von Ressourcen, die <strong>werden gleichzeitig aufgeladen<\/strong>.<\/p>\n<p>Es ist m\u00f6glich, das CSSOM mit JavaScript zu manipulieren, weil es so ist <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.w3cub.com\/dom\/css_object_model\">Technisch gesehen eine JS-API<\/a>.  Aber im Vergleich dazu n\u00fctzt es nicht viel <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.w3schools.com\/js\/js_htmldom.asp\">JavaScript-DOM-Manipulation<\/a>.<\/p>\n<p>Der wichtigste Grund, sich \u00fcber CSSOM zu informieren, besteht darin, besser dar\u00fcber zu erfahren, wie Websites wirklich funktionieren.<\/p>\n<p>Es gibt viele Dinge, die wir f\u00fcr selbstverst\u00e4ndlich halten, damit das Internet reibungslos funktioniert.  Wenn Sie den gesamten Prozess etwas besser verstehen, k\u00f6nnen Sie sich vorstellen, wie alles abl\u00e4uft, und hoffentlich ein wenig Verst\u00e4ndnis f\u00fcr die Existenz des World Wide Web entwickeln.<\/p>\n<h5>Andere Lesungen<\/h5>\n<p>Ich hoffe, diese Einf\u00fchrung kann Ihnen eine solide Vorstellung davon vermitteln, was das CSS-Objektmodell ist und wie es sich auf Webseiten auswirkt.  Dort <strong>Im CSSOM gibt es nicht viel zu manipulieren.<\/strong>es unterscheidet sich also ein wenig vom DOM.<\/p>\n<p>Allerdings handelt es sich immer noch um eine entscheidende Technologie in der Webentwicklung und sollte wichtige Aspekte des Browser-Renderings kl\u00e4ren.<\/p>\n<p>Es gibt viele andere Ressourcen, die sich mit CSSOM und seiner Funktionsweise befassen.  Wenn Sie mehr erfahren m\u00f6chten, empfehle ich Ihnen folgende Beitr\u00e4ge:<\/p>\n   ","protected":false},"excerpt":{"rendered":"<p>Dazwischen passieren viele Dinge erste HTTP-Anfrage und das letzte Lieferung einer Webseite. Der Daten\u00fcbertragungs- und Rendering-Prozess des Browsers erfordert viele verschiedene Technologien, eine davon ist CSS-Objektmodelloder der CSSOM. Das CSS-Objektmodell \u00fcbernimmt den CSS-Code und repr\u00e4sentiert jeden Selektor in einer Baumstruktur um die Analyse zu erleichtern. F\u00fcr Entwickler ist es vielleicht nicht entscheidend, dieses Konzept vollst\u00e4ndig [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":880785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","fifu_image_url":"https:\/\/blogging-techies.com\/wp-content\/uploads\/2023\/06\/3.webp","fifu_image_alt":""},"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/posts\/880784"}],"collection":[{"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/comments?post=880784"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/posts\/880784\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/media\/880785"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/media?parent=880784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/categories?post=880784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/ge\/wp-json\/wp\/v2\/tags?post=880784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}