我正在用HTMl,CSS和JS构建一个记忆卡游戏来练习。这是我到目前为止所做的:https://spomin.krix12.repl.co/正如您所看到的,问号的图像和翻转的卡片的图像被拉伸了一些。下面是它的CSS代码:
.memory-game {
width: 640px;
height: 640px;
margin: auto;
display: flex;
flex-wrap: wrap;
perspective: 1000px;
}
.memory-card {
width: calc(25% - 10px);
height: calc(33.333% - 10px);
margin: 1px;
position: relative;
transform: scale(1);
transform-style: preserve-3d;
transition: transform .5s;
box-shadow: 1px 1px 1px rgba(0,0,0,.3);
}
memory-card
是在memory-game
里面。我如何修复拉伸的图像?在html(我可以提供你的代码,如果需要的话)或css中有问题吗?或者我应该裁剪图像本身到某个比例?我将感谢你的帮助。
2条答案
按热度按时间f87krz0w1#
1.第一个解决方案:
第一列是在
img
的变化中使用div
标记,这可能是一个不可行的解决方案可访问性方面。2.第二种解决方案:
使用flex!(如Hades mentioned below)将
img
放入div
中,然后将div
转换为display: flex;
,并将其内容转换为align-items: center;
。反过来,图像需要一些属性来了解如何渲染width
和height
,您可以根据需要调整这些属性。3.第三个也是最好的解决方案:
让我们使用我们到目前为止学到的知识,并更改大量代码!如果您希望所有代码看起来都像第三个代码,请按照以下步骤操作:
更改CSS:
生成的html将如下所示:
几乎没有任何微小的变化!
最后的想法
6ju8rftf2#
您可以只指定特定的长度或高度(但不能同时指定两者),以防止影像延伸。
您可能希望将图像 Package 在一个div中,该div的大小与parent的大小相同,并将图像居中放置在其中(例如,通过使用flexbox与
justify-content: center;
和align-items: center;
)