<!DOCTYPE HTML>
<html><head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
html,body {
  font-size:12px;
  font-family:monospace;
}
.grid {
  display: grid;
  border: 1px solid green;
  grid-template-columns: 20px 20px 20px 20px;
  grid-template-rows: 20px 20px 20px;
  grid-auto-flow: row;
  grid-auto-columns: 20px;
  grid-auto-rows: 20px;
}

span {
  background: lime;
  border: 1px solid;
}

.test1 { grid-template-areas:'. a a-start .'; }
.test1 span { grid-column: a-start / 8; }

.test2 {
  grid-template-areas:
    'a a a . . .'
    'a a a . . .'
    '. b b . . .'
  ;
}

.test2 .a {
  grid-area: a;
}
.test2 .b {
  grid-column: 2 / span 3; 
  grid-row: b;
}
.test2 .c {
  grid-column: auto / span 3;
}

.test3 {
  grid-template-areas:'. a .';
  grid-template-columns: [a-start] 20px 20px [a-start-start] 20px [a-start-end];
}
.test3 span { grid-column: a-start / 8; }

.test4, .test5 {
  grid-template-areas:'. . . a';
  grid-template-columns: 20px [a-start] 20px [a-start] 20px [a-end] 20px ;
}
.test4 span { grid-column: a-start 2 / 8; }
.test5 span { grid-column: a / 8; }

.test6 #span1 { grid-row:1/2; grid-column:1/2; }
.test6 #span2 { grid-row:1/2; grid-column:1/2; }

.test7 {grid-template-columns: 700px; grid-template-rows: 60px; }
.test7 #span1 { grid-area: 1/1; background: red;  border: 4px solid red; color:red; }
.test7 #span2 { grid-area: 1/1; background: lime; padding: 3px; margin:0; }

    </style>
</head>
<body>

<div class="grid test1"><span>a</span></div>

<div class="grid test2">
<span class="a">a</span>
<span class="b">b</span>
<span class="c">c</span>
</div>

<div class="grid test3"><span>a</span></div>

<div class="grid test4"><span>a</span></div>

<div class="grid test5"><span>a</span></div>

<div class="grid test6"><span id="span1">a</span><span id="span2">b</span></div>

<div class="grid test7"><span id="span1">FAIL</span><span id="span2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;grid</span></div>

</body>
</html>