====== Mini Grid-based CSS Framework ====== Das ist ein Micro-CSS-Framework um auf display:grid Basis in zu erzeugen. columns werden über Flexbox erzeugt. /* ----------------------------------------- *\ Micro CSS Grid Framework \* ----------------------------------------- */ :root { /* -- Row Full : 100vw */ /* -- Row Wide : 996px */ /* -- Row Main : 840px */ --row-wide-width : 996px; --row-main-width : 840px; --col-gap : 16px; } /* -- CONTAINER -- ... -- ... */ container{ /* -- Local Vars */ --row-wide-col-width : calc( var(--row-wide-width) / 2 - var(--row-main-width) / 2 ); /* -- Regular CSS */ display : grid; gap : 0px; grid-template-columns : [row-full-start] 1fr [row-wide-start] var( --row-wide-col-width ) [row-main-start] var( --row-main-width ) [row-main-end] var( --row-wide-col-width ) [row-wide-end] 1fr [row-full-end]; } /* -- ROW -- ... -- ... */ container row{ display : grid; grid-template-columns : repeat( 12, 1fr ); gap : var( --col-gap ); } container row[span="main"]{ grid-column : row-main-start / row-main-end; border : 1px solid green; } container row[span="wide"]{ grid-column : row-wide-start / row-wide-end; border : 1px solid red; } container row[span="full"]{ grid-column : row-full-start / row-full-end; border : 1px solid blue; } /* -- COLUMN -- ... -- ... -- ... */ container row > * { grid-column : span var( --span, 12 ); } container row column{ display : block; grid-column : span var( --span, 12 ); } container row column[span="1/12"]{ grid-column : span var( --span, 1 ); } container row column[span="2/12"]{ grid-column : span var( --span, 2 ); } container row column[span="3/12"]{ grid-column : span var( --span, 3 ); } container row column[span="4/12"]{ grid-column : span var( --span, 4 ); } container row column[span="5/12"]{ grid-column : span var( --span, 5 ); } container row column[span="6/12"]{ grid-column : span var( --span, 6 ); } container row column[span="7/12"]{ grid-column : span var( --span, 7 ); } container row column[span="8/12"]{ grid-column : span var( --span, 8 ); } container row column[span="9/12"]{ grid-column : span var( --span, 9 ); } container row column[span="10/12"]{ grid-column : span var( --span, 10 ); } container row column[span="11/12"]{ grid-column : span var( --span, 11 ); } container row column[span="12/12"]{ grid-column : span var( --span, 12 ); } So funktioniert es dann in HTML: Full Width Wider Container Main Container Wider Container with Custom 1.200px Width 4/12 Columns wide 6/12 Columns wide 2/12 Columns wide 12/12 Columns wide