【问题标题】:Rotate image and adjust space旋转图像并调整空间
【发布时间】:2018-08-18 08:51:11
【问题描述】:

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

示例 1:Wrong formatting

CSS:

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

HTML:

<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>

示例 2:Desired formatting

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

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

还有其他解决方案可以使旋转后的图像不与其他元素重叠吗?还是有任何适用于所有浏览器的图像方向替代方案?

【问题讨论】:

  • 你想做什么?
  • 您应该做的第一件事就是将 id 更改为一个类。然后,使用方形图像。
  • 我有不同的图片,而不仅仅是方形图片。请注意,我上面写的是一个非常简化的示例。 (通过单击按钮,用户应该能够将图像旋转 90 度。)此图像在某个区域内,应自动适应旋转后的图像,使图像不重叠。

标签: css image rotation overlap adjustment


【解决方案1】:

如果您希望将图像保持在相对空间中,例如限制宽度,那么我建议您在图像周围添加一个 div 标签,使用 before 伪选择器根据框创建纵横比最大宽度和高度为 1:1,然后在其中绝对定位图像以围绕中心访问点旋转。见以下代码:

<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>

【讨论】:

  • 谢谢,这和我想象的一样。但是,对于一个简单的任务(将图像旋转 90 度)来说,这是很多 CSS 代码。要么?我希望“面向图像”有一个简单的替代方案。
猜你喜欢
  • 2019-07-11
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多