Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 * { | 1 * { |
2 box-sizing: border-box; | 2 box-sizing: border-box; |
3 } | 3 } |
4 | 4 |
5 body { | 5 body { |
6 background: grey; | 6 background: grey; |
7 padding: 0; | 7 padding: 0; |
8 margin: 0; | 8 margin: 0; |
9 } | 9 } |
10 | 10 |
11 h2 { | 11 h2 { |
12 font-size: 30px; | 12 font-size: 26px; |
13 } | 13 } |
14 | 14 |
15 p { | 15 p { |
16 margin: 0 0 10px; | 16 margin: 0 0 10px; |
17 padding: 0; | 17 padding: 0; |
18 } | 18 } |
19 | 19 |
20 .card-group { | 20 .card-group { |
21 padding: 30px; | 21 padding: 30px; |
22 width: 100%; | |
22 } | 23 } |
23 | 24 |
24 .card { | 25 .card { |
25 background: #fff; | 26 background: #fff; |
26 border: 1px solid black; | 27 border: 1px solid black; |
27 } | 28 } |
28 | 29 |
29 | 30 |
30 // Note: With both solutions, I use a fixed header height | 31 // Note: With both solutions, I use a fixed header height |
31 $card__header--height: 100px; | 32 $card__header--height: 100px; |
juliandoucette
2017/05/23 11:52:00
This is not ideal. We have a problem with long hea
ire
2017/05/23 17:21:44
Noted. I'm not sure, but there may be a way with G
| |
32 | 33 |
33 .card__header { | 34 .card__header { |
34 height: $card__header--height; | 35 height: $card__header--height; |
35 margin-bottom: 20px; | 36 margin-bottom: 20px; |
36 border: 2px solid plum; | 37 border: 2px solid plum; |
37 } | 38 } |
38 | 39 |
39 .card__content { | 40 .card__content { |
40 border: 2px solid cornflowerblue; | 41 border: 2px solid cornflowerblue; |
41 } | 42 } |
42 .card__footer { | 43 .card__footer { |
43 border: 2px solid lightcoral; | 44 border: 2px solid lightcoral; |
44 } | 45 } |
45 | 46 |
46 | 47 |
47 | 48 |
48 | 49 |
49 /* Table Layout Fallback | 50 /* Float Layout Fallback |
50 * Note - requires a set height for the .card__footer | 51 * Note - requires a set height for the .card__footer and .card__content |
51 */ | 52 */ |
52 | 53 |
53 $card__footer--height: 30px; | 54 $card__footer--height: 30px; |
ire
2017/05/19 05:37:57
@julian Here is the main difference between the tw
juliandoucette
2017/05/23 11:52:00
Acknowledged.
I think this is a reasonable limita
ire
2017/05/23 17:21:44
Acknowledged.
| |
55 $card__content--height: 180px; | |
54 | 56 |
55 .card-group { | 57 .card-group:after { |
58 clear: both; | |
59 content: ""; | |
56 display: table; | 60 display: table; |
57 } | 61 } |
58 | 62 |
59 .card { | 63 .card { |
60 display: table-cell; | 64 |
61 position: relative; | 65 position: relative; |
66 width: 100%; | |
62 | 67 |
63 width: 100%; | 68 @media (min-width: 600px) { |
64 @media (min-width: 600px) { width: 50%; } | 69 width: 50%; |
65 @media (min-width: 800px) { width: 33%; } | 70 float: left; |
ire
2017/05/19 05:37:57
@julian Another difference is that the breakpoints
juliandoucette
2017/05/23 11:52:00
Acknowledged.
This doesn't resize well :(
Ideall
ire
2017/05/23 17:21:44
On 2017/05/23 11:52:00, juliandoucette wrote:
| |
71 } | |
72 | |
73 @media (min-width: 800px) { | |
74 width: 33%; | |
75 } | |
66 } | 76 } |
67 | 77 |
68 .card__content { | 78 .card__content { |
69 margin-bottom: $card__footer--height + 20px; | 79 margin-bottom: $card__footer--height + 20px; |
80 | |
81 @media (min-width: 600px) { | |
82 height: $card__content--height; | |
83 } | |
70 } | 84 } |
71 | 85 |
72 .card__footer { | 86 .card__footer { |
73 height: $card__footer--height; | 87 height: $card__footer--height; |
74 width: 100%; | 88 width: 100%; |
75 position: absolute; | 89 position: absolute; |
76 left: 0; | 90 left: 0; |
77 bottom: 0; | 91 bottom: 0; |
78 } | 92 } |
79 | 93 |
80 | 94 |
81 | 95 |
82 /* Grid Layout Enhancement | 96 /* Grid Layout Enhancement |
83 * | 97 * Note - Only requires set height for the .card__header, and a max width for ea ch .card |
84 */ | 98 */ |
85 $card--max-width: 300px; | 99 $card--max-width: 300px; |
86 | 100 |
87 @supports (display: grid) { | 101 @supports not (display: grid) { |
88 | 102 |
89 .card-group { | 103 .card-group { |
90 display: grid; | 104 display: grid; |
91 grid-template-columns: repeat(auto-fit, minmax($card--max-width, 1fr)) | 105 grid-template-columns: repeat(auto-fit, minmax($card--max-width, 1fr)) |
92 } | 106 } |
93 | 107 |
94 .card { | 108 .card { |
95 display: inline-grid; | 109 display: inline-grid; |
96 grid-template-rows: minmax($card__header--height, auto) 1fr auto; | 110 grid-template-rows: minmax($card__header--height, auto) 1fr auto; |
97 @media all { width: 100%; } | 111 |
112 @media all { | |
113 width: 100%; | |
114 float: none; | |
115 } | |
98 } | 116 } |
99 | 117 |
100 .card__content { | 118 .card__content { |
101 margin-bottom: 20px; | 119 margin-bottom: 20px; |
120 height: auto; | |
102 } | 121 } |
103 | 122 |
104 .card__footer { | 123 .card__footer { |
105 position: relative; | 124 position: relative; |
106 height: auto; | 125 height: auto; |
107 } | 126 } |
108 | 127 |
109 } | 128 } |
LEFT | RIGHT |