我找到了使用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