All the code to make this work is below.
The master page
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="CSSDemo.master.vb" Inherits="DynDeveloper.CSSDemo" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link href="CSSDemo.css" rel="stylesheet" />
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<div class="header">
Header
</div>
<div class="menu">
<a href="CSSDemo2Column.aspx">Two Columns </a> |
<a href="CSSDemo3Column.aspx"> Three Columns</a> |
</div>
<div class="leftwing">
Left Wing. This column will disappear at < 1000px
</div>
<div class="maincontentarea">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
<div class="rightwing">
Right Wing. This column will disappear at < 800px
</div>
<div class="footer">
footer
</div>
</div>
</form>
</body>
</html>
Page 1
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/CSSDemo/CSSDemo.Master" CodeBehind="CSSDemo2Column.aspx.vb" Inherits="DynDeveloper.CSSDemo2Column" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="pageContainer">
<div class="pagecolumn1">
This page has two columns. This one always is visible
<br />
<br />
</div>
<div class="pagecolumn2">
and this one will disappear
</div>
</div></asp:Content>
Page 2
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/CSSDemo/CSSDemo.Master" CodeBehind="CSSDemo3Column.aspx.vb" Inherits="DynDeveloper.CSSDemo3Column" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="colThreeContainer">
<div class="colOneOfThree">
Column 1. Flexable widths, always taking up 1/3 of the main content area. At 768px they will stack on top of each other.
<br />Min Height:200px
</div>
<div class="colTwoOfThree">
Column 2. Min Height:50px
</div>
<div class="colThreeOfThree">
Column 3. Min Height:50px
</div>
</div></asp:Content>
CSS
body {
color: #222222;
background-color: #008081;
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif
}
.container {
display: grid;
max-width: 1400px;
margin: 0 auto;
grid-template-columns: 150px auto 150px;
grid-template-rows: auto auto auto;
}
.header {
grid-column: 2;
grid-row: 1;
min-height: 100px;
background-color: #67e1e2;
padding: 5px;
}
.menu {
grid-column: 2;
grid-row: 2;
background-color: silver;
height: 30px;
padding-top: 9px;
padding-left: 9px;
}
.menu a:link, .menu a:visited {
text-decoration: none;
color: black;
}
.leftwing {
grid-column: 1;
grid-row: 3;
background-color: skyblue;
margin: 5px;
padding: 5px;
}
.maincontentarea {
grid-column: 2;
grid-row: 3;
background-color: white;
min-height: 200px;
}
.rightwing {
grid-column: 3;
grid-row: 3;
background-color: skyblue;
margin: 5px;
padding: 5px;
}
.footer {
grid-column: 2;
grid-row: 4;
color: white;
background-color: gray;
font-size: .7em;
min-height: 100px;
padding: 7px;
}
@media (max-width:1000px) {
.leftwing {
display: none;
}
.menu {
grid-column: 1/3;
}
.maincontentarea {
grid-column: 1/3;
}
.header {
grid-column: 1/3;
}
.footer {
grid-column: 1/3;
}
}
@media (max-width:800px) {
.rightwing {
display: none;
}
.maincontentarea {
grid-column: 1/4;
}
.menu {
grid-column: 1/4;
}
.header {
grid-column: 1/4;
}
.footer {
grid-column: 1/4;
}
}
.pageContainer {
display: grid;
grid-template-columns: auto auto;
grid-template-rows: auto;
}
.pagecolumn1 {
grid-column: 1;
background-color: beige;
min-height: 200px;
padding: 7px;
}
.pagecolumn2 {
grid-column: 2;
padding: 7px;
}
@media (max-width:700px) {
.pagecolumn2 {
display: none;
}
.pagecolumn1 {
grid-column: 1/3;
}
}
.colThreeContainer {
display: flex;
}
.colOneOfThree {
background-color: yellow;
min-height: 200px;
color: red;
flex: 1;
padding: 5px;
}
.colTwoOfThree {
background-color: lightgreen;
min-height: 50px;
color: red;
flex: 1;
padding: 5px;
}
.colThreeOfThree {
background-color: aqua;
min-height: 50px;
color: red;
flex: 1;
padding: 5px;
}
@media (max-width: 768px) { /*breakpoint*/
.colThreeContainer {
flex-direction: column;
}
}