1 740 Codepen

Адаптивное здание на CSS

При изменении окна браузера горизонтальное здание перестроится в небоскреб.


HTML

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">

<div class="wrap">

  <div>
    <div id="building">

      <div class="roof">
        <div class="layer-1"></div>
        <div class="layer-2"></div>
      </div>

      <div class="wall">

        <div class="floors floor-2">
          <div class="window window-1">
            <div class="pane"></div>
            <div></div>
          </div>
          <div class="window window-2">
            <div class="glass"></div>
            <div>
              <span class="glare"></span>
            </div>
          </div>
          <div class="window window-3">
            <div class="glass"></div>
            <div>
              <span class="glare"></span>
            </div>
          </div>
        </div>

        <div class="floors floor-1">
          <div class="window window-1">
            <div class="glass"></div>
            <div>
              <span class="glare"></span>
            </div>
          </div>

          <div class="window window-2">
            <div class="glass"></div>
            <div>
              <div class="pot">
                <div class="leaves"></div>
              </div>
            </div>
          </div>

          <div class="window window-3">
            <div class="pane"></div>
            <div></div>
          </div>

        </div>

        <div class="basement">

          <div id="door">
            <div class="ventilation">
              <div class="glass"></div>
            </div>
            <div class="main">
              <div class="glass">
              </div>
              <div class="glass">
                <span class="knob"></span>
              </div>
            </div>
            <div class="bar"></div>
            <div class="bottom">
              <span></span>
              <span></span>
            </div>
          </div>

          <div id="main-window">
            <div class="cloth">
              <ul>
                <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>                 <li></li><li></li><li></li><li></li>
              </ul>
            </div>
            <div class="window">
              <div class="glass">
              </div>
            </div>
          </div>

        </div>

      </div>
    </div>

  </div>
  
</div>

CSS

html, body {
  padding: 0;
  margin: 0;
  font-family: 'Lato', sans-serif;
}

h3 {
  text-align: center;
}

a {
  color: rgba(0, 0, 0, 0.5);
  text-decoration: none;
}
a:hover {
  color: black;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.wrap {
  width: 100%;
  min-height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 50px 0;
  background: #89d3d9;
}

#building {
  width: 215px;
  margin: 0 auto;
  -webkit-transition: .22s width linear;
  -o-transition: .22s width linear;
  transition: .22s width linear;
}

.roof span {
  background: #bfbfa2;
  border: 5px solid #1b3957;
  margin: 0 auto;
}
.roof .layer-1, .roof .layer-2 {
  width: 100%;
  height: 17px;
  position: relative;
  margin: 0 auto;
}
.roof .layer-1::before, .roof .layer-2::before {
  content: '';
  width: 52%;
  height: 10px;
  border: 7px solid #1b3957;
  border-right: none;
  position: absolute;
  top: 0;
  left: 2px;
  -webkit-transform: skew(10deg);
  -ms-transform: skew(10deg);
  transform: skew(10deg);
  -webkit-box-shadow: -1px 0px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: -1px 0px 0 1px rgba(0, 0, 0, 0.15);
  background: #bfbfa2;
}
.roof .layer-1::after, .roof .layer-2::after {
  content: '';
  width: 52%;
  height: 10px;
  border: 7px solid #1b3957;
  border-left: none;
  position: absolute;
  top: 0;
  right: 2px;
  -webkit-transform: skew(-10deg);
  -ms-transform: skew(-10deg);
  transform: skew(-10deg);
  background: #bfbfa2;
  -webkit-box-shadow: 3px 0px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 3px 0px 0 1px rgba(0, 0, 0, 0.15);
}
.roof .layer-2 {
  width: 90%;
  height: 17.5px;
}

@media screen and (min-width: 750px) {
  #building {
    width: 715px;
  }

  .wall {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: 'row';
    flex-direction: 'row';
  }
  .wall > div {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
  }
}
.wall {
  background: #f5865e;
  width: 87%;
  border: 5px solid #1b3957;
  margin: 0 auto;
}
.wall .floors {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  padding: 20px;
}
.wall .floors .window {
  width: calc(33.333333% - 10px);
  height: 100px;
  border: 4px solid #1b3957;
  border-bottom: 12px solid #1b3957;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-shadow: 0 5px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 5px 0 1px rgba(0, 0, 0, 0.15);
  background: #fff;
}
.wall .floors .window > div {
  height: 50%;
  width: 100%;
  position: relative;
}
.wall .floors .window > div:first-child {
  border-bottom: 4px solid #1b3957;
  -webkit-box-shadow: 0 3px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 0 1px rgba(0, 0, 0, 0.15);
}
.wall .floors .window > div.pane {
  background: #bfbfa2;
}
.wall .floors .window > div.pane::before {
  content: '';
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 2px;
  height: 30px;
  background: #1b3957;
}
.wall .floors .window > div.pane::after {
  content: '';
  position: absolute;
  top: calc(100% + 30px);
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 5px;
  height: 8px;
  background: #1b3957;
}
.wall .floors .window > div .pot {
  position: absolute;
  height: 20px;
  width: 20px;
  bottom: 0;
}
.wall .floors .window > div .pot::before {
  content: '';
  position: absolute;
  bottom: 0;
  width: 6px;
  height: 10px;
  left: 3px;
  -webkit-transform: skew(10deg);
  -ms-transform: skew(10deg);
  transform: skew(10deg);
  border: 2px solid #1b3957;
  border-right: none;
  background: #f5865e;
}
.wall .floors .window > div .pot::after {
  content: '';
  position: absolute;
  right: 3px;
  bottom: 0;
  width: 6px;
  height: 10px;
  -webkit-transform: skew(-10deg);
  -ms-transform: skew(-10deg);
  transform: skew(-10deg);
  border: 2px solid #1b3957;
  border-left: none;
  background: #f5865e;
}
.wall .floors .window > div .pot .leaves::before {
  content: '';
  position: absolute;
  border-radius: 50px;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 12px;
  height: 2.5px;
  left: -0px;
  top: 0;
  background: #68a694;
}
.wall .floors .window > div .pot .leaves::after {
  content: '';
  position: absolute;
  border-radius: 50px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  width: 12px;
  height: 2.5px;
  right: -0px;
  top: 0;
  background: #68a694;
}
.wall .floors .window > div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.wall .floors .window > div .glare {
  width: 30px;
  height: 2.1px;
  display: block;
  background: #89d3d9;
  border-radius: 10px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: relative;
}
.wall .floors .window > div .glare::before {
  content: '';
  position: absolute;
  width: 8px;
  height: 1.5px;
  top: 6px;
  border-radius: 10px;
  left: -3px;
  background: #89d3d9;
}
.wall .floors .window > div .glare::after {
  content: '';
  position: absolute;
  width: 15px;
  height: 1.5px;
  top: 6px;
  right: 5px;
  border-radius: 10px;
  background: #89d3d9;
}

.basement {
  padding: 20px 20px 0 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

#door {
  width: 37%;
  background: #fff;
  border: 4px solid #1b3957;
  margin-bottom: -3px;
}
#door .ventilation {
  padding: 4px 5px;
  background: #bfbfa2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  border-bottom: 4px solid #1b3957;
  -webkit-box-shadow: 0 8px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 8px 0 1px rgba(0, 0, 0, 0.15);
}
#door .ventilation .glass {
  width: 100%;
  height: 13px;
  background: #fff;
  border: 2px solid #1b3957;
  border-radius: 10px 10px 0 0;
}
#door .main {
  padding: 8px 0 0 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}
#door .main .glass {
  width: calc(50% - 8px);
  height: 50px;
  background: #89d3d9;
  border: 2px solid #1b3957;
  border-top: 3px solid #1b3957;
  border-bottom: 3px solid #1b3957;
  position: relative;
}
#door .main .glass::before {
  content: '';
  position: absolute;
  width: 10px;
  height: 1.5px;
  top: 40%;
  border-radius: 10px;
  left: 0;
  right: 0;
  margin: 0 auto;
  background: #fff;
  -webkit-transform: rotate(-50deg);
  -ms-transform: rotate(-50deg);
  transform: rotate(-50deg);
}
#door .main .glass::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 1.5px;
  top: calc(40% + 10px);
  left: 0;
  right: 0;
  margin: 0 auto;
  border-radius: 10px;
  background: #fff;
  -webkit-transform: rotate(-50deg);
  -ms-transform: rotate(-50deg);
  transform: rotate(-50deg);
}
#door .main .glass .knob {
  width: 3px;
  height: 3px;
  background: #f5865e;
  position: absolute;
  bottom: 5px;
  right: 2px;
}
#door .bar {
  width: 70%;
  height: 2px;
  border-radius: 5px;
  background: #1b3957;
  margin: 5px auto;
}
#door .bottom {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  padding-bottom: 8px;
}
#door .bottom span {
  width: calc(50% - 8px);
  height: 17px;
  border: 2px solid #1b3957;
}

ul, li {
  padding: 0;
  margin: 0;
  list-style-type: none;
}

#main-window {
  width: 50%;
  height: 85px;
  border: 4px solid #1b3957;
  background: #fff;
  -webkit-box-shadow: 0 7px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 7px 0 1px rgba(0, 0, 0, 0.15);
}
#main-window .cloth ul {
  background: #bfbfa2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  border-bottom: 3px solid #1b3957;
  -webkit-box-shadow: 0 7px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 7px 0 1px rgba(0, 0, 0, 0.15);
}
#main-window .cloth ul li {
  width: 2px;
  height: 22px;
  background: #fff;
  position: relative;
}
#main-window .cloth ul li::before {
  content: '';
  position: absolute;
  -webkit-box-shadow: 0 2px 0 1px rgba(0, 0, 0, 0.15);
  box-shadow: 0 2px 0 1px rgba(0, 0, 0, 0.15);
  border-radius: 100px;
  width: 3px;
  height: 3px;
  background: #1b3957;
  bottom: -5px;
}
#main-window .window {
  height: 48px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  padding: 0 4px 0 4px;
}
#main-window .window .glass {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  background: #89d3d9;
  border: 2px solid #1b3957;
  border-top: none;
}

.evilhead {
  width: 100%;
  color: #1b3957;
}

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи