我想使用object-fit
CSS 规则。
MSIE 和 MS Edge 浏览器不支持此功能。
虽然有一些适用于 IE 的 polyfill,但据我所知,没有一个适用于 Edge。
例如,Jonathan Neal 的 polyfill fitie可以在 IE 中使用,但不能在 Edge 中使用(至少不在我的机器上)。这是因为 fitie 使用了 MS only JS 对象element.currentStyle
,element.runtimeStyle
这些对象不再在 Edge 浏览器中得到任何支持。但如果我使用window.getComputedStyle(element).getPropertyValue('object-fit')
,Edge 什么也不返回。
那么如何object-fit
在 MS Edge 浏览器中用 JavaScript 获取 CSS rule rule 的值呢?
img = document.getElementById('i');
s = self.getComputedStyle(img);
console.log('object-fit: ', s.getPropertyValue('object-fit'));
console.log('-ms-object-fit: ', s.getPropertyValue('-ms-object-fit'));
div {
width: 400px;
height: 320px;
overflow: hidden;
}
#i {
display: block;
width: 100%;
height: 100%;
-ms-object-fit: cover;
object-fit: cover;
}
div {
box-sizing: border-box;
border: 1px solid gold;
}
div,
p {
font-family: sans-serif;
font-size: 20px;
width: 400px;
margin: 0 auto;
}
<p>img: Has object-fit CSS rule, but does not appear in MS Edge JavaScript log</p>
<div>
<img src="https://dummyimage.com/640x240/333/444.png" id="i" />
</div>
编辑
它必须以某种方式成为可能,因为它没有被完全忽略。
开发者工具显示规则带下划线
奖金问题:
是否有任何适用于 Edge 的对象拟合 polyfill?