【发布时间】:2025-11-20 18:00:07
【问题描述】:
我尝试围绕右下角旋转图像,然后使用负边距将其移回原点。
当我这样做时,顶部总是有几个像素的空间,浏览器(IE 和 Chrome)拒绝进一步移动它。如果我将position: absolute 分配给图像,它将被正确定位。
这是一个最小的例子:https://jsfiddle.net/ny0rm75b/
<div>
<img src="http://placehold.it/600x300">
</div>
<div class="fixed">
<img class="fixed" src="http://placehold.it/600x300">
</div>
css:
div{
width:600px;
height: 300px;
box-sizing: content-box;
border: 5px solid orange;
margin: 15px;
}
img{
transform-origin: 600px 300px;
transform: rotate(180deg);
margin-left: -600px;
margin-top: -300px;
}
div.fixed{
position: relative;
}
img.fixed{
position:absolute;
}
为什么position: absolute 会解决这个问题,或者更确切地说,这是什么原因造成的?
【问题讨论】:
-
答案是因为图像需要为
display:block...以考虑空白和行高。 - jsfiddle.net/d3mhdz6c -
修复了这个问题。你能用 display: block in an answer详细说明你的评论吗?
-
图像是内联元素,需要考虑类似于文本的因素。文本基线下通常有空间来说明字符的下降。将图像设置为
display:block会阻止它内联...就像使用position:absolute一样。 - 见*.com/questions/5804256/… -
我明白了,这是有道理的。如果您将此作为答案发布,我会接受。
标签: html css css-transforms