9

我在定位旋转的 div 元素时遇到了一些困难。到目前为止,我有:

#side-banner {
transform: rotate(270deg); }

这可以很好地旋转我的 div。但是,我无法将其“固定”到左侧。(IE 通常我会按照以下方式做一些事情:位置固定,左 0px,高度 100%,宽度:随便)。

4

2 回答 2

9

如果您的意思是希望横幅旋转并固定在浏览器窗口的左侧,则可以使用该transform-origin属性。默认情况下,它设置为 50% 50%。这是元素宽度和高度的 50%(元素的中心)。

您可以尝试将原点设置为 0% 0%。这是横幅的左上角,然后围绕该角旋转。现在随着横幅的旋转,原点已成为横幅的左下角。您可以将其固定在浏览器窗口的左侧,如下所示:

#side-banner {
    poition:fixed;
    left:0;
    top:50%;
    width:300px; /* after rotation this is the height */
    margin-top:150px; /* is 50% of width */
    transform: rotate(270deg);
    transform-origin:0% 0%; /* set to the upper-left corner */
    -ms-transform: rotate(270deg); /* IE 9 */
    -ms-transform-origin:0% 0%; /* IE 9 */
    -webkit-transform: rotate(270deg); /* Safari and Chrome */
    -webkit-transform-origin:0% 0%; /* Safari and Chrome */
}

编辑:
如果您希望横幅在旋转后与浏览器窗口的高度相同,可以使用 javascript 或 jQuery 完成。像这样:

var width = $(window).height();
var marginTop = Math.round(width / 2);

$('#side-banner').css({
    'width': width,
    'margin-top': marginTop
});
于 2013-05-15T01:51:56.233 回答
1

我当然希望我可以发表评论,因为我不是 100% 确定我理解您所面临的问题。

我觉得你的问题可以通过将旋转的横幅 div 封装在一个普通的里面来解决,并将容器 div 的位置设置为固定和左:0px。我设置了一个小提琴来向您展示我的意思:

http://jsfiddle.net/q7qgn/1/

HTML:

    <div class="pageContainer">
    <div class="bannerContainer">
        <div class="banner">
            &nbsp;banner
        </div>
        <br/>bannerContainer
    </div>
</div>

CSS:

 .pageContainer{
margin: 0px;
background-color: grey;
width: 400px;
height: 400px;
}

.bannerContainer{
background-color: green;
width: 100px;
height:200px;
position: fixed;
left: 0px;
}

.banner{
background-color: red;
width: 100px;
height: 100px;
transform: rotate(270deg);
-webkit-transform: rotate(270deg);
}

希望这可以帮助!

于 2013-05-15T01:22:26.457 回答