有人能告诉我为什么盒子底部会出现未知的边距/填充物?请看看你是否可以调查并帮助我。我还希望图像最初放大,然后在旋转之前和旋转之后以比例= 1放大,它将再次放大。
* {
margin: 0;
padding: 0;
}
body {
background-color: #f9cf47;
}
.box {
width: 50%;
height: auto;
margin: 0 auto;
overflow: hidden;
border: 1px solid red;
}
.box p {
margin: 0;
}
img {
width: 100%;
}
.rotate-img {
position: relative;
animation-name: rotation;
-webkit-animation: rotation 1s linear 1;
-moz-animation: rotation 1s linear 1;
animation: rotation 1s linear 1;
animation-delay: 3s;
animation-fill-mode: forwards;
}
/* Safari 4.0 - 8.0 */
@-webkit-keyframes rotation {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(180deg);
}
}
/* Standard syntax */
@keyframes rotation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(180deg);
}
}
<div class="box">
<img class="rotate-img" src="http://via.placeholder.com/350x150" />
</div>
答案 0 :(得分:0)
因为在该框中,您有一个内嵌元素img
,默认情况下与baseline
对齐...所以您需要对图像使用vertical-align: top
以消除间隙。 ..
如果您将border
应用于该图片而不是框,则不会看到任何差距......
此外,您需要使用一些关键帧时序来实现结果
* {
margin: 0;
padding: 0;
}
body {
background-color: #f9cf47;
}
.box {
width: 50%;
height: auto;
margin: 0 auto;
overflow: hidden;
border: 1px solid red;
}
.box p {
margin: 0;
}
img {
vertical-align: top;
width: 100%;
}
.rotate-img {
position: relative;
animation-name: rotation;
animation: rotation 2s linear 1;
animation-fill-mode: forwards;
}
@keyframes rotation {
0% {
transform: rotate(0deg) scale(2);
}
33% {
transform: rotate(0deg) scale(1);
}
66% {
transform: rotate(180deg) scale(1);
}
100% {
transform: rotate(180deg) scale(2);
}
}
&#13;
<div class="box">
<img class="rotate-img" src="http://via.placeholder.com/350x150" />
</div>
&#13;