Html 在Safari中忽略Css图像相对位置
我有一个图像库,结构如下(简化): 图像的大小和比率可能会有所不同,因此我不能依赖Html 在Safari中忽略Css图像相对位置,html,css,Html,Css,我有一个图像库,结构如下(简化): 图像的大小和比率可能会有所不同,因此我不能依赖填充技巧来获得纵横比 在Chrome中,这是图库的外观: 在Safari中,这就是问题所在: 下面是一支笔来说明这个问题: 我是不是忘了/错过了什么 编辑:问题似乎与Safari中的align items:stretch可能无法正常工作(或被忽略?)有关 编辑:我正在使用Safari 10.0.3 .gallery-item-link img { display: block; max-width: 100
填充
技巧来获得纵横比
在Chrome中,这是图库的外观:
在Safari中,这就是问题所在:
下面是一支笔来说明这个问题:
我是不是忘了/错过了什么
编辑:问题似乎与Safari中的align items:stretch
可能无法正常工作(或被忽略?)有关
编辑:我正在使用Safari 10.0.3
.gallery-item-link img {
display: block;
max-width: 100%;
position: relative;
left: 50%;
transform: translateY(-50%);
}
你把x&y的方向弄错了。它应该是translateX而不是Y。请尝试以下操作:
.画廊项目链接{
.gallery-item-link img {
position: relative;
display: block;
max-width: 100%;
top: 50%;
left: 50%;
transform: translate(-50% -50%);
}
}我以前遇到过这个问题。可能是因为当父元素没有像“px”这样的指定高度时,“相对”图像无法获得50%的高度 这里有另一种方法来做你想做的…sry我无法修复你的“亲戚”问题
display: block;
max-width: 100%;
position: relative;
top : 50%;
left: 50%;
transform: translate(-50% -50%);
我尝试使用display:table cell;垂直对齐:中间对齐代码>用于产生不可预测的结果并且看起来非常粗糙的图像
我最终通过为图像容器使用flexbox
解决了这个问题:
&__item__link {
display: block;
height: 100%;
white-space:nowrap;
text-align:center;
text-decoration: none;
&::after{
content:'';
display:inline-block;
vertical-align:middle;
height:100%;
}
img {
display:inline-block;
vertical-align:middle;
max-height: 100%;
// position: relative;
// @include center-all;
transform-origin: bottom left;
@include transition;
&:hover {
opacity: .8;
}
}
我在这里更新了笔:
在最新的Chrome、Safari(桌面和iOS)、Firefox、MS Edge和IE11上进行了测试。我更新了笔。这个建议似乎没有改变任何东西。您使用的safari版本是什么?它可能与转换原点有关:左下角;css规则。将其注释掉或更改为变换原点:左上角;我错了x&y的哪个方向?检查我的笔,我有translateX(-50%)translateY(-50%)
。
&__item__link {
display: block;
height: 100%;
white-space:nowrap;
text-align:center;
text-decoration: none;
&::after{
content:'';
display:inline-block;
vertical-align:middle;
height:100%;
}
img {
display:inline-block;
vertical-align:middle;
max-height: 100%;
// position: relative;
// @include center-all;
transform-origin: bottom left;
@include transition;
&:hover {
opacity: .8;
}
}
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;