为什么在Laravel中我的背景图像之前要加载白页?

时间:2018-08-30 11:29:29

标签: html css laravel laravel-5

我在Web应用程序的CSS中加载了背景图片,但是问题是在加载图片之前,它首先向我显示了html代码和白色背景的元素? Laravel是这个问题还是有人知道解决方案? 图像的大小也只有

示例: http://559c8451.ngrok.io/login 267Kb,

app.blade.php

<!DOCTYPE html>
<html lang="en">
  <head>

     <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>Master thesis application</title>

   <!-- Jquery --> 


  <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">

      <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous">
</script>
<link rel="stylesheet" type="text/css" href="https://getbootstrap.com/docs/3.3/examples/jumbotron-narrow/">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css">

<!-- Import css file-->

<link href="{{asset('css/app.css')}}" rel="stylesheet" type="text/css"/>


 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>
<!-- Highcharts for normal chart


<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/series-label.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>

-->

<!-- Highcharts for normal tockSchart -->


<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>


  </head>
<script type="text/javascript">

</script>
  <body>
     @include('file.hed')

   @include('file.bar')
<script>
window.onscroll = function() {myFunction()};

var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;

function myFunction() {
  if (window.pageYOffset >= sticky) {
    navbar.classList.add("sticky")
  } else {
    navbar.classList.remove("sticky");
  }
}
</script>
    <div class="container">
     @include('file._info')


    @yield('main')
    </div> <!-- /container -->

 @include('file.down')


  </body>
</html>

app.css       正文{

background: url(/images/images.jpeg) no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;

}

  .container {
            max-width: 940px;
        }
#header{
    height: 120px;
    background-color: #007ab3;
    padding: 20px;
    padding-left: 100px;


}

.navbar {
    position: relative;
    min-height: 30px;
    margin-bottom: 20px;
    border: 1px solid transparent; 
    z-index: 1;
    border-radius: 0;
}

.navbar-inverse{

    background-color: #004666;
}

@media (min-width: 768px){
.navbar-nav>li>a {
    padding-top: 0px; 
    padding-bottom: 0px; 
}}
.navbar-nav>li>a {
    padding-top: 0px; 
    padding-bottom: 0px; 
}
.nav>li>a {
    padding: 0px;
    padding-left: 10px;
    padding-right:10px;
    color: white;
    padding-top: 3px;
    font-weight: 500;
    font-size: 1.2em;
}
.navbar-inverse .navbar-nav>li>a {
    color: white;

}

.tablica{

    float:left;
}
td{
  text-align: center;  
  width: 10%;
}

th{
  font-size: 10px;
}

.table {
    width: 90%;
}

.navbar-toggle {
    position: relative;
    float: right;
    padding: 5px 5px;
    margin-top: 2px;
    margin-bottom: 8px;
    background-color: transparent;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
}


.container>.navbar-header, .container-fluid>.navbar-header, .container>.navbar-collapse, .container-fluid>.navbar-collapse {
    background-color: #004666;
    margin-right: -15px;
    margin-left: -15px;
    position: relative;
    float: none;
}

th{
    text-align: center;
}


.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}

.sticky + .content {
  padding-top: 60px;
}

1 个答案:

答案 0 :(得分:2)

看到白色背景的原因是因为浏览器尚未加载图像本身。可以将其分为两个单独的状态:

  • 首次访问/首次访问将不会在本地缓存背景图像,因此浏览器将需要一些时间来加载背景图像,并且大约250KB的背景不是小图像。尝试对其进行优化。

  • 随后的访问将不会加载您的背景图片,直到加载了您头部中的所有项目,并且据我所知,您已经将所有的javascript代码放在了那里。

我建议您将JS移至页面底部,以便最后加载这些项目。

此外,如果您想完全不显示空白背景,请考虑使用图像预加载器。这里已经有一个关于预加载内容的SO线程:

JavaScript Preloading Images