2012-07-02 3 views
1

동적으로 html을 작성하려고 시도하는 중입니다. 그러면 html이 iframe으로 jquery에 삽입되어 페이지 분할로 인쇄 창이 열립니다.css rotate 및 alignment

ID 목록을 포함하는 세션 변수를 수신하고 있습니다. 각 나는 블록을 만들려면 : 내가 사용하고

<div class="card"> 
    <div class="top-center"> 
     <div class="first-line"> 
      some text 
     </div> 
     <div class="second-line"> 
      some text 
     </div> 
     <div class="second-line"> 
      some text 
     </div> 
    </div> 
    <div class="bottom-center"> 
     <div class="first-line"> 
      some text 
     </div> 
     <div class="second-line"> 
      some text 
     </div> 
     <div class="second-line"> 
      some text 
     </div> 
    </div> 
</div> 

JQuery와 플러그인은 다음과 같습니다 http://www.position-absolute.com/creation/print/. 내가 원하는 무엇

: 돌립니다 텍스트를 90 °

* 
{ 
    margin: 0px; 
    padding: 0px 
} 
.card { 
    -webkit-transform: rotate(90deg); 
    page-break-after:always; 
    /* this is taken from w3schools*/ 
    margin-left:auto; 
    margin-right:auto; 
    width: 70%; 
} 

난 당신이 가로 페이지로이 볼 수도있을 것 같군요 내가 뭘 다음 원하는 것은 당신이 최고 ° 머리 필요한 90을 기울 같다 -center는 왼쪽에 이고 오른쪽 하단은 각 페이지를 접을 때 오른쪽 하단입니다.

각 div 하단/상단은 회전 후 페이지 중간에서세로 및 가로 모두 죽은 것으로 가정됩니다. 내가

이 같은보고해야 CSS를 상기 페이지 설정을 취득하려면 어떻게

: 시작으로, 컨텐츠를 회전 http://goo.gl/lNP8J

+0

두 개의 질문으로 나누어야 할 수도 있습니다. 하나는 내용 회전 용이고 다른 하나는 모달 창 만들기입니다. –

답변

7

, 당신은 transform-origin를 설정해야합니다의 회전 중심으로 사용해야하는 점. 회전 된 요소에 px 또는 em의 고정 너비를 지정해야 할 수도 있습니다 (너비로 %로 시도했을 때 제대로 작동하지 않는 것 같습니다). 그리고 다른 브라우저를 지원하려면 transformtransform-origin에 대한 선택기 접두사의 전체 범위를 사용해야합니다. 다음의 라인을 따라

뭔가 :

-webkit-transform-origin: 0 0; 
-moz-transform-origin: 0 0; 
-ms-transform-origin:  0 0; 
transform-origin:   0 0; 

-webkit-transform: rotate(90deg); 
-moz-transform: rotate(90deg); 
-ms-transform:  rotate(90deg); 
transform:   rotate(90deg); 

편집 :

가 여기에 약간 가까이 할 수있는 단순화 된 버전입니다. 다음 CSS에서는 콘텐츠의 고정 폭 (이 경우 400 픽셀)을 설정하고 회전 된 콘텐츠의 상단 및 왼쪽 간격을 100 픽셀로 설정합니다. 이 예제에서는 컨텐츠를 중앙에 놓으려고하지는 않지만 CSS를 편집하여 배치를 조정할 수 있습니다 (보다 중앙에 배치되도록). 이것은 (회전 내용으로 그렇게 할 특히 방법) 여러 페이지 인쇄를 해결하지 않습니다, 그러나 희망이 올바른 방향으로 단계입니다 :

.card { 
    width: 400px; 
    background-color: #eee; /* Temporary bg color, for testing */ 

    -webkit-transform-origin: 0 0; 
    -moz-transform-origin: 0 0; 
    -ms-transform-origin:  0 0; 
    transform-origin:   0 0; 

    -webkit-transform: translate(100px, 500px) rotate(-90deg); 
    -moz-transform: translate(100px, 500px) rotate(-90deg); 
    -ms-transform:  translate(100px, 500px) rotate(-90deg); 
    transform:   translate(100px, 500px) rotate(-90deg); 
} 

가 여기 jsfiddle demo입니다. 변환 함수에서 500px은 너비에 100px 위쪽 간격을 더한 400px입니다. 폭을 조정하고 필요에 따라 translate() 값을 실험 해보십시오.

콘텐츠의 너비 나 높이에 %를 사용하지 않아야합니다 (최소한 그렇게하지 않으면 훨씬 간단 할 수 있습니다).

+1

sé 당 회전 수는 문제가되지 않으며, 나중에 중심 정렬됩니다.컴퓨터 그래픽에서 회전을 할 때, 일반적으로 요소를 x, y : 0,0으로 변환하면됩니다.이 원점은 원점이라고 가정하고 거기서 회전 한 다음 요소를 다시 원래 위치로 변환합니다. 화면 해상도 등을 고려할 수 없으므로 위치와 비슷한 작업을 수행 할 수있을 것이라고 생각합니다. 절대 값 및 그 다음 50 % 정도의 값을 얻을 수는 있지만 작동하지 않습니다. 또는 추가 정보를 사용할 수 있습니다. 누구나 그것을 기꺼이 제공 할 것입니다. – fogedi

+0

대략 회전하는 컨텐츠 또는 페이지의 크기는 대략 무엇입니까? 고정 폭은 무엇이며, 어떤 경우에는 고정 높이 또는 대략적인 높이가 있습니다 (알아두면 유용 할 수 있습니다)? 내용이 회전하기 전에 수평으로 중앙에 위치합니까? 회전 후에도 내용이 그대로 유지되어야합니까? 그리고 브라우저 뷰포트의 상단에 컨텐츠가 얼마나 가까이 있습니까? (어떤 종류의 수직 오프셋이 있습니까, 아니면 "페이지"맨 위에 있습니까?)? –

+0

페이지 크기는 A4 크기이며 21.0cm x (29.7/2) = 14.85cm이므로 긴면을 따라 접혀 있습니다. 각 div bottom/top은 페이지의 50 % 영역에 가운데가 있어야합니다. 내용은 회전 후에 세로 및 가로 모두 중앙에 있어야합니다. 아마도 풍경이 더 좋은 옵션입니다. – fogedi