使用Laravel5和Bootstrap4建立网站。
我得到一个FOUC,页面的简短宽度为宽度的1/5,然后扩展为实际宽度。
原因似乎与我如何使用容器流体有关。 我正在使用“容器流体”,因为我想在主页面的左侧有一个垂直的左侧边栏。 在一个简单的页面上,代码如下:
<div class="container-fluid px-0">
<div class="d-lg-flex flex-lg-row justify-content-center ">
@yield('left_side')
<div class="col-12 col-lg-10 col-xl-10 custom-width">
<div class="container">
<div class="row justify-content-center" >
<div class="col-12">
<div class="card page_card" >
<div class="mx-auto" style="min-height: 70vh">
<p> example..</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
在移除侧边栏并使用“容器”而不是容器流体时,页面加载后,显示器将以正确的宽度显示。
更正
这与宽度变化无关。简而言之,这是我的侧栏,中间居中空白,主页面垂直对齐,然后将两部分水平对齐
加法1-我的FOUC错误的GIF
以下是FOUC的示例:
FOUC似乎是由我在包含导航栏的顶部栏中插入的“ Google Ad” -div(黄色)引起的。一些网站的广告显示在导航栏上方,因此可以这样做。有任何线索吗?
<!-- for navigation and title on screen < lg -->
<nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark navbar-fixed-top d-lg-none">
<div class="container">
<div class="row" >
<div class="col-2">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMain" aria-controls="navbarsMain" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsMain">
<ul class="navbar-nav mr-auto" style="width: 200px">
<li class="{{Request::is('/') ? 'active' : ''}} nav-item">
<a class="nav-link">AAA </a>
</li>
<li class="{{Request::is('sentiment') ? 'active' : ''}} nav-item">
<a class="nav-link" >BBB</a>
</li>
<li class="{{Request::is('exchanges') ? 'active' : ''}} nav-item">
<a class="nav-link" >CCC</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</nav>
<div class="top-bar d-lg-none">
<hr class="divider-under-title mt-0 d-lg-none" />
<div class="container">
<div class="row justify-content-center" >
<div class="col-12">
<div class="top-ad d-none d-sm-block">
<script async defer src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- top-ad2 when removed, FOUC disappears -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-66666"
data-ad-slot="44444"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script async defer>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>
<div class="col-12">
<!--<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">-->
<div class="ad_block_message_id">
Oh nasty adblocker. <i class="em em---1"></i>
</div>
</div>
</div>
</div>
</div>
<!-- for market segment on screen >= lg -->
<div class="top-large-bar d-none d-lg-block">
<!-- for Title on screen >= lg -->
<div class="row">
<div class="col-lg-12">
<h1 id="title" class="d-none d-lg-block">
<a class="deco-none" href="/">TEST</a><sup><code class="code_sup_text"></code></sup>
</h1>
</div>
</div>
<div class="container">
<div class="row justify-content-center" >
<div class="col-12">
<div class="top-ad d-none d-sm-block">
<script async defer src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- top-ad2 when removed, FOUC disappears -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-666666"
data-ad-slot="444444"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script async defer>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>
<div class="col-12">
<!--<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">-->
<div class="ad_block_message_id">
Oh nasty adblocker. <i class="em em---1"></i>
</div>
</div>
</div>
</div>
</div>
<!-- for navbar on screen >= lg -->
<nav class="navbar sticky-top navbar-expand-lg navbar-dark bg-dark navbar-fixed-top d-none d-lg-block mb-2">
<div class="container">
<a class="navbar-brand" href="/">{{ config('app.name') }}</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMain" aria-controls="navbarsMain" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsMain">
<ul class="navbar-nav mr-auto">
<li class="{{Request::is('/') ? 'active' : ''}} nav-item">
<a class="nav-link" >AAAA <</a>
</li>
<li class="{{Request::is('sentiment') ? 'active' : ''}} nav-item">
<a class="nav-link" >BBBBB</a>
</li>
<li class="{{Request::is('exchanges') ? 'active' : ''}} nav-item">
<a class="nav-link" >CCCCC</a>
</li>
</ul>
</div>
</div>
</nav>
答案 0 :(得分:0)
听起来您的网站上发生了其他事情,这导致了FOUC,而且与样式无关。你的风格对我来说不错。
如果是样式问题,那是因为在加载样式表之前先加载了HTML。因此,除非您在页脚中有样式表,否则我认为这不是问题。
我的最佳猜测是,您有一些Javascript对在左列中产生的内容进行了某些处理-并且在加载页面时还没有完成。如果是这样,-那么您可以通过在JavaScript中添加一个占位符直到内容加载完成来解决该问题,-或在整个站点上设置一个预加载器。
为了证明/反驳这一理论,您可以从您的站点中删除所有脚本,而只需在左侧列中(暂时)插入som标准HTML,以查看是否已加载了FOUC。
答案(和GIF)
感谢您的阐述。
我首先看到的是,您有< lg content
和>= lg content
的内容。我不会那样做。只要浏览器大小更改,只需修改一次即可。它易于维护,并且可以减少错误。另外(当前),您有两次data-target="#navbarsMain"
。
但这是给您带来问题的代码:
<div class="container">
<div class="row justify-content-center" >
<div class="col-12">
@include('inc.ad_top') <-- when removed, FOUC disappears
</div>
<div class="col-12">
@include('inc.ad_block_message')
</div>
</div>
</div>
我不知道@include('inc.ad_top')
中正在发生什么。但是,如果这正在拉动某些内容,则在页面加载时,这可能是问题的根源,因为直到加载该页面之后才拉动该内容。在这种情况下,它只会显示一个空白的col-12
容器(高度为0px)。
要调试,您可以更改以下内容:
<div class="col-12">
@include('inc.ad_top') <-- when removed, FOUC disappears
</div>
对此:
<div class="col-12" style="min-width: 500px; width: 100%; min-height: 500px; height: auto; display: block; overflow: hidden;">
@include('inc.ad_top') <-- when removed, FOUC disappears
</div>
...,看看会为您带来什么。