JSFiddle - React, Tailwind, and code Playground
by saminath_krisna
HTML
<style>
.gridContainer { grid-template-rows: 1fr repeat(1, 3fr) 1fr; }
.topDiv { grid-template-columns: repeat(7, 1fr); }
.topDiv .marker { grid-column: 1 / 2; }
.centerGrid { grid-template-columns: repeat(7, 1fr); }
.bottomDiv { grid-template-columns: repeat(7, 1fr); }
.bottomDiv .marker { grid-column: 1 / 8; }
</style>
<div class = "fractionGridContainer">
<div class = "gridContainer">
<div class = "topDiv">
<div class = "topLabel">1 = 4/4</div>
</div>
<div class = "topDiv">
<div class = "marker">
<div class = "line"></div>
</div>
</div>
<div class = "centerGrid">
<div class = "gridElement filled">1/7</div>
<div class = "gridElement filled">1/7</div>
<div class = "gridElement filled">1/7</div>
<div class = "gridElement">1/7</div>
<div class = "gridElement filled">1/7</div>
<div class = "gridElement filled">1/7</div>
<div class = "gridElement filled">1/7</div>
</div>
<div class = "bottomDiv">
<div class = "marker">
<div class = "line"></div>
</div>
</div>
<div class = "bottomDiv">
<div class = "bottomLabel">7/4</div>
</div>
</div>
</div>
SCSS
.fractionGridContainer {
display: grid;
//grid-template-rows: 1fr 1fr 2fr 1fr;
.topLabel {
justify-self: right;
border: 1px solid red;
}
.gridContainer {
margin: 5px 20px;
display: grid;
grid-gap: 0.8em;
.topDiv {
display: grid;
.marker {
display: grid;
padding: 5px 0px;
border-left: 2px solid black;
border-right: 2px solid black;
.line {
border: 1px solid black;
align-self: center;
}
}
.number {
background-color: white;
text-align: center;
width: 30px;
position: absolute;
top: -25%;
right: 48%;
}
}
.centerGrid {
border: 1px solid black;
display: grid;
.gridElement {
border: 1px solid black;
padding: 10px 2px;
text-align: center;
}
.filled {
background-color: yellow;
}
}
.bottomDiv {
display: grid;
.marker {
display: grid;
border-left: 2px solid black;
border-right: 2px solid black;
.line {
align-self: center;
border: 1px solid black;
align-self: center;
}
}
}
}
.bottomLabel {
justify-self: center;
}
}