This document provides an overview and introduction to CSS Grid Layout. It discusses defining a grid with properties like display: grid, grid-template-columns, grid-template-rows, and fr units. It covers placing items on the grid using line numbers, line names, and grid areas. It also demonstrates rearranging the layout at different breakpoints and using implicit rows.
This document provides a summary of Rachel Andrew's presentation on modern CSS layout techniques at CSS Conf Budapest 2016. It discusses some of the limitations of traditional layout methods like floats and frameworks, and expresses hope for new CSS specifications like Flexbox, Grid Layout, and Box Alignment that provide true separation of document structure and visual layout with precise alignment control. Key concepts covered include items understanding themselves as part of a complete layout, flexibility and responsiveness being inherent to these new methods, and the need for responsibility when reordering content visually.
This document summarizes Rachel Andrew's presentation on CSS Grid Layout. Some key points include:
- CSS Grid Layout provides a two-dimensional grid system for CSS layout, as an alternative to floats and positioning.
- Grid uses line-based placement rather than block/inline flows, allowing items to be placed precisely on the grid.
- Defining a grid involves setting grid-template-columns, grid-template-rows and other properties to establish the structure and tracks.
- Items can then be placed on the grid using grid-row and grid-column to position them across specific row and column lines.
The Future of Frontend - what is new in CSS?Rachel Andrew
This document summarizes new features in CSS including Box Alignment Level 3, CSS Grid Layout, the fr unit, Wrapped Flexbox Layout, CSS Shapes, CSS Feature Queries with @supports, CSS Custom Properties, and how to get involved in the CSS specification process. It provides examples and explanations of each new feature, highlighting their capabilities and use cases.
An Event Apart Nashville: CSS Grid LayoutRachel Andrew
The document summarizes Rachel Andrew's presentation on CSS Grid Layout. Some key points:
- CSS Grid Layout provides a new two-dimensional grid system for CSS layout, addressing limitations of floats and flexbox.
- Grid uses line-based placement, with grid tracks defined by grid-template-columns/rows and items placed using grid-column/row properties.
- Common layouts like Holy Grail can be easily created with Grid. Grid also allows rearranging layouts responsively.
- Grid introduces concepts like implicit and explicit grid lines, fr units, and named grid areas to semantically define layout structures.
This document discusses CSS Grid Layout and provides examples of how to define grids and place items on grids. Some key points:
- CSS Grid Layout allows dividing available space into columns and rows to position elements.
- Grids are defined on parent elements using properties like grid-template-columns, grid-template-rows, and grid-template-areas.
- Child elements can be placed on the grid using line-based placement with properties like grid-column and grid-row, or by targeting named lines and areas.
- Grids can be redefined at different breakpoints to create responsive layouts without changing HTML structure.
This document discusses CSS Grid Layout and provides examples of how to define grids and place items on grids using CSS Grid properties. Some key points:
- CSS Grid allows defining a grid on any element using display: grid and then placing child elements into the grid with grid-column, grid-row and other properties.
- Grids can be defined explicitly with grid-template-columns/rows or implicitly with auto-placement of items.
- Fraction units (fr), minmax(), repeat() and auto-fill can create flexible and responsive grid layouts.
- Items can be placed on grids by line number, named lines, or named grid areas.
- Grid layout can be redefined
The document discusses new CSS layout techniques including Flexbox and CSS Grid Layout. Some key points:
- Flexbox is well supported for one-dimensional layouts while Grid Layout allows two-dimensional positioning of elements.
- Grid Layout introduces the concept of explicit and implicit grid lines to control element placement. Items can be placed using line-based positioning.
- Both techniques allow separation of visual layout from semantic source order and precise control of alignment both horizontally and vertically.
- Features like flex-grow, flex-shrink and fr units make layouts responsive and flexible by default.
Frontend United: Start using CSS Grid Layout today!Rachel Andrew
Grid Layout is here! What is it? Why is it different to flexbox? How do I get started? What about old browsers? All these questions and more in a high speed tour of the spec.
This document summarizes CSS Grid Layout, a new two-dimensional grid system being added to CSS. It discusses some of the limitations of existing CSS layout methods and how Grid Layout addresses them. Key points include: Grid Layout uses line-based placement to position items, grid tracks can be flexible or fixed widths, areas can be explicitly or implicitly named, and the system avoids hacks and limitations of previous methods.
The document discusses new CSS layout techniques including Flexbox and CSS Grid Layout. These allow for precise control of alignment both horizontally and vertically, separation of document structure from visual display, and responsive and flexible layouts by default. Examples are provided showing how Flexbox and Grid Layout can be used to create common layout patterns like equal height columns and reordering of content in a responsive way.
This document introduces CSS Grid Layout and provides examples of how to define a grid, place items on the grid using line numbers and names, create named grid areas, and redefine the grid at different breakpoints. Key aspects covered include defining grid columns and rows using fractional units and repeat functions, creating gaps between rows and columns, positioning items on the grid using line-based placement properties, and describing layouts using grid-template-areas.
Rachel Andrew presented on CSS Grid Layout and Flexbox at Smashing Conf SF. She began by explaining the differences between Grid and Flexbox - Grid is for two-dimensional layout while Flexbox is for one-dimensional. She demonstrated examples of layouts using Grid and why it may be preferable to Flexbox in certain cases. Rachel then covered using Grid in production, responsive design with Grid, fallback options for older browsers, and ways for developers to encourage browser vendors to support new features. She provided several resources for learning more about Grid.
Talk Web Design: Get Ready For CSS Grid LayoutRachel Andrew
- CSS Grid Layout provides a new two-dimensional grid-based layout system for CSS. It allows developers to divide available space on a page into columns and rows, and place elements into those areas.
- The document discusses defining a CSS grid with properties like grid-template-columns, grid-template-rows, and grid-template-areas. It also covers positioning items onto the grid using line-based placement with grid-column, grid-row etc. or named grid areas.
- CSS Grid Layout offers developers greater control over page layout compared to older methods and allows the layout to be redefined responsively with media queries.
Today we have CSS specifications for animation and transitions, complex layout, custom properties and much more. In addition to the breadth of modern CSS specifications, our evergreen, auto-updating browsers sneak in new features with every release.
In this talk, I’ll be taking a look at some of the things that CSS is capable of, some of which you might think you need a JavaScript framework or at least a pre-processor to achieve.
The document provides an overview and examples of various CSS features, including box alignment, Flexbox, CSS Grid Layout, CSS Shapes, Feature Queries, Initial Letter styling, Writing Modes, and CSS Custom Properties. Codepen examples are included to demonstrate the features discussed. The document covers the purpose and usage of each feature at a high level.
This document provides an overview of CSS Grid layout and its properties for creating grid-based page layouts. CSS Grid allows dividing available space into columns and rows, and placing elements into specific areas. Key properties include display: grid;, grid-template-columns/rows to define the grid structure, and grid-column/row to position items. Grid provides a two-dimensional layout system as opposed to the one-dimensional Flexbox, and is well-suited for page-level layouts rather than component-level layouts.
This document provides an overview and examples of CSS Grids and Flexbox layout techniques. It discusses how Flexbox allows items to be laid out in a single direction row or column, and how CSS Grids enable two-dimensional page layouts using rows and columns. Examples are given for creating navigation menus, image galleries, and multi-column page designs using these new CSS properties. Media queries are also used to redefine grid layouts at different screen sizes.
The document summarizes Rachel Andrew's presentation on modern CSS layout techniques including Flexbox and CSS Grid Layout. Some key points include:
- Flexbox and CSS Grid Layout provide improved tools for page layout compared to older methods like floats.
- These techniques separate logical structure from visual presentation, allow responsive design, and give more control over alignment.
- Features like grid-auto-flow can automatically position items but authors must be careful not to compromise accessibility or semantics.
- Flexbox is well-suited for one-dimensional layouts while Grid excels at two-dimensional layouts like pages with columns.
What I discovered about layout vis CSS GridRachel Andrew
The document summarizes key concepts the author learned about CSS Grid layout. Some key points include:
- CSS Grid handles box alignment and positioning in a logical way based on writing direction rather than physical positioning.
- The display property controls how elements generate boxes and formatting contexts for child elements. Grid items are always blockified.
- Features like subgrid, display: contents, and logical properties give more control over layout.
- Understanding how CSS Grid handles boxes and positioning provides tools to build flexible and accessible layouts.
This document discusses CSS Grid Layout and provides an introduction to its key concepts and terminology. It explains how CSS Grid allows for two-dimensional page layouts with precise positioning of elements. Examples are given to demonstrate how to define a grid, position elements, use grid areas, gaps, repeats, and responsive design. CSS Grid is positioned as a better solution than older methods for complex page layouts, while Flexbox remains useful for small components.
This document introduces CSS Grid Layout and provides examples of how to implement a grid using CSS Grid properties. Key points include:
- CSS Grid Layout allows positioning of elements within a grid system defined entirely through CSS. This avoids layout hacks and redundant markup needed with previous methods.
- Grid properties like grid-template-columns, grid-template-rows define the structure of the grid. grid-column, grid-row position elements within the grid.
- Named lines, grid areas, and media queries allow defining different grid layouts for different screen sizes without changing markup order.
- Repeating tracks, flexible track sizes (fr units), and line spanning provide powerful grid configuration options.
This document introduces CSS Grid Layout and provides an overview of its key concepts and features, including:
- Defining a grid with display: grid and grid-template properties
- Placing grid items on the grid using line numbers, line names, and grid-area
- Automatic placement of grid items with grid-auto-flow
- Accessibility considerations for maintaining source order
- When to use Grid versus Flexbox for layout needs
- Animating grid properties and using feature queries for fallback support
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...Igalia
The document discusses CSS Grid Layout, which provides a mechanism for dividing space into rows and columns to define a grid-based layout. It allows precise placement of elements, reflowing optimally for different devices. The document covers grid concepts like lines, tracks, cells and areas. It also describes the syntax for defining track breadths and placing items in the grid. Implementation status is provided, with grid layout already shipped in IE and work ongoing in Blink and WebKit.
CSS Grid Layout - An Event Apart OrlandoRachel Andrew
My slides from An Event Apart Orlando. Also take a look at the code examples and resources at https://rachelandrew.co.uk/speaking/event/an-event-apart-orlando-special-edition-2016
CSS Grid Layout allows for two-dimensional page layouts using rows and columns to position elements. It offers several methods for defining the grid including explicit definition with grid-template-columns/rows, implicit definition by letting grid create tracks automatically, and using fractional units and repeat functions for flexible layouts. Elements can then be placed on the grid using line-based positioning with grid-column/row or named grid areas. Media queries allow the grid definition and element placement to adapt at different breakpoints.
This document summarizes Rachel Andrew's presentation on CSS Grid Layout. Some key points:
- CSS Grid Layout provides a new two-dimensional layout system for CSS that solves many of the problems of previous methods like floats and flexbox.
- Grid uses line-based placement, with grid lines that can be explicit or implicit, to position items on the page. Properties like grid-column and grid-row position items within the grid.
- The grid template establishes the structure of rows and columns. Items can span multiple tracks. Fraction units like fr distribute space proportionally.
- Common layouts like Holy Grail are easily achieved with Grid. The structure can also adapt at breakpoints by redefining
Rachel Andrew
Co-founder of Perch CMS
Find more by Rachel Andrew: http://www.slideshare.net/rachelandrew
All Things Open
October 26-27, 2016
Raleigh, North Carolina
This document discusses CSS Grid Layout and how it provides a designed-for-purpose layout system. It describes how grid is defined using CSS properties like display: grid and grid-template-columns. Elements can then be precisely positioned on the grid using line-based placement with properties like grid-column and grid-row. The document provides examples of common layout patterns like the holy grail layout implemented with grid. It also covers topics like implicit and explicit grid lines, named lines and areas, and redefining the grid at different breakpoints.
This document summarizes CSS Grid Layout, a new two-dimensional grid system being added to CSS. It discusses some of the limitations of existing CSS layout methods and how Grid Layout addresses them. Key points include: Grid Layout uses line-based placement to position items, grid tracks can be flexible or fixed widths, areas can be explicitly or implicitly named, and the system avoids hacks and limitations of previous methods.
The document discusses new CSS layout techniques including Flexbox and CSS Grid Layout. These allow for precise control of alignment both horizontally and vertically, separation of document structure from visual display, and responsive and flexible layouts by default. Examples are provided showing how Flexbox and Grid Layout can be used to create common layout patterns like equal height columns and reordering of content in a responsive way.
This document introduces CSS Grid Layout and provides examples of how to define a grid, place items on the grid using line numbers and names, create named grid areas, and redefine the grid at different breakpoints. Key aspects covered include defining grid columns and rows using fractional units and repeat functions, creating gaps between rows and columns, positioning items on the grid using line-based placement properties, and describing layouts using grid-template-areas.
Rachel Andrew presented on CSS Grid Layout and Flexbox at Smashing Conf SF. She began by explaining the differences between Grid and Flexbox - Grid is for two-dimensional layout while Flexbox is for one-dimensional. She demonstrated examples of layouts using Grid and why it may be preferable to Flexbox in certain cases. Rachel then covered using Grid in production, responsive design with Grid, fallback options for older browsers, and ways for developers to encourage browser vendors to support new features. She provided several resources for learning more about Grid.
Talk Web Design: Get Ready For CSS Grid LayoutRachel Andrew
- CSS Grid Layout provides a new two-dimensional grid-based layout system for CSS. It allows developers to divide available space on a page into columns and rows, and place elements into those areas.
- The document discusses defining a CSS grid with properties like grid-template-columns, grid-template-rows, and grid-template-areas. It also covers positioning items onto the grid using line-based placement with grid-column, grid-row etc. or named grid areas.
- CSS Grid Layout offers developers greater control over page layout compared to older methods and allows the layout to be redefined responsively with media queries.
Today we have CSS specifications for animation and transitions, complex layout, custom properties and much more. In addition to the breadth of modern CSS specifications, our evergreen, auto-updating browsers sneak in new features with every release.
In this talk, I’ll be taking a look at some of the things that CSS is capable of, some of which you might think you need a JavaScript framework or at least a pre-processor to achieve.
The document provides an overview and examples of various CSS features, including box alignment, Flexbox, CSS Grid Layout, CSS Shapes, Feature Queries, Initial Letter styling, Writing Modes, and CSS Custom Properties. Codepen examples are included to demonstrate the features discussed. The document covers the purpose and usage of each feature at a high level.
This document provides an overview of CSS Grid layout and its properties for creating grid-based page layouts. CSS Grid allows dividing available space into columns and rows, and placing elements into specific areas. Key properties include display: grid;, grid-template-columns/rows to define the grid structure, and grid-column/row to position items. Grid provides a two-dimensional layout system as opposed to the one-dimensional Flexbox, and is well-suited for page-level layouts rather than component-level layouts.
This document provides an overview and examples of CSS Grids and Flexbox layout techniques. It discusses how Flexbox allows items to be laid out in a single direction row or column, and how CSS Grids enable two-dimensional page layouts using rows and columns. Examples are given for creating navigation menus, image galleries, and multi-column page designs using these new CSS properties. Media queries are also used to redefine grid layouts at different screen sizes.
The document summarizes Rachel Andrew's presentation on modern CSS layout techniques including Flexbox and CSS Grid Layout. Some key points include:
- Flexbox and CSS Grid Layout provide improved tools for page layout compared to older methods like floats.
- These techniques separate logical structure from visual presentation, allow responsive design, and give more control over alignment.
- Features like grid-auto-flow can automatically position items but authors must be careful not to compromise accessibility or semantics.
- Flexbox is well-suited for one-dimensional layouts while Grid excels at two-dimensional layouts like pages with columns.
What I discovered about layout vis CSS GridRachel Andrew
The document summarizes key concepts the author learned about CSS Grid layout. Some key points include:
- CSS Grid handles box alignment and positioning in a logical way based on writing direction rather than physical positioning.
- The display property controls how elements generate boxes and formatting contexts for child elements. Grid items are always blockified.
- Features like subgrid, display: contents, and logical properties give more control over layout.
- Understanding how CSS Grid handles boxes and positioning provides tools to build flexible and accessible layouts.
This document discusses CSS Grid Layout and provides an introduction to its key concepts and terminology. It explains how CSS Grid allows for two-dimensional page layouts with precise positioning of elements. Examples are given to demonstrate how to define a grid, position elements, use grid areas, gaps, repeats, and responsive design. CSS Grid is positioned as a better solution than older methods for complex page layouts, while Flexbox remains useful for small components.
This document introduces CSS Grid Layout and provides examples of how to implement a grid using CSS Grid properties. Key points include:
- CSS Grid Layout allows positioning of elements within a grid system defined entirely through CSS. This avoids layout hacks and redundant markup needed with previous methods.
- Grid properties like grid-template-columns, grid-template-rows define the structure of the grid. grid-column, grid-row position elements within the grid.
- Named lines, grid areas, and media queries allow defining different grid layouts for different screen sizes without changing markup order.
- Repeating tracks, flexible track sizes (fr units), and line spanning provide powerful grid configuration options.
This document introduces CSS Grid Layout and provides an overview of its key concepts and features, including:
- Defining a grid with display: grid and grid-template properties
- Placing grid items on the grid using line numbers, line names, and grid-area
- Automatic placement of grid items with grid-auto-flow
- Accessibility considerations for maintaining source order
- When to use Grid versus Flexbox for layout needs
- Animating grid properties and using feature queries for fallback support
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...Igalia
The document discusses CSS Grid Layout, which provides a mechanism for dividing space into rows and columns to define a grid-based layout. It allows precise placement of elements, reflowing optimally for different devices. The document covers grid concepts like lines, tracks, cells and areas. It also describes the syntax for defining track breadths and placing items in the grid. Implementation status is provided, with grid layout already shipped in IE and work ongoing in Blink and WebKit.
CSS Grid Layout - An Event Apart OrlandoRachel Andrew
My slides from An Event Apart Orlando. Also take a look at the code examples and resources at https://rachelandrew.co.uk/speaking/event/an-event-apart-orlando-special-edition-2016
CSS Grid Layout allows for two-dimensional page layouts using rows and columns to position elements. It offers several methods for defining the grid including explicit definition with grid-template-columns/rows, implicit definition by letting grid create tracks automatically, and using fractional units and repeat functions for flexible layouts. Elements can then be placed on the grid using line-based positioning with grid-column/row or named grid areas. Media queries allow the grid definition and element placement to adapt at different breakpoints.
This document summarizes Rachel Andrew's presentation on CSS Grid Layout. Some key points:
- CSS Grid Layout provides a new two-dimensional layout system for CSS that solves many of the problems of previous methods like floats and flexbox.
- Grid uses line-based placement, with grid lines that can be explicit or implicit, to position items on the page. Properties like grid-column and grid-row position items within the grid.
- The grid template establishes the structure of rows and columns. Items can span multiple tracks. Fraction units like fr distribute space proportionally.
- Common layouts like Holy Grail are easily achieved with Grid. The structure can also adapt at breakpoints by redefining
Rachel Andrew
Co-founder of Perch CMS
Find more by Rachel Andrew: http://www.slideshare.net/rachelandrew
All Things Open
October 26-27, 2016
Raleigh, North Carolina
This document discusses CSS Grid Layout and how it provides a designed-for-purpose layout system. It describes how grid is defined using CSS properties like display: grid and grid-template-columns. Elements can then be precisely positioned on the grid using line-based placement with properties like grid-column and grid-row. The document provides examples of common layout patterns like the holy grail layout implemented with grid. It also covers topics like implicit and explicit grid lines, named lines and areas, and redefining the grid at different breakpoints.
The document summarizes Rachel Andrew's presentation on CSS Grid Layout. Some key points:
- CSS Grid Layout provides a new display value and properties to create grid-based layouts, addressing issues with floats, tables, flexbox.
- Grid uses line-based placement, with grid-template-columns/rows to define the grid, and grid-column/row to position.
- The fr unit distributes space proportionally. Implicit tracks are created when content is placed outside defined lines.
- Grid allows redefining layouts responsively by changing templates with media queries.
Grid layout with CSS allows you to divide available space into columns and rows to position content. You define the grid with properties like grid-template-columns and grid-template-rows. Items are placed onto the grid with grid-column, grid-row, or grid-area. Additional properties control spacing, alignment, and automatic placement of items.
The document discusses CSS Grid Layout as a new method for controlling page layout with CSS. It provides examples of using Grid Layout properties like grid-template-columns, grid-template-rows, and grid-column to define a grid structure and position elements within that grid. Key benefits highlighted include describing the layout solely in CSS, ability to redefine the layout at different breakpoints, and eliminating the need for layout hacks or non-semantic markup used by older methods.
The document provides an overview of CSS Grid Layout, a new two-dimensional layout system for CSS. It discusses the evolution of web layout techniques, basics of the CSS Grid model including grid lines, tracks, cells and areas. It covers grid properties for defining templates, placing items, and alignment. Examples demonstrate common layout patterns like holy grail, nested grids, and named lines. Resources for further learning about CSS Grid are also included.
DevFest Nantes - Start Using CSS Grid Layout todayRachel Andrew
The document discusses using CSS Grid Layout for page layout. It provides examples of how to create a grid with multiple equal columns using grid-template-columns, position elements within the grid using grid-column and grid-row, and make the layout responsive by redefining grid placements in media queries. It also addresses backwards compatibility by providing flexbox fallbacks and using feature queries.
Rachel Andrew gives a presentation on modern CSS layout techniques including Flexbox and CSS Grid Layout. She discusses how these techniques allow for flexible and responsive design that separates layout from the semantic structure of the content. Flexbox is well-suited for one-dimensional layouts while Grid Layout enables two-dimensional positioning. Feature queries can help support these new techniques for browsers that do not yet support them.
Rachel Andrew discusses modern CSS layout techniques like Flexbox and CSS Grid Layout. She explains how these new specifications allow for responsive design that adapts to different screen sizes in a fluid, flexible way. Andrew also emphasizes the importance of accessibility and maintaining proper source order when using these techniques. The talk explores various properties, functions, and examples to demonstrate how Flexbox and CSS Grid can be used to create responsive layouts in a semantic and accessible manner.
Evergreen websites for Evergreen browsersRachel Andrew
Grid is for two-dimensional layout, while flexbox is for one-dimensional layout. Grid allows control of layout from the parent container by defining column and row tracks on the container, rather than adding properties to child items. This allows child items to be positioned and overlap in the grid space without adding widths or heights to them directly. Feature queries can be used to provide an enhanced grid-based layout for supporting browsers while avoiding conflicts with non-supporting browsers.
Start Using CSS Grid Layout Today - RuhrJSRachel Andrew
This document provides an introduction and overview of CSS Grid Layout. It explains the differences between Grid and other layout methods like Flexbox. It provides examples of how to implement common layout patterns using Grid and addresses concerns about browser support and fallbacks. Key topics covered include grid template areas, responsive design with Grid, and ways for developers to get involved in advancing browser support for new CSS features.
View Source London: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
This document provides an overview of solving layout problems with CSS Grid and related technologies. It discusses when to use Flexbox versus Grid, how Grid works from the container out compared to other frameworks, tracks sizing with fractions and minmax, nested grids, new sizing keywords, and dealing with older browsers. It also covers subgrids and potential future directions like masonry layouts.
CSS Grid provides a two-dimensional grid system for page layout, allowing elements to be positioned in rows and columns. Some key advantages of CSS Grid include having full control over page layout without needing additional HTML containers, and the ability to easily create complex column-based and row-based layouts. CSS Grid terminology includes grid container, grid items, grid lines, grid cells, tracks and areas. Properties like grid-template-columns, grid-template-rows and grid-area can be used to define the grid structure and position items.
Solving Layout Problems with CSS Grid & Friends - DevFest17Rachel Andrew
This document summarizes Rachel Andrew's presentation on solving layout problems with CSS Grid and friends. It discusses how CSS Grid creates an actual grid structure, unlike float-based or flexbox grids which only mimic a grid. Key features of CSS Grid like grid-template-columns, repeat, minmax, and fr units for column sizing are explained. The document also covers using features like float or flexbox as fallbacks for older browsers, and potential future additions to grid like subgrids and masonry layouts.
Solving Layout Problems With CSS Grid and FriendsFITC
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Rachel Andrew, Perch CMS
Overview
CSS Grid Layout launched into the majority of our browsers in 2017. As designers and developers have started to use Grid Rachel has been answering a lot of questions about the specifications. In this talk she’ll answer some of the common questions about Grid Layout in production – from dealing with old browsers to what might come next in CSS for layout. There will be plenty of practical tips for you to use in your projects today.
Objective
To give attendees practical ways in which they can use new CSS to solve tricky problems
Target Audience
Front-end developers
Assumed Audience Knowledge
Some CSS knowledge
Five Things Audience Members Will Learn
CSS Grid
Flexbox
Box alignment
Feature queries
CSS tips and tricks
All Day Hey! Unlocking The Power of CSS Grid LayoutRachel Andrew
- The document provides an overview and examples of CSS Grid Layout features such as grid-template-columns, grid-template-rows, grid-gap, grid-column, grid-row, and more.
- It demonstrates how to size grid tracks using fixed, intrinsic, and flexible sizing functions like fr units, minmax(), auto, fit-content(), and others.
- Examples are given for aligning and aligning content within grids using properties like justify-content, align-content, justify-items, align-items and more.
SmashingConf SF: Unlocking the Power of CSS Grid LayoutRachel Andrew
UNLOCKING THE POWER OF CSS GRID LAYOUT
Once you have grasped the basics of CSS Grid, you quickly discover how it enables many existing design patterns in a streamlined, elegant way. However, we shouldn’t see Grid in isolation. Understanding how other parts of CSS work together with Grid is key, in order to get the most out of our new abilities.
In this talk Rachel will be concentrating on a couple of these areas, CSS Box Alignment and CSS Sizing. Rachel will show you practical ways in which a little bit of knowledge in these areas can unlock the full potential of the Grid Specification. You’ll learn how to create useful components and to start thinking of ways in which you can solve design and interface problems in more creative ways.
The document provides a summary of a WordPress Meetup on CSS Grid Layout. It discusses various grid sizing techniques like intrinsic sizing with auto, min-content, max-content, and fit-content. It also covers flexible sizing with fr units and minimum and maximum sizing with minmax(). Other topics include alignment of tracks with align-content and justify-content, alignment of items with align-items and justify-items, and writing modes. Throughout it provides code examples and links to further resources.
The document provides a summary of Rachel Andrew's presentation on CSS layout at Smashing Conf London. It includes links to various CSS specifications and code examples demonstrating different CSS layout techniques like grid sizing, intrinsic sizing, flexible lengths with fr units, minimum and maximum sizing, and responsive design patterns using media queries and feature queries.
Grid layout has now landed in all of the mainstream desktop browsers. It's exciting but how do we start to move to using grid layout, and why should we?
404.ie: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
Rachel Andrew presented on solving layout problems with CSS Grid and friends. CSS Grid allows for two-dimensional page layouts directly in the markup, without needing additional wrapper elements. Grid items can be placed into rows and columns precisely without needing to set widths. Older techniques like floats and flexbox can be used as fallbacks for browsers without Grid support. Subgrids and masonry layouts may be added to Grid in the future. Grid is a native part of CSS with good browser support.
Solving Layout Problems with CSS Grid & Friends - NordicJSRachel Andrew
I explain some of the common layout problems that CSS Grid and related specifications attempt to solve - while answering some of the common questions I am asked about Grid Layout.
This document discusses the evolving nature of front-end development over time. It notes that in the past, skills like knowing HTML and CSS were highly marketable on their own. However, the field has grown increasingly complex with many new techniques and tools. The document encourages focusing on core fundamentals first before jumping to new tools, and stresses the importance of contributing to standards and open web platforms through techniques like filing issues to improve interoperability.
The document discusses using CSS grid layout to create magazine-style page layouts and fancy headers. It provides examples of creating a flexible "media object" with images and text that can stack on mobile. It also demonstrates making a "half-border box" and positioning elements in a "magazine-style layout" with multiple images and a caption. Finally, it shows how to style a run header with the distance in a circular shape and background image.
An Event Apart DC - New CSS Layout meets the Real WorldRachel Andrew
The document discusses using CSS Grid Layout and other modern CSS techniques to create magazine-style layouts and interfaces. Some key points:
- The Media Object pattern is demonstrated using CSS Grid Layout, with images and text arranged in columns and rows.
- Flexbox and minmax() are used to create flexible layouts with auto-sizing elements.
- Feature queries allow applying styles conditionally based on browser support for CSS features.
- Techniques like shape-outside and grid areas are used to create magazine-style layouts with images, captions, and floating elements. Fancy headers with circular elements are also demonstrated.
The document discusses the origins and development process of CSS specifications. It explains that specs originate from browser vendors, other software companies, and the CSS working group. New specs are developed through a multi-stage process involving drafts, implementations, feedback, and standardization. The community can influence this process by testing experimental implementations, providing feedback, and reporting issues.
An Event Apart Seattle - New CSS Layout Meets the Real WorldRachel Andrew
The document discusses several new CSS layout techniques including the media object, magazine-style layouts, and fancy headers.
[1] The media object pattern is demonstrated using CSS Grid Layout, with an image and text wrapping around it. Flexbox is also used to make the object flexible. [2] Magazine-style multi-column layouts are created with grid areas, minmax rows, and object-fit for images. [3] Fancy headers are made with circles and curved text using border-radius, shape-outside, and flexbox alignment. Feature queries allow fallback styles for older browsers.
The Digi Web Store – MS Office Setup Service Provider (2).pptxlonenmoay
The Digi Web Store is a trusted provider of professional browser solutions, helping users and businesses optimize their web browsing experience. Specializing in the setup, configuration, and maintenance of all major browsers, they ensure faster performance, enhanced security, and seamless compatibility across devices. Their expert team handles everything from extension management and privacy settings to troubleshooting and updates. Whether you're looking to improve speed, block ads, or secure your browsing environment, The Digi Web Store offers tailored solutions to meet your needs. Rely on them for a smoother, safer, and more efficient digital browsing experience.
Workshop: Mastering Enterprise Agility: From Tension to Transformation by Zia...Agile ME
In a world where change is constant, organisations must rise to the challenge of enterprise agility. This session invites you to confront the tensions that hold your organisation back and transform them into opportunities for growth. In small groups, you'll explore real-world tensions through our specially designed tension cards, identifying the challenges you recognise in your own organisation. With courage and curiosity, you’ll then select a tension to work on and choose from proven organisational design patterns that offer practical solutions. Finally, using Beliminal’s Experiment Canvas, you’ll design a purposeful experiment to take back to your workplace—an actionable step toward unleashing potential and embracing change.
This session is a chance to break through old constraints and unlock what’s possible. With BeLiminal's approach, you’ll navigate the complexities of change and empowered to take bold, confident steps toward true enterprise agility.
Techno Edge Systems LLC provides Video Wall Rental Dubai services across the UAE. We offer high-quality screens for events, exhibitions, and business use with affordable prices. Our service includes quick delivery, setup, and support in Dubai, Abu Dhabi, Sharjah, Al Ain, Ajman, and Fujairah. Call +971-54-4653108 to rent today. Visit us - https://www.laptoprentaluae.com/video-wall-rental-dubai/
Delta Lake Tips, Tricks, and Best Practices WIP.pptxcarlyakerly1
We break down the fundamentals—Delta Lake’s structure, transaction management, and data retention strategies—while showcasing its powerful features like time travel for seamless rollback and vacuuming for efficient cleanup.
Monday.com vs Productboard: Which Tool Truly Empowers Product Teams?Matthieu Sanogho
In today’s fast-paced digital landscape, choosing the right product management platform is a strategic decision. As teams scale and product complexity grows, having the right tool can significantly impact collaboration, prioritization, and execution.
That’s exactly why I created this straightforward, visual and actionable comparison between Monday.com and Productboard — two of the most talked-about platforms in the product world.
In this presentation, you’ll find:
✅ A side-by-side breakdown of features that matter to product, marketing, and cross-functional teams
📱 Highlights on UX, automations, mobile access, templates, and integrations
🔒 Where each platform excels — and where they fall short (hello onboarding gaps and release management limits 👀)
💰 A transparent look at pricing for growing teams
📊 Real feedback from usage across product, marketing, client success and sales
Whether you're a Product Manager, Team Lead, or Founder evaluating tools to support your roadmap, OKRs, or user feedback loops — this presentation gives you a quick, curated snapshot to support your decision-making.
👀 Curious to see who comes out on top?
👉 Dive into the full comparison
And feel free to share your thoughts or your own experience with these tools!
Webinar - Protecting Your Microsoft 365 DataMSP360
Description
Your organization relies heavily on Microsoft 365 as its’ digital workspace.
However, the use of the cloud has blurred the lines around how your organization’s data is protected. Microsoft provides some data retention capabilities, but whose responsibility is it—Microsoft’s or yours?
Join 4-time Microsoft Cloud and Datacenter MVP Nick Cavalancia on Thursday, April 10th at 11 AM ET, as he explores the best ways to protect your Microsoft 365 data.
AI adoption is moving fast, but most organizations are struggling with AI readiness as they jump in before ensuring data, strategy, and governance are in place.
CitrineOS: Bridging the Past and Future of EV Charging with OCPP 1.6 & 2.x Su...DanBrown980551
Join us for an exclusive webinar showcasing the latest advancements in CitrineOS, the open-source, API-first Charge Station Management System. With expanded support for OCPP 1.6 alongside full OCPP 2.x compatibility, CitrineOS is now more adaptable than ever—allowing operators to seamlessly manage both legacy and next-generation EV chargers. Discover how our new dynamic UI enhances operational efficiency, providing native EV charging network management with intuitive TimeSeries data views for authorizations, transactions, charging stations, and locations. Learn about technical upgrades, including the addition of GraphQL, improved file storage flexibility, and a refactored core designed to support multiple OCPP protocols. Don’t miss this opportunity to see how CitrineOS is redefining charge station management with a future-proof platform that evolves with the industry. Register now to stay ahead in the rapidly changing EV charging landscape!
Agile at the Crossroads: Navigating a Post-Framework World by Matthew PhilipAgile ME
In an era of increasing complexity, Agile frameworks have become rigid constraints rather than adaptive ways of working. This keynote challenges practitioners and leaders to transcend certification-driven methodologies and rediscover the true essence of agility: responding to complexity with human creativity, complexity thinking and genuine value delivery. Looking at real-life examples, we'll dive deep into why some Agile approaches are failing, how big companies are systematically crushing innovation, and what it truly takes to help organizations reimagine agile as a dynamic, generative approach to navigating unpredictable landscapes.
Explore the most powerful and widely-used mobile hacking tools in cybersecurity today. This presentation covers top tools like MobSF, Frida, Hopper, Ghidra, Objection, and more—highlighting their core features, use cases, platforms, and practical tips. Whether you're a security researcher, ethical hacker, or mobile app developer, this slide deck offers a well-rounded introduction to both static and dynamic analysis tools for Android and iOS. Ideal for training, awareness, and professional development.
SaaS product development has transformed the software industry into a dynamic ecosystem where innovation, customer-centric design, and rapid iteration shape market success. This presentation explores best practices that empower organizations to build, launch, and scale high-performing SaaS products in today’s competitive digital arena. It begins with an examination of agile methodologies, lean startup principles, and the importance of launching a minimal viable product (MVP) to validate market demand and reduce risk. Through iterative development cycles, teams can continuously refine features based on real user feedback while maintaining flexibility to pivot when necessary.
Strategic planning is emphasized as the cornerstone of sustainable growth. The presentation details how comprehensive market research, rigorous competitor analysis, and a clear product roadmap help align cross-functional teams, from developers and designers to marketing and customer support. Integrated DevOps practices and the adoption of cloud-based architectures further enhance operational efficiency, scalability, and performance. Robust security protocols and compliance measures are also addressed to safeguard data and meet regulatory standards.
A significant portion of the guide is dedicated to leveraging data-driven decision making. Detailed metrics and analytics empower teams to assess user engagement, track product performance, and drive continuous improvements through automation in testing, integration, and deployment. The discussion delves into best practices for managing technical debt, optimizing the development lifecycle, and ensuring that every release adds measurable value. In today’s fast-paced market, the ability to adapt quickly is not optional; it is a necessity that is fostered by iterative testing, proactive customer feedback loops, and strategic risk-taking.
Moreover, this presentation outlines advanced techniques for creating intuitive user experiences (UX), ensuring seamless onboarding, and delivering ongoing customer support that builds trust and enhances loyalty. By merging strategic vision with execution excellence, these best practices offer a comprehensive framework for startups and established enterprises alike, guiding them to achieve long-term success and competitive advantage in a rapidly evolving digital landscape.
Optimized for both innovation and efficiency, this guide serves as an essential resource for product teams aiming to thrive in the SaaS industry. Whether you are refining an existing product or embarking on a new venture, the practices outlined here will help you navigate challenges, seize opportunities, and drive lasting value for your customers.
Top 5+ Soulmate AI chatbots Platform for 2025Soulmaite
Discover the Top 5+ Soulmate AI Chatbot Platforms for 2025, including Soulmaite IO, Sugarlab AI, Pornify, Omypal, and Candy AI. These AI companions offer realistic chat, intimacy, and emotional bonding tailored to your preferences. Whether you want playful sexting or deep connection, these platforms deliver lifelike interactions without judgment. Find out which AI chatbot matches your vibe and experience the future of digital companionship today.
What comes after world domination with Daniel Stenberg, April 2025Daniel Stenberg
Open Source has in many ways already won. It is used in every product by every company, to a very a large degree. But we are not done. We can improve: we can take this further, we can make our projects better, we can enhance our communities and make sure it is done sustainably. The future is ours.
Below the Wing: The Stories Behind Etihad’s Agile Transformation by Peter Lin...Agile ME
In this session, we will explore the stories behind Etihad's agile transformation journey. We'll share stories of successes, lessons learned, and the cultural shifts required to transition from traditional waterfall methodologies to iterative product development.
Discover how cross-functional teams and teams of teams collaborated to...
- Deliver iteratively at scale
- Innvoate faster
- Collaborate across traditional functional boundaries
And how this resulted in...
- Faster turnaround times
- Enhanced customer experiences
- Increased employee engagement
We'll delve into the challenges faced, the impressive results achieved, and key learnings gained while navigating a challenging period for the airline industry.
Data Modelling For Software Engineers (Devoxx GR 2025).pdfScott Sosna
Really, data modeling? Is that even a thing any more?
The days of formal data modeling are definitely years in the rearview mirror, empowered teams define their data as they see fit, implement, and move on. Done. And we'll deal with short-comings down the road when they arise, that's Agile, let's keep moving forward (to data architects' frustration when trying to make sense of it all after the fact).
But "modeling data" extends beyond what is persisted in a database server: API Payloads, messages, configuration files, document metadata, Redis indexes are forms of data we define and work with regularly.
If I've got your attention, join me to discuss data modeling, this time from a software engineering perspective!
The future of content creation is here—and it speaks. This in-depth presentation reveals how AI-powered text-to-speech (TTS) technologies are transforming industries from content creation and podcasting to virtual learning and customer service. Discover how realistic voice AI can save creators time, improve accessibility, and boost engagement across platforms like YouTube, TikTok, and Spotify. We'll showcase the leading TTS platforms, explain voice cloning, and share real use cases and monetization strategies for entrepreneurs, teachers, and marketers alike.
Robert Paul Hardee is motivated to build his career in IT and has hands-on experience in system migrations and hardware installations. He earned Associate’s and Bachelor’s Degrees in Information Technology, followed by Security+ and CEH certifications from the Academy of Computer Education.
7. Defining a Grid
- display: grid;
- display: inline-grid;
With a grid defined on the
parent element, all direct
children become Grid
Items.
.cards {
display: grid;
}
8. Defining a Grid
- grid-template-columns
- grid-template-rows
With these properties we
define an explicit grid. This
one has 3 column tracks
and 3 row tracks.
http://cssgrid.me/05161
.cards {
display: grid;
grid-template-columns: 250px 250px 250px;
grid-template-rows: 200px 200px 200px;
}
9. Defining a Grid
- grid-column-gap
- grid-row-gap
- grid-gap
We can create a gap
between rows and
columns. This gap acts
much like column-gap in
multiple column layout.
http://cssgrid.me/05162
.cards {
display: grid;
grid-template-columns: 250px 250px 250px;
grid-template-rows: 200px 200px 200px;
grid-gap: 20px;
}
10. Defining a Grid
The fr unit is a fraction
unit, representing a
fraction of the available
space in the container.
I have created 3 equal
width columns, each 1
fraction of the available
space.
.cards {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 200px 200px 200px;
grid-gap: 20px;
}
11. Defining a Grid
The fr unit is a fraction
unit, representing a
fraction of the available
space in the container.
We have created 3
columns, the units add up
to 4. The space is spilt into
4 equal parts, the first 2
tracks are given 1 part, the
fine track 2 parts.
.cards {
display: grid;
grid-template-columns: 1fr 1fr 2fr;
grid-template-rows: 200px 200px 200px;
grid-gap: 20px;
}
12. Defining a Grid
The fr unit is a fraction
unit, representing a
fraction of the available
space in the container.
You can mix fraction units
with other length units.
Any tracks with a fraction
unit share the space left
after fixed size tracks and
the gaps have been
defined.
http://cssgrid.me/05164
.cards {
display: grid;
grid-template-columns: 500px 1fr 2fr;
grid-template-rows: 200px 200px 200px;
grid-gap: 20px;
}
13. Defining a Grid
The repeat syntax lets us
define a repeating pattern
of tracks.
Here we are creating 3 1fr
column tracks.
http://cssgrid.me/05165
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: 200px 200px 200px;
grid-gap: 20px;
}
14. Defining a Grid
The explicit grid is the one
we define with rows and
columns. If we didn’t define
rows however grid would
great implicit row tracks
for us.
These will be auto sized by
default.
http://cssgrid.me/05166
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
}
15. Defining a Grid
We can define the size of
implicit rows and column
with the properties:
- grid-auto-rows
- grid-auto-columns
http://cssgrid.me/05167
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 200px;
grid-gap: 20px;
}
16. Defining a Grid
Use the auto-fill keyword
and grid will create as
many tracks that will fit
into the container.
http://cssgrid.me/05168
.cards {
display: grid;
grid-template-columns: repeat(auto-fill, 200px);
grid-gap: 20px;
}
17. Defining a Grid
The minmax() function
enables the creation of
flexible grids. The first
value is the minimum size
of the Grid Track, the
second the max size - set
that to 1fr to allow the
track to take up remaining
space.
http://cssgrid.me/05169
.cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
grid-gap: 20px;
}
19. Grid Track
A Grid Track is the space between two
Grid Lines. Tracks can be horizontal or
vertical (rows or columns).
The highlighted Grid Track is between
Row Lines 2 and 3.
20. Grid Lines
Lines can be horizontal or vertical. They
are referred to by number and can be
named.
Highlighted is Column Line 2.
21. Grid lines relate to writing mode. In
a right to left language such as
Arabic the first column line is the
right-hand line.
22. Grid Cell
The smallest unit on our grid, a Grid Cell
is the space between four Grid Lines. It’s
just like a table cell.
The highlighted Grid Cell is between row
lines 2 and 3 and column lines 2 and 3.
23. Grid Area
Any area of the Grid bound by 4 Grid
Lines. It can contain many Grid Cells.
The highlighted Grid Area is between
row lines 1 and 3, column lines 2 and 4.
24. Using line numbers
I have created a grid with 3
column tracks and 2 row
tracks.
With no placement our
blocks lay out one per grid
cell.
.cards {
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(3,1fr);
grid-auto-rows: 200px;
}
25. Using line numbers
To place an item on the grid
I specify start and end lines
using new properties:
- grid-column-start
- grid-column-end
- grid-row-start
- grid-row-end
.card:nth-child(1) {
grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
}
26. Using line numbers
These can be expressed as
a shorthand:
- grid-column
- grid-row
http://cssgrid.me/051614
.card:nth-child(1) {
grid-column: 2 / 4;
grid-row: 1 / 3;
}
27. Using line numbers
They can be expressed as
one line using grid-area,
the order of the values is:
- grid-row-start
- grid-column-start
- grid-row-end
- grid-column-end
.card:nth-child(1) {
grid-area: 1 / 2 / 3 / 4;
}
28. Using line names
We name lines when
creating the grid. The name
goes in square brackets.
.cards {
display: grid;
grid-gap: 20px;
grid-template-columns: [side-start] 1fr
[main-start] 1fr 1fr
[main-end];
grid-template-rows: [main-start] 200px 200px
[main-end];
}
29. Using line names
Use the name instead of
the line number as the
value of the placement
properties.
http://cssgrid.me/051616
.card:nth-child(1) {
grid-column: main-start / main-end;
grid-row: main-start / main-end;
}
30. Lines define Grid Areas
By creating lines named
main-start and end for
rows and columns, grid has
created me a named grid
area called ‘main’.
I can use that to position
my element rather than the
line numbers or names.
http://cssgrid.me/051617
.cards {
display: grid;
grid-gap: 20px;
grid-template-columns: [side-start] 1fr
[main-start] 1fr 1fr
[main-end];
grid-template-rows: [main-start] 200px 200px
[main-end];
}
.card:nth-child(1) {
grid-area: main;
}
31. Defining Grid Areas
This time I haven’t named
my lines, I’ve just given
each element a name.
.card:nth-child(1) {
grid-area: main;
}
.card:nth-child(2) {
grid-area: side1;
}
.card:nth-child(3) {
grid-area: side2;
}
32. grid-template-areas
I then use these names to
describe my layout as the
value of grid-template-
areas.
http://cssgrid.me/051618
.cards {
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: 200px 200px;
grid-template-areas: "side1 main main"
"side2 main main";
}
36. The HTML around my
page content.
The various areas of my
page are child elements
of a div with a class of
wrapper.
<div class="wrapper">
<header class="mainheader"></header>
<div class="panel"></div>
<div class="content"></div>
</div>
38. Declaring a grid on
wrapper.
The grid has two columns
making 3 column lines.
.wrapper {
width: 100%;
max-width: 960px;
margin: 0 auto;
display: grid;
grid-template-columns: 2fr 4fr;
grid-column-gap: 2em;
grid-row-gap: 20px;
}
40. Positioning our elements
using the grid-column and
grid-row shorthand.
We can omit the -end
value if only spanning 1
track.
This is all we need to do
to create our layout.
.mainheader {
grid-column: 1 / 3;
grid-row: 1 ;
}
.panel {
grid-column: 1 ;
grid-row: 2 ;
}
.content {
grid-column: 2 ;
grid-row: 2 ;
}
43. I can add a footer to this
layout.
<div class="wrapper">
<header class="mainheader"></header>
<div class="panel"></div>
<div class="content"></div>
<footer class="mainfooter"></footer>
</div>
47. Typically rows in our
layouts are sized to fit
their contents, meaning
that you can avoid
specifying rows and grid
will create them as items
are positioned into them. .wrapper {
display: grid;
grid-template-columns: 2fr 4fr;
grid-column-gap: 2em;
grid-row-gap: 20px;
}
48. Grid is “table like” however …
• Unlike a table for layout Grid does not rely on
your content being a particular order in the
source.
• Being entirely described in CSS we can move
things around the Grid at different breakpoints,
introduce or redefine a Grid for any breakpoint.
49. Using Grid to order the
page elements in a single
column for narrow screen
widths.
.wrapper {
display: grid;
grid-row-gap: 10px;
}
.mainheader {
grid-row: 1 ;
}
.content {
grid-row: 2 ;
}
.panel {
grid-row: 3 ;
}
.mainfooter {
grid-row: 4 ;
}
54. Name lines with the name
in square brackets.
Remember we are naming
grid lines and not grid
tracks. .wrapper {
display: grid;
grid-row-gap: 10px;
grid-template-rows:
[row-header-start] auto
[row-content-start] auto
[row-panel-start] auto
[row-footer-start] auto [row-footer-end];
}
55. Here we are positioning
based on line numbers.
.mainheader {
grid-row: 1 ;
}
.content {
grid-row: 2 ;
}
.panel {
grid-row: 3 ;
}
.mainfooter {
grid-row: 4 ;
}
56. Here we are positioning
by named lines.
.mainheader {
grid-row: row-header-start;
}
.content {
grid-row: row-content-start;
}
.panel {
grid-row: row-panel-start;
}
.mainfooter {
grid-row: row-footer-start;
}
59. We assign a name to the
elements on our page.
I am doing this outside of
any Media Queries.
.mainheader {
grid-area: header;
}
.content {
grid-area: content;
}
.panel {
grid-area: sidebar;
}
.mainfooter {
grid-area: footer;
}
60. Describe the layout on
the parent element using
the grid-template-areas
property.
.wrapper {
display: grid;
grid-row-gap: 10px;
grid-template-areas:
"header"
"content"
"sidebar"
"footer";
}
63. Redefining the template
areas for the wider
layout.
@media (min-width: 550px) {
.wrapper {
grid-column-gap: 2em;
grid-row-gap: 20px;
grid-template-columns: 2fr 4fr;
grid-template-areas:
"header header"
"sidebar content"
"footer footer"
}
}
66. Repeating the name of an
area causes the area to
span across those grid
cells.
This can be seen in the
header and footer of this
layout.
@media (min-width: 550px) {
.wrapper {
grid-column-gap: 2em;
grid-row-gap: 20px;
grid-template-columns: 2fr 4fr;
grid-template-areas:
"header header"
"sidebar content"
"footer footer"
}
}
67. Repeating the name of an
area causes the area to
span across those grid
cells.
This can be seen in the
header and footer of this
layout.
@media (min-width: 550px) {
.wrapper {
grid-column-gap: 2em;
grid-row-gap: 20px;
grid-template-columns: 2fr 4fr;
grid-template-areas:
"header header"
"sidebar content"
" . footer"
}
}
70. Named grid areas create
four implicit named lines.
You can use these in the
same way as lines you
have explicitly named.
.wrapper {
.wrapper {
grid-column-gap: 2em;
grid-row-gap: 20px;
grid-template-columns: 2fr 4fr;
grid-template-areas:
"header header"
"sidebar content"
"footer footer"
}
}
.test {
z-index: 100;
background-color: red;
grid-column: content-start;
grid-row: content-start / footer-end;
}
72. Items on the Grid can be layered
using the z-index property.
74. The Bootstrap grid, and
those in other
frameworks relies on our
describing the layout in
the markup.
<!-- Stack the columns on mobile by making one full-width and
the other half-width -->
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns start at 50% wide on mobile and bump up to 33.3%
wide on desktop -->
<div class="row">
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
<div class="col-xs-6">.col-xs-6</div>
<div class="col-xs-6">.col-xs-6</div>
</div>
75. With CSS Grid Layout we describe the
layout in the CSS and can redefine
that description at any breakpoint.
77. You can use the repeat
keyword to repeat all or
part of the grid definition.
This would create 4 200
pixel wide tracks,
separated by a 100 pixel
wide track.
grid-template-columns: repeat(4, 200px 100px);
78. We can give multiple grid
lines the same name.
This means we can use
the span keyword to span
n number of lines, rather
than specifying a specific
grid line.
.wrapper {
grid-template-columns:
repeat(4, [col-a] 200px [col-b] 100px);
}
.content {
grid-column: col-a 2 / span 2;
}
.aside {
grid-column: col-a 2 / span col-b 2;
}
79. The markup used to
create the Grid using the
Skeleton framework.
Like the Bootstrap Grid
and other similar
frameworks it requires
classes that describe the
grid to be added to the
markup.
<div class="container">
<h1>Skeleton Grid</h1>
<div class="example-grid">
<div class="row">
<div class="four columns">Four columns</div>
<div class="four columns">Four columns</div>
<div class="four columns">Four columns</div>
</div>
<div class="row">
<div class="eight columns">Eight columns</div>
<div class="four columns">Four columns</div>
</div>
<div class="row">
<div class="three columns">Three columns</div>
<div class="three columns">Three columns</div>
<div class="three columns">Three columns</div>
<div class="three columns">Three columns</div>
</div>
<div class="row">
<div class="six columns">Six columns</div>
<div class="six columns">Six columns</div>
</div>
</div>
81. When using CSS Grid
Layout we have no need
to describe our grid in
markup.
<div class="wrapper skeleton">
<h1 class="header">CSS Grid Layout Version</h1>
<div class="box1">Four columns</div>
<div class="box2">Four columns</div>
<div class="box3">Four columns</div>
<div class="box4">Eight columns</div>
<div class="box5">Four columns</div>
<div class="box6">Three columns</div>
<div class="box7">Three columns</div>
<div class="box8">Three columns</div>
<div class="box9">Three columns</div>
<div class="box10">Six columns</div>
<div class="box11">Six columns</div>
</div>
82. Defining the 12 column
grid.
The repeat keyword
repeats the pattern of
columns or rows the
number of times specified
before the comma.
.wrapper {
display: grid;
grid-template-columns: repeat(12, [col] 1fr );
grid-template-rows: repeat(5, [row] auto) ;
grid-column-gap: 1em;
grid-row-gap: 15px;
}
83. Placing box1 on the grid.
Multiple lines have the
same name. This means we
can use the span keyword.
Here I place box1 starting
at the first line named col,
spanning to the 4th line.
The box is placed in the
first line named row and
spans 1 line - the default.
.box1 {
grid-column: col / span 4;
grid-row: row ;
}
84. Placing box8 on the grid.
Starting on column line 7,
spanning 3 lines.
In the 3rd row named row,
spanning 1 line.
.box8 {
grid-column: col 7 / span 3;
grid-row: row 3 ;
}
86. With Grid Layout we can
easily span rows just like
columns.
.box1b {
grid-column: col / span 4;
grid-row: row / span 2;
}
.box2b {
grid-column: col 5 / span 4;
grid-row: row / span 3;
}
96. A list containing images.
The landscape images are
inside a list item with a
class of ‘landscape’.
<ul class="wrapper">
<li><h3>1.</h3>
<img src="gallery1.jpg" alt="Balloons"></li>
<li class="landscape"><h3>2.</h3>
<img src="gallery2.jpg" alt="Balloons"></li>
<li class="landscape"><h3>3.</h3>
<img src="gallery8.jpg" alt="Balloons"></li>
<li><h3>4.</h3>
<img src="gallery4.jpg" alt="Balloons"></li>
<li><h3>7.</h3>
<img src="gallery5.jpg" alt="Balloons"></li>
<li class="landscape"><h3>6.</h3>
<img src="gallery6.jpg" alt="Balloons"></li>
<li><h3>7.</h3>
<img src="gallery9.jpg" alt="Balloons"></li>
</ul>
97. I have created a grid of
four equal columns.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
99. When using automatic
placement we can create
rules for items in our
document - for example
displaying portrait and
landscape images
differently.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
.landscape {
grid-column-end: span 2;
}
100. grid-auto-flow
The default value of grid-auto-flow is
sparse. Grid will move forward placing
items skipping cells if items do not fit .
101. With a dense packing
mode grid will move items
out of source order to
backfill spaces.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-auto-flow: dense;
}
.landscape {
grid-column-end: span 2;
}
105. CSS Box Alignment Module Level 3
“This module contains the features of CSS relating to the
alignment of boxes within their containers in the various CSS box
layout models: block layout, table layout, flex layout, and grid
layout.” - https://drafts.csswg.org/css-align/
106. I can create this same
layout with flexbox or Grid.
With flexbox the items are
laid out in a row.
.wrapper {
display: flex;
}
.wrapper li {
flex: 1 0 25%;
}
107. I can create this same
layout with flexbox or Grid.
For Grid I use a single row,
4 column Grid.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
108. Flexbox alignment
properties for the three
landscape images.
http://cssgrid.me/051627
.wrapper li:nth-child(2) {
align-self: center;
}
.wrapper li:nth-child(3) {
align-self: flex-start;
}
.wrapper li:nth-child(4) {
align-self: flex-end;
}
109. Grid alignment properties
for the three landscape
images.
http://cssgrid.me/051628
.wrapper li:nth-child(2) {
align-self: center;
}
.wrapper li:nth-child(3) {
align-self: start;
}
.wrapper li:nth-child(4) {
align-self: end;
}
117. Power and responsibility
• Good = creating the most accessible source
order and using Grid or Flexbox to get the
optimal display for each device.
• Bad = using Grid or Flexbox as an excuse to
forget about the source.
• Terrible - stripping out semantic elements to
make everything a grid or flex item.
121. In this markup the boxes
e, f and g are children of
the element with a class
of d.
http://cssgrid.me/051632
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
</div>
</div>
122. I have declared a grid on
the wrapper div, and
positioned the immediate
children - the elements
with classes a to d.
http://cssgrid.me/051632
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns:
repeat(4, 1fr);
}
.a {
grid-column: 1 / 3;
grid-row: 1;
}
.b {
grid-column: 3 / 5;
grid-row: 1;
}
.c {
grid-column: 1 / 3;
grid-row: 2;
}
.d{
grid-column: 3 / 5;
grid-row: 2;
}
124. To make box d a grid itself
I declare a grid as normal
then position the children
of this element.
They take their grid lines
from the grid declared on
box d.
.d{
grid-column: 3 / 5;
grid-row: 2;
display: grid;
grid-gap: 10px;
grid-template-columns: 1fr 1fr;
}
.e {
grid-column: 1 / 3;
grid-row: 1;
}
.f {
grid-column: 1;
grid-row: 2;
}
.g {
grid-column: 2;
grid-row: 2;
}
127. In our existing layout we
are creating a completely
new grid on box d.
http://cssgrid.me/051632
.d{
grid-column: 3 / 5;
grid-row: 2;
display: grid;
grid-gap: 10px;
grid-template-columns: 1fr 1fr;
}
128. If we declare that this
grid is a subgrid, we can
then position the children
of this element on the
same grid their parent is
placed on.
http://cssgrid.me/051633
.d{
grid-column: 3 / 5;
grid-row: 2;
display: subgrid;
}
129. To give d enough rows for
my two row subgrid
layout I need to add rows
to the parent grid and
cause c and d to span 2
rows.
http://cssgrid.me/051633
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(3, auto);
}
.a {
grid-column: 1 / 3;
grid-row: 1;
}
.b {
grid-column: 3 / 5;
grid-row: 1;
}
.c {
grid-column: 1 / 3;
grid-row: 2 / 4;
}
.d{
grid-column: 3 / 5;
grid-row: 2 / 4;
}
133. Get involved with developing specs!
• While a spec is being developed your feedback
is wanted and can be included in the spec.
• Wait until browsers ship and you lose that
chance.
• It just got easier. Last week the CSS WG voted
to move spec issues to GitHub.
http://logs.csswg.org/irc.w3.org/css/2016-05-10/#e684439
135. Browser Support
All my examples work in Chrome unprefixed - you need to enable the
Experimental Web Platform Features flag.
Mozilla are currently implementing Grid in Firefox. Enable the flag if not using a
Nightly of Dev Edition.
You can also use Webkit nightlies/Safari Developer Preview.
The work in Blink and Webkit is being done by Igalia, sponsored by Bloomberg.
IE10 and up has support for the old syntax, with an -ms prefix.
Grid is on the Edge backlog, marked as High Priority.
There is a Polyfill under active development: https://github.com/FremyCompany/
css-grid-polyfill/
136. More code!
I am creating a list of examples and information at:
http://gridbyexample.com