- CSS Basics
- CSS Tutorial HomePage
- CSS Where to Write
- CSS Syntax
- CSS Selectors
- CSS Combinators
- CSS Attribute Selectors
- CSS Pseudo Classes
- CSS Pseudo-Classes
- CSS :link :hover :active
- CSS :first-child
- CSS :first-of-type
- CSS :last-child
- CSS :last-of-type
- CSS :only-child
- CSS :only-of-type
- CSS :nth-child()
- CSS :nth-of-type()
- CSS :nth-last-child()
- CSS :nth-last-of-type()
- CSS :focus
- CSS :not()
- CSS :root
- CSS :empty
- CSS :target
- CSS :lang()
- CSS :valid
- CSS :invalid
- CSS :optional
- CSS :required
- CSS :in-range
- CSS :out-of-range
- CSS :enabled :disabled
- CSS :read-only
- CSS :read-write
- CSS Pseudo Elements
- CSS Pseudo-Elements
- CSS ::before
- CSS ::after
- CSS ::first-letter
- CSS ::first-line
- CSS ::marker
- CSS ::selection
- CSS Colors
- CSS Colors
- CSS rgb() and rgba()
- CSS hsl() and hsla()
- CSS Background
- CSS background
- CSS background-color
- CSS background-image
- CSS linear-gradient()
- CSS radial-gradient()
- CSS conic-gradient()
- CSS repeating-linear-gradient()
- CSS repeating-radial-gradient()
- CSS repeating-conic-gradient()
- CSS background-position
- CSS background-size
- CSS background-repeat
- CSS background-origin
- CSS background-clip
- CSS background-attachment
- CSS background-blend-mode
- CSS Border
- CSS border
- CSS border-style
- CSS border-style Values
- CSS border-width
- CSS border-color
- CSS border-top
- CSS border-top-style
- CSS border-top-width
- CSS border-top-color
- CSS border-bottom
- CSS border-bottom-style
- CSS border-bottom-width
- CSS border-bottom-color
- CSS border-left
- CSS border-left-style
- CSS border-left-width
- CSS border-left-color
- CSS border-right
- CSS border-right-style
- CSS border-right-width
- CSS border-right-color
- CSS border-top-left-radius
- CSS border-top-right-radius
- CSS border-bottom-left-radius
- CSS border-bottom-right-radius
- CSS border-radius
- CSS border-collapse
- CSS empty-cells
- CSS border-spacing
- CSS border-image
- CSS border-image-source
- CSS border-image-slice
- CSS border-image-width
- CSS border-image-outset
- CSS border-image-repeat
- CSS Fonts
- CSS font
- CSS font-style
- CSS font-variant
- CSS font-variant-caps
- CSS font-weight
- CSS font-size
- CSS line-height
- CSS font-family
- CSS font-stretch
- CSS font-kerning
- CSS font-face
- CSS font-feature-settings
- CSS Text
- CSS Text
- CSS color
- CSS text-decoration
- CSS text-decoration-line
- CSS text-decoration-color
- CSS text-decoration-style
- CSS text-underline-position
- CSS text-align
- CSS text-align-last
- CSS text-justify
- CSS letter-spacing
- CSS word-spacing
- CSS text-shadow
- CSS text-transform
- CSS white-space
- CSS text-indent
- CSS word-wrap
- CSS overflow-wrap
- CSS word-break
- CSS text-overflow
- CSS hyphens
- CSS direction
- CSS unicode-bidi
- CSS writing-mode
- CSS Padding & Margin
- CSS Box Model
- CSS padding
- CSS padding-top
- CSS padding-right
- CSS padding-bottom
- CSS padding-left
- CSS margin
- CSS margin-top
- CSS margin-right
- CSS margin-bottom
- CSS margin-left
- CSS Padding Vs Margin
- CSS Dimensions
- CSS Dimensions
- CSS height
- CSS max-height
- CSS min-height
- CSS width
- CSS max-width
- CSS min-width
- CSS overflow
- CSS overflow-x
- CSS overflow-y
- CSS Multi-Column Layout
- CSS Multi-Column Layout
- CSS columns
- CSS column-width
- CSS column-count
- CSS column-rule
- CSS column-rule-width
- CSS column-rule-style
- CSS column-rule-color
- CSS column-span
- CSS column-fill
- CSS Display
- CSS display
- CSS inline Vs block
- CSS inline Vs inline-block
- CSS flex Vs inline-flex
- CSS inline-flex Vs inline-block
- CSS flex Vs grid
- CSS grid Vs inline-grid
- CSS Float and Position
- CSS float
- CSS clear
- CSS Align
- CSS position
- CSS left
- CSS right
- CSS top
- CSS bottom
- CSS Style List Marker
- CSS Style List Marker
- CSS list-style
- CSS list-style-type
- CSS list-style-position
- CSS list-style-image
- CSS Outline
- CSS outline
- CSS outline-width
- CSS outline-style
- CSS outline-color
- CSS outline-offset
- CSS Effects
- CSS Effects
- CSS Gradients
- CSS Shadows
- CSS box-shadow
- CSS opacity
- CSS Transforms
- CSS transform
- CSS translateX()
- CSS translateY()
- CSS translateZ()
- CSS translate()
- CSS translate3d()
- CSS scaleX()
- CSS scaleY()
- CSS scaleZ()
- CSS scale()
- CSS scale3d()
- CSS rotateX()
- CSS rotateY()
- CSS rotateZ()
- CSS rotate()
- CSS rotate3d()
- CSS skewX()
- CSS skewY()
- CSS skew()
- CSS matrix()
- CSS matrix3d()
- CSS perspective() Function
- CSS perspective Property
- CSS perspective-origin
- CSS transform-style
- CSS transform-origin
- CSS 2D Transform
- CSS 3D Transform
- CSS Transition
- CSS transition
- CSS transition-property
- CSS transition-duration
- CSS transition-timing-function
- CSS transition-delay
- CSS Animation
- CSS animation
- CSS @keyframes
- CSS animation-name
- CSS animation-duration
- CSS animation-timing-function
- CSS animation-delay
- CSS animation-iteration-count
- CSS animation-direction
- CSS animation-fill-mode
- CSS animation-play-state
- CSS Grid Layout
- CSS Grid Layout
- CSS gap
- CSS column-gap
- CSS row-gap
- CSS grid-area
- CSS grid-column-start
- CSS grid-column-end
- CSS grid-row-start
- CSS grid-row-end
- CSS grid-template
- CSS grid-template-columns
- CSS grid-template-rows
- CSS grid-template-areas
- CSS grid-auto-columns
- CSS grid-auto-rows
- CSS grid-auto-flow
- CSS grid-column
- CSS grid-row
- CSS Template Layout
- CSS Flex Layout
- CSS FlexBox
- CSS flex-direction
- CSS flex-wrap
- CSS flex-flow
- CSS justify-content
- CSS align-content
- CSS align-items
- CSS flex-grow
- CSS flex-shrink
- CSS flex-basis
- CSS flex
- CSS align-self
- CSS order
- CSS Misc
- CSS Length Units
- CSS Style Link
- CSS Navigation Bar
- CSS Style Image
- CSS Style Tables
- CSS table-layout
- CSS caption-side
- CSS Create Frames
CSS grid-area
The CSS grid-area property is used to define the location and size of a grid item in grid layout. For example:
<!DOCTYPE html> <html> <head> <style> div.abc {display: grid; grid-template-columns: auto auto auto; gap: 4px;} div.abc > div {border: 1px solid firebrick; padding: 10px;} #divOne {grid-area: 2 / 1 / span 3 / span 2;} </style> </head> <body> <div class="abc"> <div id="divOne">This is France</div> <div>This is Canada</div> <div>This is United States</div> <div>This is Argentina</div> <div>This is Germany</div> <div>This is Italy</div> <div>This is Barcelona</div> <div>This is Austria</div> </div> </body> </html>
In above example, consider the following CSS code:
#divOne {grid-area: 2 / 1 / span 3 / span 2;}
2 specifies the grid-row-start value, 1 specifies the grid-column-start value, span 3 specifies the number of rows to span, span 2 specifies the number of columns to span. Therefore, the div with id divOne starts from 2nd row 1st column and expands for next 3 rows and 2 columns.
Note - The grid as the value of display property, is used to make an element as a block level grid container.
Note - The grid-template-columns is used to define the number of columns to create in grid layout.
Note - The gap property is used to define the gap between rows and columns in grid layout.
CSS gird-area Syntax
The syntax of grid-area property in CSS, is:
grid-area: grid-row-start / grid-column-start / grid-row-end / grid-column-end | gridItemName;
The grid-area property is basically the shorthand of following CSS properties:
- grid-row-start - used to define the starting row position of a grid item
- grid-column-start - used to define the starting column position of a grid item
- grid-row-end - used to span a grid item for specified number of rows. Or to define the ending row position of a grid item
- grid-column-end - used to span a grid item for specified number of columns. Or to define the ending column position of a grid item
CSS grid-area: gridItemName Example
<!DOCTYPE html> <html> <head> <style> div.abc {display: grid; grid-template-areas: 'myar myar myar'; gap: 4px; background-color: peru;} div.abc > div {background-color: maroon; color: whitesmoke; padding: 10px;} .myClassOne {grid-area: myar; text-align: center;} </style> </head> <body> <div class="abc"> <div class="myClassOne">fresherearth.com</div> <div>B</div> <div>C</div> <div>D</div> <div>E</div> <div>F</div> <div>G</div> </div> </body> </html>
Note - The grid-template-areas property is used to define the area of a/multiple grid item(s). Named grid items are referenced using the grid-template-areas property.
Note - Notice the quotes, that is 'myar myar myar'
Now the question is, what if we need to span the area of a particular grid item using its name, for not
the complete row ?
The answer can easily be tracked using the example given below:
<!DOCTYPE html> <html> <head> <style> div.abc {display: grid; grid-template-areas: 'myar myar myar . .'; gap: 4px;} div.abc > div {border: 1px solid firebrick; padding: 10px;} .myClassOne {grid-area: myar; text-align: center;} </style> </head> <body> <div class="abc"> <div class="myClassOne">A</div> <div>B</div> <div>C</div> <div>D</div> <div>E</div> <div>F</div> <div>G</div> <div>H</div> </div> </body> </html>
In above example, consider the following CSS code:
grid-template-areas: 'myar myar myar . .';
The first three columns refers to the grid item named myar, whereas the last two columns refers to random grid items.
Note - One period (.) refers to one random grid item. Therefore, two periods refers to two random grid items, in above example.
Another question is, what if we need to span the named grid item for multiple rows and columns ?
Again this answer, can also be tracked using following example:
<!DOCTYPE html> <html> <head> <style> div.abc {display: grid; gap: 4px; grid-template-areas: 'myar myar . . .' 'myar myar . . .' 'myar myar . . .';} div.abc > div {border: 1px solid firebrick; padding: 10px;} .myClassOne {grid-area: myar; text-align: center;} </style> </head> <body> <div class="abc"> <div class="myClassOne">A</div> <div>B</div> <div>C</div> <div>D</div> <div>E</div> <div>F</div> <div>G</div> <div>H</div> <div>I</div> <div>J</div> </div> </body> </html>
In above example, consider the following CSS code:
grid-template-areas: 'myar myar . . .' 'myar myar . . .' 'myar myar . . .'
From above code, the following one:
'myar myar . . .'
is used to span the grid item named myar for total of 5 columns with 3 random grid items. And since this is used for three times, therefore the same grid area with 5 columns gets created or spanned for 3 rows. Therefore, for clear understanding, you can also write the above code, in this way:
grid-template-areas: 'myar myar . . .' 'myar myar . . .' 'myar myar . . .';
CSS grid-area Example
This is the last example of grid-area property in CSS. This example is created to layout a WebPage using grid. I've named all grid items and uses those to create the layout:
<!DOCTYPE html> <html> <head> <style> div.container {display: grid; gap: 4px; grid-template-areas: 'h h h' 'm c o' 'f f f';} div.container > div {border: 1px solid firebrick; padding: 10px; text-align: center;} #header {grid-area: h;} #menu {grid-area: m; min-height: 300px;} #content {grid-area: c; min-height: 300px;} #other {grid-area: o; min-height: 300px;} #footer {grid-area: f;} </style> </head> <body> <div class="container"> <div id="header">Header</div> <div id="menu">Menu</div> <div id="content">Content</div> <div id="other">Other</div> <div id="footer">Footer</div> </div> </body> </html>
To increase the area (column size) of any grid items say c (for content), increase its count in this way:
grid-template-areas: 'h h h h h h' 'm c c c c o' 'f f f f f f';
Now the size (width) of grid item having grid-area named c gets increased for 4 columns. Now the output will be:
« Previous Tutorial Next Tutorial »