我在定位一个旋转的 div 元素时遇到了些困难。目前我已经实现了以下内容:
#side-banner {
transform: rotate(270deg); }
我的div旋转得很好。 但是,我在将其固定到左侧方面遇到了麻烦(通常情况下,我会使用以下方式:position fixed,left 0px,height 100%,width:任意)。
我在定位一个旋转的 div 元素时遇到了些困难。目前我已经实现了以下内容:
#side-banner {
transform: rotate(270deg); }
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
});
HTML:
<div class="pageContainer">
<div class="bannerContainer">
<div class="banner">
banner
</div>
<br/>bannerContainer
</div>
</div>
.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);
}