8000 subgrid · sinbrive/css-examples@3aaa043 · GitHub
Skip to content

Commit 3aaa043

Browse files
committed
subgrid
1 parent 69a9efa commit 3aaa043

File tree

9 files changed

+774
-0
lines changed

9 files changed

+774
-0
lines changed

grid/playable.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var section = document.querySelector('section');
2+
var editable = document.querySelector('.editable');
3+
var textareaHTML = document.querySelector('.playable-html');
4+
var textareaCSS = document.querySelector('.playable-css');
5+
var reset = document.getElementById('reset');
6+
var htmlCode = textareaHTML.value;
7+
var cssCode = textareaCSS.value;
8+
9+
function fillCode() {
10+
editable.innerHTML = textareaCSS.value;
11+
section.innerHTML = textareaHTML.value;
12+
}
13+
14+
reset.addEventListener('click', function () {
15+
textareaHTML.value = htmlCode;
16+
textareaCSS.value = cssCode;
17+
fillCode();
18+
});
19+
20+
textareaHTML.addEventListener('input', fillCode);
21+
textareaCSS.addEventListener('input', fillCode);
22+
window.addEventListener('load', fillCode);

grid/styles.css

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/* Some default styling for cookbook examples */
2+
/*
3+
rgb(53,43,34)
4+
rgb(75,70,74)
5+
rgb(95,97,110)
6+
rgb(137,151,188)
7+
rgb(160,178,226)
8+
*/
9+
body {
10+
background-color: #fff;
11+
color: #333;
12+
font: 1.2em / 1.5 Helvetica Neue, Helvetica, Arial, sans-serif;
13+
padding: 0;
14+
margin: 0;
15+
}
16+
17+
/* styles for the editor */
18+
19+
.playable {
20+
font-family: monospace;
21+
display: block;
22+
margin-bottom: 10px;
23+
background-color: #F4F7F8;
24+
border: none;
25+
border-left: 6px solid #558ABB;
26+
color: #4D4E53;
27+
width: 90%;
28+
max-width: 700px;
29+
padding: 10px 10px 0px;
30+
font-size: 90%;
31+
}
32+
33+
.playable-css {
34+
height: 80px;
35+
}
36+
37+
.playable-html {
38+
height: 160px;
39+
}
40+
41+
.playable-buttons {
42+
text-align: right;
43+
width: 90%;
44+
max-width: 700px;
45+
padding: 5px 10px 5px 26px;
46+
font-size: 100%;
47+
}
48+
49+
.preview {
50+
width: 90%;
51+
max-width: 700px;
52+
border: 1px solid #4D4E53;
53+
border-radius: 2px;
54+
padding: 10px 14px 10px 10px;
55+
margin-bottom: 10px;
56+
}
57+
58+
.preview input {
59+
display: block;
60+
margin: 5px;
61+
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>Subgrid: names can be added to the subgrid</title>
6+
<link rel="stylesheet" href="../styles.css" />
7+
<style>
8+
* {box-sizing: border-box;}
9+
10+
.grid {
11+
border: 2px solid #f76707;
12+
border-radius: 5px;
13+
background-color: #fff4e6;
14+
}
15+
16+
.item {
17+
border: 2px solid #ffa94d;
18+
border-radius: 5px;
19+
background-color: #ffd8a8;
20+
color: #d9480f;
21+
}
22+
23+
.subitem {
24+
background-color: rgb(40, 240, 83);
25+
}
26+
27+
</style>
28+
29+
<style class="editable">
30+
.grid {
31+
display: grid;
32+
grid-template-columns: 1fr 1fr 1fr [col-start] 1fr 1fr 1fr [col-end] 1fr 1fr 1fr;
33+
grid-template-rows: repeat(4, minmax(100px, auto));
34+
gap: 20px;
35+
}
36+
37+
.item {
38+
display: grid;
39+
grid-column: 2 / 7;
40+
grid-row: 2 / 4;
41+
grid-template-columns: subgrid [sub-a] [sub-b] [sub-c] [sub-d] [sub-e] [sub-f];
42+
grid-template-rows: subgrid;
43+
}
44+
45+
.subitem {
46+
grid-column: col-start / col-end;
47+
grid-row: 1 / 3;
48+
}
49+
50+
.subitem2 {
51+
background-color: rgba(0,0,0,.5);
52+
grid-column: sub-b / sub-d;
53+
grid-row: 1;
54+
}
55+
</style>
56+
</head>
57+
58+
<body>
59+
<section class="preview">
60+
<div class="grid">
61+
<div class="item">
62+
<div class="subitem"></div>
63+
<div class="subitem2"></div>
64+
</div>
65+
</div>
66+
</section>
67+
68+
<textarea class="playable playable-css" style="height: 350px;">
69+
.grid {
70+
display: grid;
71+
grid-template-columns: 1fr 1fr 1fr [col-start] 1fr 1fr 1fr [col-end] 1fr 1fr 1fr;
72+
grid-template-rows: repeat(4, minmax(100px, auto));
73+
gap: 20px;
74+
}
75+
76+
.item {
77+
display: grid;
78+
grid-column: 2 / 7;
79+
grid-row: 2 / 4;
80+
grid-template-columns: subgrid [sub-a] [sub-b] [sub-c] [sub-d] [sub-e] [sub-f];
81+
grid-template-rows: subgrid;
82+
}
83+
84+
.subitem {
85+
grid-column: col-start / col-end;
86+
grid-row: 1 / 3;
87+
}
88+
89+
.subitem2 {
90+
background-color: rgba(0,0,0,.5);
91+
grid-column: sub-b / sub-d;
92+
grid-row: 1;
93+
}
94+
</textarea>
95+
96+
<textarea class="playable playable-html" style="height: 200px;">
97+
<div class="grid">
98+
<div class="item">
99+
<div class="subitem"></div>
100+
<div class="subitem2"></div>
101+
</div>
102+
</div>
103+
</textarea>
104+
105+
<div class="playable-buttons">
106+
<input id="reset" type="button" value="Reset" />
107+
</div>
108+
</body>
109+
<script src="../playable.js"></script>
110+
</html>

grid/subgrid/both.html

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>Subgrid: rows and columns</title>
6+
<link rel="stylesheet" href="../styles.css" />
7+
<style>
8+
* {box-sizing: border-box;}
9+
10+
.grid {
11+
border: 2px solid #f76707;
12+
border-radius: 5px;
13+
background-color: #fff4e6;
14+
}
15+
16+
.item {
17+
border: 2px solid #ffa94d;
18+
border-radius: 5px;
19+
background-color: #ffd8a8;
20+
color: #d9480f;
21+
}
22+
23+
.subitem {
24+
background-color: rgb(40, 240, 83);
25+
}
26+
27+
</style>
28+
29+
<style class="editable">
30+
.grid {
31+
display: grid;
32+
grid-template-columns: repeat(9, 1fr);
33+
grid-template-rows: repeat(4, minmax(100px, auto));
34+
}
35+
36+
.item {
37+
display: grid;
38+
grid-column: 2 / 7;
39+
grid-row: 2 / 4;
40+
grid-template-columns: subgrid;
41+
grid-template-rows: subgrid;
42+
}
43+
44+
.subitem {
45+
grid-column: 3 / 6;
46+
grid-row: 1 / 3;
47+
}
48+
</style>
49+
</head>
50+
51+
<body>
52+
<section class="preview">
53+
<div class="grid">
54+
<div class="item">
55+
<div class="subitem"></div>
56+
</div>
57+
</div>
58+
</section>
59+
60+
<textarea class="playable playable-css" style="height: 350px;">
61+
.grid {
62+
display: grid;
63+
grid-template-columns: repeat(9, 1fr);
64+
grid-template-rows: repeat(4, minmax(100px, auto));
65+
}
66+
67+
.item {
68+
display: grid;
69+
grid-column: 2 / 7;
70+
grid-row: 2 / 4;
71+
grid-template-columns: subgrid;
72+
grid-template-rows: subgrid;
73+
}
74+
75+
.subitem {
76+
grid-column: 3 / 6;
77+
grid-row: 1 / 3;
78+
}
79+
</textarea>
80+
81+
<textarea class="playable playable-html" style="height: 200px;">
82+
<div class="grid">
83+
<div class="item">
84+
<div class="subitem"></div>
85+
</div>
86+
</div>
87+
</textarea>
88+
89+
<div class="playable-buttons">
90+
<input id="reset" type="button" value="Reset" />
91+
</div>
92+
</body>
93+
<script src="../playable.js"></script>
94+
</html>

grid/subgrid/columns.html

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>Subgrid: columns</title>
6+
<link rel="stylesheet" href="../styles.css" />
7+
<style>
8+
* {box-sizing: border-box;}
9+
10+
.grid {
11+
border: 2px solid #f76707;
12+
border-radius: 5px;
13+
background-color: #fff4e6;
14+
}
15+
16+
.item {
17+
border: 2px solid #ffa94d;
18+
border-radius: 5px;
19+
background-color: #ffd8a8;
20+
color: #d9480f;
21+
}
22+
23+
.subitem {
24+
background-color: rgb(40, 240, 83);
25+
}
26+
27+
</style>
28+
29+
<style class="editable">
30+
.grid {
31+
display: grid;
32+
grid-template-columns: repeat(9, 1fr);
33+
grid-template-rows: repeat(4, minmax(100px, auto));
34+
}
35+
36+
.item {
37+
display: grid;
38+
grid-column: 2 / 7;
39+
grid-row: 2 / 4;
40+
grid-template-columns: subgrid;
41+
grid-template-rows: repeat(3, 80px);
42+
}
43+
44+
.subitem {
45+
grid-column: 3 / 6;
46+
grid-row: 1 / 3;
47+
}
48+
</style>
49+
</head>
50+
51+
<body>
52+
<section class="preview">
53+
<div class="grid">
54+
<div class="item">
55+
<div class="subitem"></div>
56+
</div>
57+
</div>
58+
</section>
59+
60+
<textarea class="playable playable-css" style="height: 350px;">
61+
.grid {
62+
display: grid;
63+
grid-template-columns: repeat(9, 1fr);
64+
grid-template-rows: repeat(4, minmax(100px, auto));
65+
}
66+
67+
.item {
68+
display: grid;
69+
grid-column: 2 / 7;
70+
grid-row: 2 / 4;
71+
grid-template-columns: subgrid;
72+
grid-template-rows: repeat(3, 80px);
73+
}
74+
75+
.subitem {
76+
grid-column: 3 / 6;
77+
grid-row: 1 / 3;
78+
}
79+
</textarea>
80+
81+
<textarea class="playable playable-html" style="height: 200px;">
82+
<div class="grid">
83+
<div class="item">
84+
<div class="subitem"></div>
85+
</div>
86+
</div>
87+
</textarea>
88+
89+
<div class="playable-buttons">
90+
<input id="reset" type="button" value="Reset" />
91+
</div>
92+
</body>
93+
<script src="../playable.js"></script>
94+
</html>

0 commit comments

Comments
 (0)