How to create a page with header, content and footer?
header – main – footer

.body {
display: grid;
/* 2 columns */
grid-template-columns: 9fr auto;
/* 3 rows */
grid-template-rows: 50px auto 50px;
/* row configuration */
grid-template-areas:
/* Full width of "header" area */
"header header"
/* 1st column is "main" area, 2nd column is "chat" area */
"main chat"
/* Full width of "footer" area */
"footer footer";
}
.header{
grid-area: header;
background-color: black;
}
.main {
grid-area: main;
height: 300px;
background-color: maroon;
}
.chat{
grid-area: chat;
background-color: brown;
overflow: auto;
width: 300px;
transition: all 1s;
}
.body:hover .chat {
width: 0px;
}
.footer{
grid-area: footer;
background-color: #222;
}
import styles from './index.module.css'
...
return (
<div className={styles.body}>
<div className={styles.header}>header</div>
<div className={styles.main}>main</div>
<div className={styles.chat}>chat</div>
<div className={styles.footer}>footer</div>
</div>
)
How to create a table?
14 columns with different size, 15px gap between rows
<div
style={{
display: 'grid',
gridTemplateColumns: '25px 5fr repeat(7, 1fr) 60px',
gridRowGap: '15px'
}}
>
{children}
</div>
colspan
<!-- Header -->
<div
style={{
display: 'grid',
gridTemplateColumns: '25px 60px 5fr repeat(7, 1fr) 60px',
gridRowGap: '15px'
}}
>
<!-- 1st column: Margin left 25px -->
<div></div>
<!-- 2nd column: Start on column 2 and span 2 columns (60px col and 5fr col)-->
<div style={{ gridColumn: '2 / span 2'}}></div>
...
</div>
<!-- Body -->
<div
style={{
display: 'grid',
gridTemplateColumns: '25px 60px 5fr repeat(7, 1fr) 60px',
gridRowGap: '15px'
}}
>
<!-- 1st column: Margin left 25px -->
<div></div>
<!-- 2nd column: 60px -->
<div>
...
</div>
<!-- 3rd column: 5fr -->
<div>
...
</div>
...
</div>
Leave a Reply