在以下html示例中,当将chrome窗口高度拖动到1200px以上时,蓝色框消失。 (简化示例)
<html>
<head>
<style type="text/css">
.red_box {
position: fixed;
right: calc(-50vh + 1em);
width: 100vh;
top: calc(50vh - 1.2em);
height: 4.9em;
transform-origin: top;
transform: rotate(-90deg);
background-color: red;
will-change: transform;
}
.blue_box {
width: 60vh;
background: blue;
height: 2em;
}
</style>
</head>
<body>
<div class="red_box">
<div class="blue_box">
</div>
</div>
</body>
</html>
已经在Chrome项目https://bugs.chromium.org/p/chromium/issues/detail?id=935452
中提交了错误我认为这是一个极端的情况?并且需要一些时间才能解决。有人知道解决方法吗?
will-change: transform;
来强制使用一个新层。该错误似乎与浏览器层有关。答案 0 :(得分:0)
从height
CSS中删除.red_box
。
请使用以下代码:
.red_box {
position: fixed;
right: calc(-50vh + 1em);
width: 100vh;
top: calc(50vh - 1.2em);
/*height: 4.9em;*/
transform-origin: top;
transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
background-color: red;
will-change: transform;
}
.blue_box {
width: 60vh;
background: blue;
height: 2em;
}
<html>
<head>
</head>
<body>
<div class="red_box">
<div class="blue_box"></div>
</div>
</body>
</html>