w3resource

CSS Properties: How to set a 3D element's base placement

Go to Exercise page

Solution:

HTML Code :

<!DOCTYPE html>
  <html>
  <head>
  <title>How to set a 3D element's base placement</title>
  <style type="text/css">
  .w3r {
  perspective-origin: 50% 50%;
  -webkit-perspective-origin: 50% 50%;
  }
  
  
  .container {
  width: 100px;
  height: 100px;
  margin: 24px;
  border: none;
  }
  .cube {
  width: 100%;
  height: 100%;
  backface-visibility: visible;
  perspective: 300px;
  transform-style: preserve-3d;
  -webkit-backface-visibility: visible;
  -webkit-perspective: 300px;
  -webkit-transform-style: preserve-3d;
  }
  .face {
  display: block;
  position: absolute;
  width: 100px;
  height: 100px;
  border: none;
  line-height: 100px;
  font-family: sans-serif;
  font-size: 60px;
  color: white;
  text-align: center;
  }

.front {
  background: rgba(0, 0, 0, 0.3);
  transform: translateZ(50px);
  -webkit-transform: translateZ(50px);
  }
.back {
  background: rgba(0, 255, 0, 1);
  color: black;
  transform: rotateY(180deg) translateZ(50px);
  -webkit-transform: rotateY(180deg) translateZ(50px);
  }
.right {
  background: rgba(196, 0, 0, 0.7);
  transform: rotateY(90deg) translateZ(50px);
  -webkit-transform: rotateY(90deg) translateZ(50px);
  }
.left {
  background: rgba(0, 0, 196, 0.7);
  transform: rotateY(-90deg) translateZ(50px);
  -webkit-transform: rotateY(-90deg) translateZ(50px);
  }
  .top {
  background: rgba(196, 196, 0, 0.7);
  transform: rotateX(90deg) translateZ(50px);
  -webkit-transform: rotateX(90deg) translateZ(50px)
  }
  .bottom {
  background: rgba(196, 0, 196, 0.7);
  transform: rotateX(-90deg) translateZ(50px);
  -webkit-transform: rotateX(-90deg) translateZ(50px);
  }
</style>
  </head>
  <body>
  <p>w3resource Tutorial</p>
  <div class="container">
  <div class="cube w3r">
  <div class="face front">1</div>
  <div class="face back">2</div>
  <div class="face right">3</div>
  <div class="face left">4</div>
  <div class="face top">5</div>
  <div class="face bottom">6</div>
  </div>
  </div>
</body>
  </html>

Live Demo :

See the Pen perspective-origin-answer by w3resource (@w3resource) on CodePen.


See the solution in the browser

Supported browser

Firefox logo Chrome logo Opera logo Safari logo Internet Explorer logo
YesYesYesYesYes

Go to Exercise page

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

HTML-CSS: Tips of the Day

Why is vertical-align: middle not working on my span or div?

This seems to be the best way - some time has passed since my original post and this is what should be done now:

HTML Code:

<div class="main">
  <div class="inner"> This </div>
</div> 

CSS Code:

.main {
  display: table;
  
  /* optional css start */
  height: 90px;
  width: 90px;
  /* optional css end */
}
        
.inner {
  border: 1px solid #000000;
  display: table-cell;
  vertical-align: middle;
} 

Live Demo:

See the Pen html css common editor by w3resource (@w3resource) on CodePen.