CSS CSS Transitions and Transforms Adding 3D Effects with CSS Build a Rotating 3D Cube

Daniel Sarmiento
Daniel Sarmiento
9,795 Points

I just preview my workspace and saw that the imgs are outside the cube and really big. Is it suppose to be like that?

This is the workspace preview

http://imgur.com/dKiqPpn

And this is how it's displayed at the beggining of the video

http://imgur.com/a/cp228

This is the index.html

<!DOCTYPE html>
<html>
<head>
    <title>3D Transform Gallery</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="css/main.css">
    <link rel="stylesheet" href="css/interactions.css">
</head>
<body>
    <div class="container">
        <header class="main-header clearfix">
            <img class="logo" src="img/camera.svg">
            <h1 class="name">3DTransform <span>Gallery</span></h1>
        </header>

        <div class="content clearfix">

            <div class="cube-container">
                <div class="photo-cube">

                    <img class="front"src="img/photos/1.jpg" alt="">
                    <div class="back photo-desc">
                      <h3>Earth from Space</h3>
                      <p>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
                        <a href="#" class="button">download</a>
                    </div>
                    <img class="left" src="img/photos/2.jpg" alt="">
                    <img class="right" src="img/photos/3.jpg" alt="">

                </div>
            </div>  

            <div class="cube-container">
                <div class="photo-cube">

                    <img class="front"src="img/photos/4.jpg" alt="">
                    <div class="back photo-desc">
                      <h3>Space Images</h3>
                      <p>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
                        <a href="#" class="button">download</a>
                    </div>
                    <img class="left" src="img/photos/5.jpg" alt="">
                    <img class="right" src="img/photos/6.jpg" alt="">

                </div>
            </div>  

            <div class="cube-container">
                <div class="photo-cube">

                    <img class="front"src="img/photos/7.jpg" alt="">
                    <div class="back photo-desc">
                      <h3>The Milky Way</h3>
                      <p>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
                        <a href="#" class="button">download</a>
                    </div>
                    <img class="left" src="img/photos/8.jpg" alt="">
                    <img class="right" src="img/photos/9.jpg" alt="">

                </div>
            </div>  

        </div>
    </div>
</body>
</html>

This in the main.css

/* ================================= 
  Base Element Styles
==================================== */

* {
    box-sizing: border-box;
}
body {
    font: 1em/1.5 'Open Sans', sans-serif;
    color: #373737;
    background: #eaeaea;
    margin: 0;
}
a {
    text-decoration: none;
}
h1,
h2,
h3 {
    text-transform: uppercase;
}
h2 {
    font-size: 1.125em;
    color: #4a89ca;
    font-weight: 600;
    margin: 0;
}
h3 {
    font-size: 1.3em;
    line-height: 1.25em;
    margin-top: .85em;
    margin-bottom: .5em;
}
p {
    font-size: .875em;
    line-height: 1.4;
    margin: 0 0 1.5em;
}

/* ================================= 
  Base Layout Styles
==================================== */

/* ---- Layout Containers ---- */

.container,
.content {
    margin: auto;
}
.container {
    width: 94.02985075%;
    max-width: 1260px;
    padding: 0 2.25em 4em;
    background: #fff;
}
.main-header {
    text-align: center;
    padding: 2.8em 0 3.8em;
}
.cube-container {
    max-width: 200px;
    text-align: center;
    margin: 0 auto 4.5em;
}
/* ---- Page Elements ---- */

.name {
    font-size: 1.65em;
    font-weight: 800;
    margin: 0 0 1.5em;
    line-height: 1;
}
.name span {
    font-weight: 300;
    margin-left: -7px;
}
.logo {
    width: 45px;
    margin-bottom: .4em;
    cursor: pointer;
}
.button {
    font-size: .8em;
    color: #fff;
    width: 90%;
    line-height: 1.15;
    font-weight: 700;
    display: block;
    text-decoration: none;
    text-transform: uppercase;
    padding: .95em 0;
    border-radius: .5em;
    background: rgba(74,137,202, .8);
    margin: auto;
}
/* ---- Photo Overlay ---- */

.photo-desc {
    font-size: .85em;
    color: #fff;
    padding: 1.1em 1em 0;
    background: #345d88;
}
/* ---- Float clearfix ---- */

.clearfix::after {
    content: " ";
    display: table;
    clear: both;
}

/* ================================= 
  Media Queries
==================================== */

@media (min-width: 769px) {
    .cube-container {
        float: left;
        margin-left: 16.6%;
    }
}
@media (min-width: 1025px) {
    .cube-container:first-child {
        margin-left: 0;
    }
    .cube-container:last-child{
        float: right;
    }
    .content {
        max-width: 900px;
        margin: auto;
    }
}

And this is interactions.css

/* =================================
  Button Transitions
==================================== */

.button {
    transition: background .3s;
}
.button:hover {
    background: rgba(74,137,202, 1);
}

/* =================================
  Photo 3D Transforms & Transitions
==================================== */

.cube-container {
    box-shadow: 0 18px 40px 5px rgba(0,0,0,.4);
    perspective: 800px;
}

.photo-cube {
    transition: transform 2s ease-in-out;
    width: 220px;
    height: 200px;
    transform-style: preserve-3d;
}

.photo-cube:hover {
    transform: rotateY(-270deg);
}
Steven Parker
Steven Parker
170,254 Points

For an issue like this, we might need access to the images as well as the code to a complete analysis. You can make a code snapshot (not a photo) of your workspace and post the link to it here.

1 Answer

Yes it's supposed to be like that when you first launch the workspace. This is because there are no styles for the images originally. This is because we style the images a few minutes into the video.