我找到了使用JavaScript更改元素类的HTML5方法。在没有FOUC的情况下使用JavaScript更改元素上的CSS类
HTML:
<div id="bootstrap-container" class="container-fluid fill-height">
<!-- Content -->
</div>
的JavaScript:
var mql = window.matchMedia('(min-width: 1200px)');
if (mql.matches) {
var containerElement = document.querySelector('#bootstrap-container');
if (containerElement.classList.contains('container-fluid')) {
containerElement.classList.remove('container-fluid');
containerElement.classList.add('container');
}
}
这工作得很好,除了有一个明显的FOUC加载/刷新页面时。
如何使FOUC消失?
我期望任何依赖于JS的样式都可能具有FOUC的可能性,这看起来像只是一个CSS媒体查询(通常不太容易创建FOUC)。 – DBS
同意,但在这种情况下,引导程序中的内置容器类包含很多样式,这些样式必须在样式表的媒体查询块中被重写,并且这不是一件容易的事情。 – PussInBoots
@DBS一般来说你是对的,但有一些(有效的)案例/逻辑,媒体查询无法涵盖。 – MattDiMu