调整图像大小以适应父CSS / Bootstrap

时间:2017-01-20 18:36:08

标签: javascript jquery html css twitter-bootstrap

我有一个html和一个CSS文件,我将body标签的背景设置为background-image: url(..); HTML

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

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=yes">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
    <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="public/css/coreStyleSheet.css">
    <link rel="stylesheet" href="public/css/animate.css">
    <script src="public/js/coreHomePage.js"></script>
    <link rel="stylesheet" href="assests/font-awesome-4.7.0/css/font-awesome.min.css"> </head>

<body>
    <nav class="navbar navbar-light animated fadeInLeft" style="background-color: #C0C0C0 ;">
        <button class="navbar-toggler navbar-toggler-left" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="#navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="lines"></span><span class="lines"></span><span class="lines"></span></button>
        <h1 class="navbar-brand mb-0 move-header">NavBrand</h1>
        <div class="collapse animated fadeInLeft" id="navbarNav">
            <ul class="navbar-nav">
                <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li>
                <li class="nav-item"> <a class="nav-link" href="#">Features</a> </li>
                <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li>
                <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li>
            </ul>
        </div>
    </nav>
    <div class="container"> 
        <div class="row"></div>
    </div>
</body>

</html>

CSS

body {
    background-image: url(../../assests/img/back.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

当我开始调整窗口大小时,真正的问题开始了,图像开始调整好并且当图像调整高度的时间时有很多失真在图像中,一些图像移动,一些保持静止。我可以告诉你,但我无法捕捉屏幕。但是当我在 JSFIDDLE 中运行时,它运行正常。我的代码中有媒体查询,它位于正文标记之后。

PS:使用bootstrap4

1 个答案:

答案 0 :(得分:1)

在保留背景图像的同时调整窗口大小一直对我使用这种语法,特别是使用Bootstrap。

html { 
  background: url(../../assests/img/back.jpg) no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

当窗口调整大小时,这会修复背景并使其居中。