A lot happens between a first HTTP request and a final delivery of a web page. Data delivery and a browser’s digest tube need a lot of opposite technologies, one of them is a CSS Object Model, or a CSSOM.
Reviewing CSS Style Priority Level
The Cascading Style Sheet (CSS) is, we think, a simplest of languages compared to other web-related languages, so…Read more
The CSS Object Model takes a CSS code, and renders any selector into a tree structure for easier parsing. Perhaps it’s not essential for developers to entirely know this concept, though it’s a profitable subject to investigate if we wish to learn some-more about how browsers describe formula into a operative website.
In this post, I’m going to cover a basis of a CSS Object Model, and uncover we how it works.
What Is CSSOM?
The tenure CSS Object Model describes a map of all CSS selectors applicable properties for any selector. These styles can be base elements or have nested children.
CSSOM is unequivocally identical to a DOM in HTML, that stands for Document Object Model. Both of them are partial of a critical digest path that is a array of stairs that contingency occur to properly describe a website. All these processes occur automatically, behind a scenes.
So since is CSSOM important? It’s a map used by a browser to properly describe CSS styles on a web page. There’s no easy approach to tell a mechanism that all paragraphs in a
.main-content div contingency have additional line-height.
The resolution is a CSS Object Model that maps out all elements and properties from your CSS code.
CSSOM creates it easier for a browser to render styles on a page. The whole thing is unequivocally technical though it’s value bargain a small about a process, generally if we build websites.
How It Works
Both a DOM and CSSOM are used extensively by all web browsers to appreciate and describe web pages. The blueprint next is from Google Developers Web Fundamentals guide, and explains how a DOM is rendered in a web browser.
In both a DOM CSSOM, all information is converted from bytes into digital maps that describe any component in a web document. The routine works as follows:
- The browser downloads a HTML for a web page.
- While estimate a HTML, a parser might strike into a couple component referencing an outmost stylesheet.
- This CSS stylesheet is afterwards parsed into a map regulating a CSS Object Model specs.
- The ensuing formula can afterwards be applied to elements in a DOM.
All of this happens unequivocally quickly, and occurs with any singular page request. This other blueprint next showcases an example tree structure of a CSSOM.
Notice how some properties in a blueprint have lighter grey rise colors. These properties are inherited from a parent. Since a physique has a specific rise size, all elements within a physique also get that rise distance unless it’s overridden.
HTML and CSS strings are converted into tokens that can afterwards be understood as nodes by a browser. These nodes are like objects within a tree structure that defines how a whole page should be constructed.
The CSSOM and DOM are totally separate information models, therefore they’re parsed alone of any other. But they both have similar tree structures, and both offer a same purpose: giving a browser a structure to describe and brand opposite elements on a page.
Why Web Developers Should Care
Since all of a digest happens on a backend, we unequivocally don’t need to worry most about a CSSOM tree. But it can be useful to know how it works.
One thing to remember is that a CSSOM contingency be entirely loaded before a web page will be displayed, as it will conclude how any component on a page should demeanour like. If a page installed before a CSSOM, it would seem as plain HTML first, followed by a styles a few seconds later.
Browsers privately equivocate that since it would be treacherous to finish users. And it’s value observant that a CSSOM cannot be cached; it contingency be recreated on any page.
I would rarely suggest reading this article to learn some-more about outmost CSS/JS resources and their bucket times.
The best approach to optimize your site is by crafting a natural cascade of resources that are installed in tandem.
The bigger reason to learn about a CSSOM is to serve teach yourself per how websites indeed work.
There are lots of things we take for postulated that keep a Internet regulating smoothly. When we know a small some-more about a whole routine we can daydream how a whole thing comes together, and hopefully benefit some appreciation for a existence of a World Wide Web.
I wish this intro can give we a plain thought of what a CSS Object Model is, and how it affects web pages. There isn’t most to manipulate in a CSSOM, so it differs a bit from a DOM.
However it’s still a vicious record in web development, and it should explain vital aspects of browser rendering.
There are many other resources deliberating a CSSOM, and how it works. If you’re looking to learn more, here are some posts we recommend:
- CSS Object Model Overview
- Exploring a CSSOM: Making a CSS Object Analyzer
- What Every Frontend Developer Should Know About Webpage Rendering