【问题标题】:Zoom or crop a background image instead of stretching it缩放或裁剪背景图像而不是拉伸它
【发布时间】:2016-03-10 13:29:39
【问题描述】:

我有一个背景图片,它占据了浏览器窗口的整个宽度。 这个背景图片应该有一个固定的高度,比如说 500 像素。

我试图让这张图片在其纵横比接近浏览器窗口之一时尽可能完整,然后在某个部分上进行缩放或裁剪 当浏览器窗口变大时,而不是拉伸图像或仅显示图像的一侧。

这是我想要得到的一个例子:

这是一个关于它目前如何工作的小提琴:https://jsfiddle.net/bb61c412/

这是当前的 HTML 代码:

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

<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://bootswatch.com/bower_components/bootstrap/dist/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://bootswatch.com/cosmo/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>

<body>
  <div class="navbar navbar-default navbar-fixed-top ">
    <div class="container">
      <div class="navbar-header">
        <a href="#" class="navbar-brand">website</a>
        <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
          <span class="icon-bar"></span>
        </button>
      </div>
    </div>
  </div>


  <div style="width:100vw; height: 500px; background-image: url(https://upload.wikimedia.org/wikipedia/commons/8/80/Paul_Gauguin_088.jpg); background-repeat: no-repeat;">
  </div>

【问题讨论】:

    标签: javascript jquery html css image


    【解决方案1】:

    正如@theblackgigant 所说,您必须将background-size 属性设置为'enter code herecover。 您还可以设置background-position: bottom center 以具有正确的行为 https://jsfiddle.net/bb61c412/2/

    【讨论】:

      【解决方案2】:

      添加background-size:cover就是这样

      https://jsfiddle.net/bb61c412/1/

      【讨论】:

        【解决方案3】:

        你的代码应该是这样的:

        <!DOCTYPE html>
        <html lang="en">
        
        <head>
          <title>Bootstrap Example</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" href="https://bootswatch.com/bower_components/bootstrap/dist/css/bootstrap.min.css">
          <link rel="stylesheet" href="https://bootswatch.com/cosmo/bootstrap.min.css">
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        </head>
        
        <body>
          <div class="navbar navbar-default navbar-fixed-top ">
            <div class="container">
              <div class="navbar-header">
                <a href="#" class="navbar-brand">website</a>
                <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
                  <span class="icon-bar"></span>
                </button>
              </div>
            </div>
          </div>
        
        
          <div style="width:100vw; height: 677px; background-image: url(https://upload.wikimedia.org/wikipedia/commons/8/80/Paul_Gauguin_088.jpg); background-repeat: no-repeat;background-size:cover">
          </div>
        

        【讨论】: