body{ font-family: 'Lato', 'Open Sans'; font-size: 16px; } div.null{ display: none; } div.period{ display: block; position: relative; left: 10vw; margin-top: 10vw; width: 80vw; height: 54vw; background: red; border: 1px solid black; } div.period > .title{ display: inline-block; position: absolute; margin-top: -1.2em; left: 50%; transform: translateX(-50%); font-size: 1.2em; } div.period > [class^=d]{ display: block; position: absolute; top: 0; left: 0; width: calc( 80vw / 5 - 1px ); height: 100%; border-right: 1px solid black; background-color: #F8F8F8; } div.period > .d1{ left: 20%; } div.period > .d2{ left: 40%; } div.period > .d3{ left: 60%; } div.period > .d4{ left: 80%; border-right: none; width: calc( 80vw / 5 ); } div.period > [class^=d] > .course{ display: block; position: absolute; top: 0; left: 0; width: 100%; height: 0; font-size: 1.2vw; } div.period > [class^=d] > .course > .start{ display: inline-block; position: absolute; top: 1px; left: 1px; } div.period > [class^=d] > .course > .stop{ display: inline-block; position: absolute; bottom: 1px; right: 1px; } div.period > [class^=d] > .course > .container{ display: flex; position: absolute; top: 0; left: 0; width: 100%; height: 100%; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-items: center; } div.period > [class^=d] > .course > .container *{ text-align: center; }