Grid
CSS Grid Template Area

/* ===================================================================== Practice CSS Grid Layout ======================================================================== */ /* Target each grid item. Give each selector a grid area name. */ header { grid-area: head; } main { grid-area: main; } .about { grid-area: about; } .news { grid-area: news; } .links { grid-area: links; } .ads { grid-area: ads; } footer { grid-area: foot; } .grid { height: 100vh; display: grid; /* Set only the top row to 100px */ grid-template-rows: 100px; /* Declare 3 flexible column tracks - The first track should take up two fractions of the available space - The second and third tracks should take up one fraction of the space */ grid-template-columns: 2fr 1fr 1fr; /* Apply a 10px gutter between rows and columns */ grid-gap: 10px; /* Place items on the grid using their grid area names - Use the image 'grid-template-areas.png' as a reference */ grid-template-areas: "head head head" "main about news" "main links ads" "main foot foot"; }
CSS Grid with Flexbox
/* ===================================== Grid & Flexbox Layout ======================================== */ .main-content { width: 95%; max-width: 1000px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); grid-gap: 20px; } .card { display: flex; flex-direction: column; } .btn { margin-top: auto; }
CSS Grid with Media Queries
/* ===================================== Grid Layout ======================================== */ .container { height: 100vh; display: grid; grid-template-columns: 1fr; grid-auto-rows: minmax(150px, auto); grid-gap: 10px; grid-template-areas: "header" "nav" "main" "aside" "footer"; } header { grid-area: header; } nav { grid-area: nav; } main { grid-area: main; } aside { grid-area: aside; } footer { grid-area: footer; } @media (min-width: 768px) { .container { grid-template-columns: 1fr 2fr 1fr; grid-template-rows: 100px minmax(150px, auto) 100px; grid-template-areas: "header header header" "nav main aside" "footer footer footer"; } } @media (min-width: 992px) { .container { grid-template-areas: "header header header" "nav main aside" "nav footer footer"; } }