2012-08-15 46 views
12

Tôi đang cố gắng tìm ra cách tạo tab giỏ hàng sẽ được đặt ở góc bên phải và cũng xoay 90 độ. Xoay vòng tự nhiên trộn lẫn vị trí nhưng có thể có một cách giải quyết khác để gói vào các trình bao gói khác nhau, v.v.vị trí tuyệt đối được xoay phần sang góc phải

Điểm bổ sung nếu không cần xác định chiều rộng. Tôi không quan tâm đến các trình duyệt cũ hơn

+0

http://jsfiddle.net/Dvkgz/ – client

Trả lời

23

Làm thế nào để sử dụng transform-origin? Xem DEMO.

CSS liên quan:

#box { 
    position: relative; 
} 
.bg { 
    right: 40px; /* same as height */ 
    height: 40px; 
    transform: rotate(-90deg); 
    transform-origin: 100% 0; 
    position: absolute; 
    line-height: 40px; /* same as height, for vertical centering */ 
} 
+0

Brilliant wow Tôi chưa bao giờ nhận ra điều đó. Tôi sẽ cho nó đi. CẢM ƠN BẠN! – client

+0

Cảm ơn đề xuất tuyệt vời này! Có mô tả có thẩm quyền về sự hỗ trợ trong các trình duyệt khác nhau cho 'nguồn gốc tranform' không? [Bài viết MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin#Browser_compatibility) hiện chưa hoàn chỉnh. – bfncs

+0

Theo như tôi biết, nó được hỗ trợ trong mọi trình duyệt hỗ trợ biến đổi. http://caniuse.com/#feat=transforms2d – Ana

4

Ana's answer là tuyệt vời và chỉ cho tôi đi đúng hướng, nhưng tôi nhận ra rằng bạn có thể đạt được tác dụng tương tự mà không cần phải thiết lập một cách rõ ràng chiều cao, line-height và vị trí cho phần tử bạn muốn di chuyển - thay vào đó, chỉ cần đặt translate(0, -100%):

body { 
 
    margin: 0; 
 
} 
 

 
#box { 
 
    position: relative; 
 
} 
 

 
.bg { 
 
\t right: 0; 
 
\t padding: 1em; 
 
\t transform: rotate(-90deg) translate(0, -100%); 
 
\t transform-origin: 100% 0; 
 
\t position: absolute; 
 
\t background: #FF1493; 
 
}
<div id="box"> 
 
\t <div class="bg">   
 
\t \t <div class="txt">He's not the Messiah. He's a very naughty boy.</div> 
 
\t </div> 
 
</div>

... và jsFiddle để có biện pháp tốt.

+0

nếu bạn muốn đọc văn bản theo cách khác, chỉ cần thêm .txt {transform: rotate (180deg); } – mtness

+0

có lỗi đánh máy trong đoạn trích và fiddle của bạn, btw - nó phải là lớp, chứ không phải clss – mtness

+0

@mtness Cũng phát hiện - cập nhật! – indextwo

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