Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
CSS grid layout

In Cascading Style Sheets, CSS grid layout or CSS grid creates complex responsive web design grid layouts more easily and consistently across browsers. Historically, there have been other methods for controlling web page layout methods, such as tables, floats, and more recently, CSS Flexible Box Layout (flexbox). CSS grid is currently not an official standard (it is a W3C Candidate Recommendation) although it has been adopted by the recent versions of all current major browsers.

Related Image Collections Add Image
We don't have any YouTube videos related to CSS grid layout yet.
We don't have any PDF documents related to CSS grid layout yet.
We don't have any Books related to CSS grid layout yet.

Motivation

CSS grid can create more robust and flexible layouts than the previous options like CSS floats. It also allows for more standardized code that works across browsers. This is in contrast to relying on specific browser hacks or complicated workarounds.3

One issue with exploiting floats in CSS is that if content gets added to one portion of the page it could disrupt the flow of the page and break the layout. This is due to the varying heights for layout elements.4 Though flexbox supports flexible layouts and provides the flexibility of creating complex layouts, it fails when the need for creating responsive layouts in 2-dimensional space arises.

History

The first comprehensive draft of a grid layout for CSS was created by Phil Cupp at Microsoft in 2011 and implemented in Internet Explorer 10 behind a -ms- vendor prefix. The syntax was restructured and further refined through several iterations in the CSS Working Group, led primarily by Elika Etemad and Tab Atkins Jr. The feature was widely adopted by web developers after evangelism led primarily by Rachel Andrew and Jen Simmons.5

Browser support

As of October 2017, Chrome, Firefox, Safari and Edge all support CSS grid without vendor prefixes.678 IE 10 and 11 support CSS grid but with an outdated specification. On mobile, all modern browsers support CSS grid except for Opera Mini.9 Web developers targeting older browsers can utilize Modernizr 3.5.0 to detect and gracefully degrade the webpage as needed.10

Utilization in frameworks

Tailwind CSS incorporates CSS grid into its utilities for controlling how elements are sized and placed.11 However many other current web frameworks do not incorporate CSS grid, such as Bootstrap 4 and Foundation 6.12

the fr unit

The "fr" unit is often used with CSS grid layout.131415 The "fr" unit, part of the CSS grid layout specification, represents a fraction of the leftover space in the grid container.16

Examples

"Holy grail" layout

The following is an example of the "holy grail" layout:

HTML<html><style>div { border: 1px solid; }body { display: grid; grid-template-columns: 10em auto 10em; grid-template-areas: "header header header" "left middle right" "footer footer footer";}</style><body> <div style="grid-area: header">The header</div> <div style="grid-area: footer">The footer</div> <div style="grid-area: left">The left panel</div> <div style="grid-area: middle; height: 200px">The main content area</div> <div style="grid-area: right">The right panel</div></body></html>
Output

Table of values

The following is an example of a table of values:

HTML<html><style>.wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 0.5em;}div { border: 1px solid; }</style><body> <div class="wrapper"> <h3>Header1</h3><h3>Header2</h3><h3>Header3</h3> <div>value11</div><div>value12</div><div>value13</div> <div>value21</div><div>value22</div><div>value23</div> <div>value31</div><div>value32</div><div>value33</div> <div>value41</div><div>value42</div><div>value43</div> <div>value51</div><div>value52</div><div>value53</div> <div>value61</div><div>value62</div><div>value63</div> <div>value71</div><div>value72</div><div>value73</div> </div></body></html>
Output

References

  1. "CSS Grid – Table layout is back. Be there and be square". Google Developers. January 2017. Retrieved 2021-04-09. https://developers.google.com/web/updates/2017/01/css-grid

  2. "CSS Grid Layout (level 1) | Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 2022-01-12. https://caniuse.com/css-grid

  3. Atkins Jr., Tab; J. Etemad, Elika; Atanassov, Rossen; Brufau, Oriol; Mogilevsky, Alex; Cupp, Phil; Mielke, Markus, eds. (2021-12-18). "CSS Grid Layout Module Level 1". W3C. W3C Working Group. Retrieved 2021-04-09. https://www.w3.org/TR/css-grid-1/

  4. Atkins Jr., Tab; J. Etemad, Elika; Atanassov, Rossen; Brufau, Oriol; Mogilevsky, Alex; Cupp, Phil; Mielke, Markus, eds. (2021-12-18). "CSS Grid Layout Module Level 1". W3C. W3C Working Group. Retrieved 2021-04-09. https://www.w3.org/TR/css-grid-1/

  5. Gustafson, Aaron (2017-10-19). "The Story of CSS Grid, from Its Creators". A List Apart. Retrieved 2022-01-12. https://alistapart.com/article/the-story-of-css-grid-from-its-creators/

  6. Anderson, Kareem (13 September 2017). "Microsoft's newest browser gets a significant boost with EdgeHTML 16". Retrieved 7 October 2017. https://www.onmsft.com/news/microsofts-newest-browser-gets-a-significant-boost-with-edgehtml-16

  7. Protalinski, Emil (9 March 2017). "Chrome 57 arrives with CSS Grid Layout and API improvements | VentureBeat". VentureBeat. Retrieved 7 October 2017. https://venturebeat.com/2017/03/09/chrome-57-arrives-with-css-grid-layout-and-api-improvements/

  8. "CSS Grid Layout". Can I Use. n.d. Retrieved 2021-04-09. http://caniuse.com/#feat=css-grid

  9. ""grid" | Can I use... Support tables for HTML5, CSS3, etc". https://caniuse.com/?search=grid

  10. Ateş, Faruk (2017-04-13). "Modernizr 3.5.0". Modernizr News. Retrieved 2021-04-09. https://modernizr.com/news/modernizr-3-5-0

  11. "Grid Column Start / End - Tailwind CSS". Retrieved 2021-04-13. https://tailwindcss.com/docs/grid-column

  12. Goetter, Raphael (2017-02-16). "Flexbox grids and frameworks". GitHub Gist. Archived from the original on 2017-02-16. Retrieved 2021-04-09. https://web.archive.org/web/20170216210600/https://gist.github.com/raphaelgoetter/722e4a5843a8598f72d8dd148bd20c18

  13. Alligator.io (2020-09-03). "CSS Grid Layout: The Fr Unit". DigitalOcean. DigitalOcean. Retrieved 2021-04-09. https://www.digitalocean.com/community/tutorials/css-css-grid-layout-fr-unit

  14. Marcotte, Ethan (2018-07-18). "Fractional. — Ethan Marcotte". Ethan Marcotte. Retrieved 2021-04-09. https://ethanmarcotte.com/wrote/fractional/

  15. Rendle, Robin (2017-06-12). "An Introduction to the 'fr' CSS unit". CSS-Tricks. Retrieved 2021-04-09. https://css-tricks.com/introduction-fr-css-unit/

  16. Atkins Jr., Tab; J. Etemad, Elika; Atanassov, Rossen; Brufau, Oriol; Mogilevsky, Alex; Cupp, Phil; Mielke, Markus, eds. (2021-12-18). "CSS Grid Layout Module Level 1". W3C. W3C Working Group. Retrieved 2021-04-09. https://www.w3.org/TR/css-grid-1/