2012-07-02 54 views
1

在尝试动态创建HTML,然后注入自己作为一个iframe到jQuery的打开与pagebreaks打印窗口。CSS旋转和调整

我收到一个包含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°顶部 - 中心是左侧 ,底部中心是右侧,因为您可以通过短边折叠每页。

每个格底/顶部应该旋转 后,在页面的中间死了垂直和水平。

如何取得上述页面设置与CSS

应该是这个样子: http://goo.gl/lNP8J

+0

这可能需要分成2个问题:一个用于旋转内容,另一个用于创建模态窗口。 –

回答

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中,我为内容设置了一个固定的宽度(在这种情况下为400px),并强制旋转内容的顶部和左侧间距为100px。在这个例子中,我并不试图将内容居中,但可以通过编辑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。在翻译功能中,500px400px,宽度加上100px顶部间距。根据需要调整宽度和translate()值以对其进行实验。

您可能必须避免使用%,持续宽度或内容的高度(或至少,它可能是简单得多,如果你能避免这样做)。

+1

每秒的旋转不是问题,它是之后的中心对齐。在计算机图形中进行旋转时,通常会将元素转换为x,y:0,0,我认为原点是要做的,然后在那里旋转,然后将元素转换回原来的位置。 我无法解释屏幕分辨率等,所以我认为我可以做一些像position:absolute,然后是右边的50%或者那里左右,但是这不起作用,我可以真的使用额外的信息,如果你任何人都愿意提供它 – fogedi

+0

大致或准确地说,您旋转的内容或页面的大小是多少?什么是固定宽度,并且有可能有一个固定的或近似的高度(以防万一它有助于知道)?内容在旋转之前水平居中并且在旋转之后应该保持这样。内容与浏览器视口顶部的距离有多近? (是否存在某种垂直偏移量,还是位于“页面”的顶部)? –

+0

页面尺寸为A4,沿着长边折叠,因此21.0cm x(29.7/2)= 14.85cm。 每个div底部/顶部应位于页面的单独50%区域的中心。 旋转后,内容应垂直居中和水平居中。 也许风景是一个更好的选择。 – fogedi