- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在屏幕上为一个元素设置动画,但在 IE11 中,发生了奇怪的事情。 我正在开发中,因此无法共享实时代码。但我创建了一个 fiddle 来重现该问题。
基本上,当我在 @keyframes
中将视口(viewport)宽度又名 vw
与 transform:translateX();
一起用于动画时, IE11 不反射(reflect)动画中 viewport
的宽度。
因此,我创建的 Fiddle 采用位于 viewport
中心的元素:
fiddle :https://jsfiddle.net/Bushwazi/7xe0wy8z/4/
所以在这两种情况下,IE11 都没有为 CSS 动画中的 vw
使用正确的宽度。
HTML:
<!--
The animation on the red block should start half on the screen, pause at the center of the screen and then finish by pausing at the edge of the screen, half of the box off of the screen
-->
<article>
<p>IE11 weirdness when transforming vw inside keyframes</p>
<strong><span>BLOCK</span></strong>
</article>
CSS:
* {
margin: 0;
padding: 0;
}
@-webkit-keyframes movee {
0% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
10% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
40% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
60% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
90% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
100% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
}
@keyframes movee {
0% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
10% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
40% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
60% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
90% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
100% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
}
body {
background-color: #eee;
background-image: -webkit-linear-gradient(left, black 50%, transparent 50.01%);
background-image: linear-gradient(90deg, black 50%, transparent 50.01%);
background-size: 20% 100%;
background-position: 0 0;
font-family: sans-serif;
height: 100vh;
}
article {
position: relative;
height: 100%;
width: 100%;
display: block;
}
p {
width: 100%;
background: #FFF;
text-align: center;
padding: 1em 0;
}
strong {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100px;
width: 100px;
background: red;
border: blue solid 3px;
position: absolute;
top: 50%;
left: 50%;
box-sizing: border-box;
text-align: center;
margin: -50px 0 0 -50px;
-webkit-animation: movee 5.0s linear infinite 0.0s;
animation: movee 5.0s linear infinite 0.0s;
}
最佳答案
根据 caniuse :
In IE 10 and 11, using vw units with 3D transforms causes unexpected behavior
虽然 2D 和 3D 变换不同,但它们很可能在浏览器中由类似的方法处理。所以我会说 VW/VH/VMAX/VMIN 在 IE11 中不支持转换。
你有什么理由不想使用 % 吗?
像这样:
* {
margin: 0;
padding: 0;
}
@-webkit-keyframes movee {
0% {
left: -1%;
}
10% {
left: -1%;
}
40% {
left: 50%;
}
60% {
left: 50%;
}
90% {
left: 101%;
}
100% {
left: 101%;
}
}
@keyframes movee {
0% {
left: -1%;
}
10% {
left: -1%;
}
40% {
left: 50%;
}
60% {
left: 50%;
}
90% {
left: 101%;
}
100% {
left: 101%;
}
}
body {
background-color: #eee;
background-image: -webkit-linear-gradient(left, black 50%, transparent 50.01%);
background-image: linear-gradient(90deg, black 50%, transparent 50.01%);
background-size: 20% 100%;
background-position: 0 0;
font-family: sans-serif;
height: 100vh;
}
article {
border: thin dotted green;
position: relative;
height: 100%;
width: 100%;
display: block;
}
p {
width: 100%;
background: #FFF;
text-align: center;
padding: 1em 0;
}
strong {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100px;
width: 100px;
background: red;
border: blue solid 3px;
position: absolute;
top: 50%;
left: 50%;
box-sizing: border-box;
text-align: center;
margin: -50px 0 0 -50px;
-webkit-animation: movee 5.0s linear infinite 0.0s;
animation: movee 5.0s linear infinite 0.0s;
}
<!--
The animation on the red block should start half on the screen, pause at the center of the screen and then finish by pausing at the edge of the screen, half of the box off of the screen
-->
<article>
<p>IE11 weirdness when transforming vw inside keyframes</p>
<strong><span>BLOCK</span></strong>
</article>
关于CSS3 animation/keyframes, transforming with vw in IE11 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960336/
我在字体、填充和边距大小上使用了 vw。我首先设计手机。在大约 700 像素之前,一切看起来都很好,此时字体开始看起来太大了。 我想确保字体不会变得比指定值大。是否可以设置最大字体大小? 这是我使用
这对我来说是一个很难用谷歌搜索的问题,我只找到了笼统的描述,但并没有解释我的问题。我有一个简单的页面,其中包含用于调整框大小的 css:width=10vw 和 height=10vh。 在页面上,我
根据我的理解,1vw 是视口(viewport)宽度的 1/100,因此在给定的视口(viewport)中有 100vw。但是,当我有两个宽度为 25vw 的 div 时,一个位于距右边缘 25vw
在此代码中,是否有任何简单的方法可以将文本大小从像素更改为 vw? 在 css 中试过 - 没有结果。 const elem = document.querySelector("div"); cons
我正在为自己创建一个作品集网站,我不想为此使用任何外部 UI 库。我想制作一个“容器”,页面左右边缘有 2.5vw 边距。内部内容的宽度为 95vw。当以 800px 测试时,内部内容确实有 760p
如何在上部尺寸上设置带有 vw 单位的 DIV,但确保最小宽度至少为 100 像素? .container { min-width:1000px; width: 85vw; } 不工作
我正在使用 React Bootstrap,并且有一个包含大文本和图像的英雄部分。默认情况下,文本似乎不是响应式的。我已经使用一类“img-fluid”对图像进行了处理。 关于文本,我找到了一种非常简
我正在尝试使页眉标题流畅地缩放到正确的字体大小。从桌面到移动。使用 vw 是正确的方法吗?如果是这样,有人有关于如何完成响应式标题的备忘单吗? .responsive-header { font-
字体大小 和屏幕宽度 之间是否存在数学关系,以便在调整视口(viewport)/窗口宽度大小时不会出现断字? 例如,如果我将段落的字体大小设置为16px,那么该段落的第一行是- Lorem ipsum
我有一个网格 grid-template-columns: 30vw 20vw 30vw; 我想从其中两个宽度中减去一个固定的像素数量,例如我希望第一列的计算宽度为 30vw - 1px。 我想要的是
所以我开始想知道是否有办法使用 vw 调整字母大小的范围?假设我们会: This is our header h1{ font-size:2vw; } 在桌面上字体会很大——而在移动屏幕上会很小。那么
我正在使用 vw 根据打开页面的浏览器放大文本。但是,填充比预期的要大。我希望它恰好位于我页面的右上角,几乎没有填充。 (我尝试了 padding:0px; 但没有结果)。这是一个例子: 在 HTML
我一直在尝试随着宽度的减小而增加 div 的高度。这允许所有文本更好地适应而不是流出。不用js可以实现吗? width: 100%; height: 29vw; Vw 随着宽度的减小而
如何解决不兼容的单位问题? @mixin square-size($size, $min: $size, $max: $size) { $clamp-size: min(max($size, $m
我想更改所有 px 值(例如 padding、margin 和 font-size ) 使用 calc(value/0.2) 函数转换为 vw 值。 怎么可能做到这一点? window.onresiz
定义说 1vw = 1% of viewport width。但我不明白与 font-size 一起使用时是什么意思?例如,如果我设置: h1 { font-size: 10vw; } 我认为如果
定义说 1vw = 1% of viewport width。但我不明白与 font-size 一起使用时是什么意思?例如,如果我设置: h1 { font-size: 10vw; } 我认为如果
我想知道是否有一个字体大小单位可以测量页面宽度和高度的 1%?我认为这会让我更容易,并帮助我做我想做的事情,而不必使用 JavaScript(尽管任何答案都是可以接受的,只要它有效)。如果没有这样的单
这个问题在这里已经有了答案: 100vw causing horizontal overflow, but only if more than one? (8 个答案) 关闭 7 个月前。 如标题所
如何为 #more 留出余量,以便在调整窗口大小时它始终与 #logo 保持相同的距离? 全屏查看下面的代码并调整窗口大小,您会看到从 1 到 2 的距离发生了变化。 感谢您的帮助。 body {
我是一名优秀的程序员,十分优秀!