旋转图像并调整空间

时间:2018-03-09 18:00:10

标签: css image rotation overlap adjustment

我想旋转两个盒子之间的图片(90度)。问题是在这种情况下图片与两个框重叠。

示例1:Wrong formatting

CSS:

x=10
z=x+30

HTML:

.box{
    height:50px;
    width:200px;
    background-color:blue;
}

示例2:Desired formatting

有一个解决方案,但我无法使用它,因为"图像导向"并非所有浏览器(尤其是移动设备)都能识别:

<div class='box'>Top</div>
    <img style='transform: rotate(90deg);' src='https://cdn.pixabay.com/photo/2017/12/10/20/56/feather-3010848_960_720.jpg' width='200px'>
<div class='box'>Bottom</div>

还有其他解决方案,旋转的图像不会与其他元素重叠吗?或者是否有适用于所有浏览器的图像方向的替代方案?

1 个答案:

答案 0 :(得分:0)

如果您希望将图像保留在相对空间(例如受限宽度)中,那么我建议以下内容在图像周围添加div标签,使用before伪选择器根据框创建纵横比最大宽度为1:1&amp;高度,然后将图像绝对定位在其中以围绕中心接入点旋转。请参阅以下代码:

<style type="text/css">
.box{
    height:50px;
    width:200px;
    background-color:blue;
}
.box--image {     
    position:relative;    
    max-width:200px; 
    outline:solid 1px red;
}

.box--image:before {
    content:"";
    display:block; 
    padding-top:100%;
}

.box--image img {    
    left:50%;
    position:absolute;          
    top:50%;
    transform:rotate(90deg) translate(-50%,-50%);
    transform-origin:top left;
    width:200px;
}

<div class="box">Top</div>
    <div class="box--image"><img src="https://cdn.pixabay.com/photo/2017/12/10/20/56/feather-3010848_960_720.jpg" /></div>
<div class="box">Bottom</div>