HOUSE OF BLOCKS

In-class challenge

by Josh Krauth-Harding

HTML

<div id="container">
  <div class="floor" id="f3">
     <div class="block" id="blk7"></div>
  </div>
  <div class="floor" id="f2">
    <div class="block" id="blk4"></div>
    <div class="block" id="blk5"></div>
    <div class="block"></div>
    <div class="block" id="blk6"></div>
  </div>
  <div class="floor" id="f1">
    <div class="block" id="blk1"></div>
    <div class="block" id="narrow1"></div>
    <div class="block" id="blk2"></div>
    <div class="block" id="narrow2"></div>
    <div class="block" id="blk3"></div>
  </div>
</div>

CSS

* {
  margin: 0;
  padding: 0;
}

body,
html {
  height: 100%;
}

#container {
  width: 100%;
  height: 100%;
  background-color: black;
}

.floor {
  height: 33.333%;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.block {
  height: 100%;
  width: 10%;
  box-sizing: border-box;
  background-color: white;
  transition: .5s;
}

#f2 {
  position: relative;
}

#blk1 {
  left: 0;
  margin-left: 10%;
}

#blk2 {
  border-radius: 100px 100px 0 0;
  bottom: 0;
  width: 35%;
  max-width: 250px;
}

#blk3 {
  margin-right: 10%;
}

#blk4 {
  height: 20%;
  width: 100%;
  bottom: 0;
  position: absolute;
}

#blk5 {
  margin-left: 20%;
  height: 80%;
  
}

#blk6 {
  margin-right: 20%;
  height: 80%;
}

#blk7 {
  width: 100%;
  height: 101%;
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

#narrow1, #narrow2 {
  display: none;
}

@media (max-width: 420px) {
  .block {
    width: 10%;
  }
  
  #f2 {
    display: none;
  }
  
  #f1 {
    height: 66.666%;
  }
  
  #blk2 {
    width: 45%;
  }
  
  #narrow1, #narrow2 {
    display: inline-block;
    width: 5%;
    margin: 0 5px;
  }
  
}

JavaScript

/* No JS necessary */