2012-08-15 2 views
12

오른쪽 구석에 위치하고 90도 회전 한 장바구니 탭을 만드는 방법을 알아 내려고합니다. 회전은 자연스럽게 위치를 혼합하지만 어쩌면 다른 포장지 등으로 포장하는 해결 방법이 있습니다 ....절대 위치가 오른쪽 모서리로 회전 된 요소

너비를 정의 할 필요가없는 경우 추가 점. 구식 브라우저는 신경 쓰지 않아요

+0

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

답변

23

transform-origin 어때요? DEMO을 참조하십시오.

관련 CSS :

#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

나는 결코 그것을 깨닫지 못했을 것입니다. 나는 그것을 줄 것이다. 고맙습니다! – client

+0

이 위대한 제안에 감사드립니다! 다른 브라우저에서'tranform-origin'에 대한 지원에 대한 권위있는 설명이 있습니까? [MDN article] (https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin#Browser_compatibility)은 현재 매우 불완전합니다. – bfncs

+0

아는 한, 변환을 지원하는 모든 브라우저에서 지원됩니다. http://caniuse.com/#feat=transforms2d – Ana

4

Ana's answer이 우수하고 올바른 방향으로 절 지적했다,하지만 난 당신이 명시 적 요소의 높이 라인의 높이와 위치를 설정하지 않고도 같은 효과를 얻을 수 실현

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>

: 단지 translate(0, -100%)을 설정하는 대신 - 당신은 이동하려는 좋은 측정을 위해

... 그리고 jsFiddle.

+0

다른 방법으로 텍스트를 읽으려면 .txt {transform : rotate (180deg);를 추가하십시오. } – mtness

+0

스 니펫과 바이올린에 오타가 있습니다. btw - 클래스가되어야하며 clss가 아니어야합니다. – mtness

+0

@mtness 잘 발견되었습니다 - 업데이트되었습니다. – indextwo

관련 문제