2013-07-26 34 views
6

Tôi đang làm việc trong một cuộc thi nhưng tôi gặp một số khó khăn. Tôi cần phải tạo một khối lập phương (xoay) chỉ sử dụng CSS. Các chỉ HTML code mà tôi phải sử dụng là:Tạo hình khối xoay với CHỈ CSS

<div id="container"> 
    <div id="imasters-cube"> 
    <div class="front"></div> 
    <div class="back"></div> 
    <div class="top"></div> 
    <div class="right"></div> 
    <div class="bottom"></div> 
    <div class="left"></div> 
    </div> 
</div> 

tôi dán một hình ảnh để bạn có thể xem kết quả mà tôi cần:

http://www.sitepor500.com.br/index.php?q=criacao-site-seo&a

Cho đến nay tôi đang sử dụng absoluted yếu tố vị trí tốt để tạo ra 6 khuôn mặt nhưng tôi không có ý tưởng làm thế nào để làm cho nó xoay chỉ sử dụng CSS. Không JS, làm ơn!

Cảm ơn bạn rất nhiều

+0

Điều này quá rộng. Và có rất nhiều hướng dẫn/ví dụ về nó http://cssdeck.com/labs/9avpkiv8vl http://www.paulrhayes.com/2009-07/animated-css3-cube-interface-using-3d-transforms/ http : //cssdeck.com/labs/simple-css3-3d-cube http://www.the-art-of-web.com/css/3d-transforms/#.UfHVDo3rwZw, v.v. –

+0

CẢM ƠN QUÝ VỊ! Tôi nhìn rất nhiều trong các trang web của Brazil không thành công. Tiếng Anh của tôi là xấu đó là lý do tại sao tôi không tìm kiếm bằng tiếng Anh. Nhưng liên kết đầu tiên của bạn có một mẫu tuyệt vời! Cám ơn bạn một lần nữa. – amandanovaes

+0

Hey Sir @Zeaklous Làm thế nào để đánh dấu bạn trả lời là câu trả lời cho vấn đề của tôi? Nó xuất hiện trong bình luận nên tôi không thể chọn của bạn! – amandanovaes

Trả lời

8

Có rất nhiều hướng dẫn/ví dụ cho thấy làm thế nào để làm điều này: Example 1Example 2Example 3Example 4, vv

Kéo từ Ví dụ 2:

.spinner div { 
 
    position: absolute; 
 
    width: 120px; 
 
    height: 120px; 
 
    border: 1px solid #ccc; 
 
    background: rgba(255,255,255,0.8); 
 
    box-shadow: inset 0 0 20px rgba(0,0,0,0.2); 
 
    text-align: center; 
 
    line-height: 120px; 
 
    font-size: 100px; 
 
} 
 

 
.spinner .face1 { 
 
    -webkit-transform: translateZ(60px); 
 
    -ms-transform: translateZ(60px); 
 
    transform: translateZ(60px); 
 
} 
 
.spinner .face2 { 
 
    -webkit-transform: rotateY(90deg) translateZ(60px); 
 
    -ms-transform: rotateY(90deg) translateZ(60px); 
 
    transform: rotateY(90deg) translateZ(60px); 
 
} 
 
.spinner .face3 { 
 
    -webkit-transform: rotateY(90deg) rotateX(90deg) translateZ(60px); 
 
    -ms-transform: rotateY(90deg) rotateX(90deg) translateZ(60px); 
 
    transform: rotateY(90deg) rotateX(90deg) translateZ(60px); 
 
} 
 
.spinner .face4 { 
 
    -webkit-transform: rotateY(180deg) rotateZ(90deg) translateZ(60px); 
 
    -ms-transform: rotateY(180deg) rotateZ(90deg) translateZ(60px); 
 
    transform: rotateY(180deg) rotateZ(90deg) translateZ(60px); 
 
} 
 
.spinner .face5 { 
 
    -webkit-transform: rotateY(-90deg) rotateZ(90deg) translateZ(60px); 
 
    -ms-transform: rotateY(-90deg) rotateZ(90deg) translateZ(60px); 
 
    transform: rotateY(-90deg) rotateZ(90deg) translateZ(60px); 
 
} 
 
.spinner .face6 { 
 
    -webkit-transform: rotateX(-90deg) translateZ(60px); 
 
    -ms-transform: rotateX(-90deg) translateZ(60px); 
 
    transform: rotateX(-90deg) translateZ(60px); 
 
} 
 

 
.spinner { 
 
    -webkit-animation: spincube 12s ease-in-out infinite; 
 
    animation: spincube 12s ease-in-out infinite; 
 
    -webkit-transform-style: preserve-3d; 
 
    -ms-transform-style: preserve-3d; 
 
    transform-style: preserve-3d; 
 
    -webkit-transform-origin: 60px 60px 0; 
 
    -ms-transform-origin: 60px 60px 0; 
 
    transform-origin: 60px 60px 0; 
 
} 
 

 
@-webkit-keyframes spincube { 
 
    16%  { -webkit-transform: rotateY(-90deg);    } 
 
    33%  { -webkit-transform: rotateY(-90deg) rotateZ(90deg); } 
 
    50%  { -webkit-transform: rotateY(180deg) rotateZ(90deg); } 
 
    66%  { -webkit-transform: rotateY(90deg) rotateX(90deg); } 
 
    83%  { -webkit-transform: rotateX(90deg);     } 
 
} 
 
@keyframes spincube { 
 
    16%  { -ms-transform: rotateY(-90deg); transform: rotateY(-90deg); } 
 
    33%  { -ms-transform: rotateY(-90deg) rotateZ(90deg); transform: rotateY(-90deg) rotateZ(90deg); } 
 
    50%  { -ms-transform: rotateY(180deg) rotateZ(90deg); transform: rotateY(180deg) rotateZ(90deg); } 
 
    66%  { -ms-transform: rotateY(90deg) rotateX(90deg); transform: rotateY(90deg) rotateX(90deg); } 
 
    83%  { -ms-transform: rotateX(90deg); transform: rotateX(90deg); } 
 
}
<div id="stage" style="width: 120px; height: 120px;"> 
 
    <div class="spinner"> 
 
     <div class="face1">1</div> 
 
     <div class="face2">2</div> 
 
     <div class="face3">3</div> 
 
     <div class="face4">4</div> 
 
     <div class="face5">5</div> 
 
     <div class="face6">6</div> 
 
    </div> 
 
</div>

+0

loại bỏ điều đó. Nó có thể trông giống như nó sẽ làm tăng khả năng tương thích của bạn, nhưng làm nghiên cứu sme cho những điều tốt lành! Đó là chuyển đổi tiền tố ms chỉ có sẵn trong bản phát hành trước mà thực tế không ai sử dụng nữa. Vì vậy, tất cả những gì đang làm là lãng phí không gian có giá trị trong tệp css của bạn. –

+0

@ 3.1415926535897932384626433833 Tùy thuộc hoàn toàn vào [nền tảng nào bạn muốn hỗ trợ] (http://stackoverflow.com/a/25110511/2065702). Câu trả lời này tìm cách bao gồm * tất cả * trường hợp. Việc chuyển đổi dự phòng có giá trị không phải là "không gian có giá trị" - nó hoàn toàn không đáng kể trừ khi nó thực sự cần thiết (trên các trình duyệt chỉ hỗ trợ các biến đổi '-ms-') –

Các vấn đề liên quan