javascript - 调整窗口大小时自动将图像适合 div 容器

标签 javascript html css

我需要动态地调整一些 block 的大小以填充窗口调整大小时引起的空白(我认为这可以用 javascript 完成)但是我该怎么做呢?

var txt = "";
txt += "<p>innerWidth: " + window.innerWidth + " px</p>";
txt += "<p>outerWidth: " + window.outerWidth + " px</p>";

document.getElementById("demo").innerHTML = txt;
.container {
  width:100%;
  background:#fff;
  height:300px;
}

.fixed-block {
  float:left;
  height:80px;
  border:solid 2px #000;
  min-width:70px;
  background:#777;
  width:23%;
}
<div class="container">
  <div class="fixed-block">
  </div>
   <div class="fixed-block">
  </div>
   <div class="fixed-bblock">
  </div>
   <div class="fixed-block">
  </div>
   <div class="fixed-block">
  </div>
</div>
<div id="demo"></div>

这里是 jsfiddle

最佳答案

类似的东西?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
    </head>
    <body>

        <div class="container">
          <div class="fixed-block"></div>
          <div class="fixed-block"></div>
          <div class="fixed-block"></div>
          <div class="fixed-block"></div>
          <div class="fixed-block"></div>
        </div>

        <script>
            window.onload = resizeDivs;
            window.onresize = resizeDivs;

            function resizeDivs() {
                var container = document.querySelector('.container');

                // Compute new size:
                var divs = document.querySelectorAll('.fixed-block');
                var divNb = divs.length;
                var divWidth = Math.round(container.clientWidth / divNb) -0.5;
                var divHeight = container.clientHeight;

                // Apply size to the divs
                for(var i=0; i<divNb; i++) {
                    var div = divs[i];
                    div.style.width = divWidth + 'px';
                    div.style.height = divHeight + 'px';
                }
            }
        </script>

        <style>
            body {
                background: lightgrey;
            }

            .container {
                width:100%;
                background:#fff;
                height:300px;
            }

            .fixed-block {
                float:left;
                height:80px;
                box-sizing: border-box;/*important as border should not be added to the size*/
                border:solid 2px #000;
                min-width:70px;
                background:#777;
                width:23%;
            }
        </style>
    </body>
</html>

编辑:在窗口打开时进行轮计算和调整大小的小改进

关于javascript - 调整窗口大小时自动将图像适合 div 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344587/

相关文章:

javascript - jQuery 验证插件 : test value for email pattern?

Javascript:在前缀树中准确找到 10 个以给定前缀开头的单词

javascript - 如何将下一步按钮添加到弹出窗口?

jquery - 如何让我的 Sprite 响应

php - 如何在 PHP 中获取 DIV 的 HTML 内容

html - 如何让 div 在悬停时覆盖 div?

javascript - 在 travis 上测试失败,但通过了本地测试

javascript - Firefox 中的 event.srcElement

html - 两个媒体查询混合使用相同的声明,除了一个是 ipad,另一个是桌面

javascript - 如何从对象 URL 获取文件或 blob?