- From: Michael <michael@boost.co.nz>
- Date: Thu, 14 May 2015 01:30:36 +0000
- To: www-style@w3.org
- Message-ID: <CF03CD7C-3613-4D65-960B-F8470D3CA69F@boost.co.nz>
I have a recommendation for the CSS Grid Module. I have been experimenting with the CSS Grid Layout in my codepen: http://codepen.io/trilm/pen/RPaWQL?editors=110 <http://codepen.io/trilm/pen/RPaWQL?editors=110> There are certainly things I still need to totally understand, which I will continue to look into. No doubt I will contradict myself eventually. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Grid Template Column: Instead of using repetition to define our grid: // Existing way to define a 4 column grid grid-template-columns: 172px 1.5em 172px 1.5em 172px 1.5em 172px Could we define our grid like this: // Possible have another option to define an equal width 4 column grid in shorthand grid-template-columns: columnTotal / widthValue / gutterValue; grid-template-columns: 4 / 23.2% / 1.5em ; Better yet, so the user doesn’t have to do math: grid-template-columns: columnTotal / browserCalculatesColumnWidth / gutterValue; grid-template-columns: 4 / browserCalculatesColumnWidth / 1.5em; Note: I have discovered 1fr value, doesn’t seem to work how I expect. Maybe this will help for auto calculation? I just think it may be a bit too technical? /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Grid Column: Note: I think of the following as another step in the shorthand option. Once the columnTotal is defined from above ( Eg. 4 ), the user will use the values below to match up on their grid items: .item:nth-of-type(1) { grid-column: 1; } = grid-column: 1 / 2; .item:nth-of-type(2) { grid-column: 2; } = grid-column: 3 / 4; .item:nth-of-type(3) { grid-column: 3; } = grid-column: 5 / 6; .item:nth-of-type(4) { grid-column: 4; } = grid-column: 7 / 8; If the user wants to target a gutter, they will specify it like this. Not sure why someone would want to target a gutter specifically. .item:nth-of-type(1) { grid-column: 1; } = grid-column: 1 / 2; .item:nth-of-type(2) { grid-gutter: 1; } = grid-column: 2 / 3; .item:nth-of-type(3) { grid-column: 2; } = grid-column: 3 / 4; .item:nth-of-type(4) { grid-gutter: 2; } = grid-column: 4 / 5; .item:nth-of-type(5) { grid-column: 3; } = grid-column: 5 / 6; .item:nth-of-type(6) { grid-gutter: 3; } = grid-column: 6 / 7; .item:nth-of-type(7) { grid-column: 4; } = grid-column: 7 / 8; If the user wants to span across 2 columns, they would revert to the grid-column: 5 / 8 for example. -------------------------------------------------------------------------------------------------------------------------------------------------------- // First Column grid-column: 1 / 2 = grid-column: 1; // First Gutter grid-column: 2 / 3 = grid-gutter: 1; // Second Column grid-column: 3 / 4 = grid-column: 2; // First Gutter grid-column: 4 / 5 = grid-gutter: 2; // Third Column grid-column: 5 / 6 = grid-column: 3; // First Gutter grid-column: 6 / 7 = grid-gutter: 3; // Forth Column grid-column: 7 / 8 = grid-column: 4; // First Gutter grid-column: 8 / 9 = grid-gutter: 4; // Fifth Column grid-column: 9 / 10 = grid-column: 5; // First Gutter grid-column: 10 / 11 = grid-gutter: 5; // Sixth Column grid-column: 11 / 12 = grid-column: 6; // First Gutter grid-column: 12 / 13 = grid-gutter: 6; // Seventh Column grid-column: 13 / 14 = grid-column: 7; // First Gutter grid-column: 14 / 15 = grid-gutter: 7; // Eighth Column grid-column: 15 / 16 = grid-column: 8; // First Gutter grid-column: 16 / 17 = grid-gutter: 8; // Ninth Column grid-column: 17 / 18 = grid-column: 9; // First Gutter grid-column: 18 / 19 = grid-gutter: 9; // Tenth Column grid-column: 19 / 20 = grid-column: 10; // First Gutter grid-column: 20 / 21 = grid-gutter: 10; // Eleventh Column grid-column: 21 / 22 = grid-column: 11; // First Gutter grid-column: 22 / 23 = grid-gutter: 11; // Twelth Column grid-column: 23 / 24 = grid-column: 12; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Hopefully this helps in someway, Mike.
Received on Tuesday, 2 June 2015 15:39:51 UTC