<style>
  * {
    margin: 0;
    padding: 0;
  }

  .box {
    display: flex;
    align-items: flex-end;
    width: 1200px;
    height: 200px;
    border: 3px solid skyblue;
    margin: 100px auto;
  }

  .box div {
    /* border: solid 1px skyblue; */
    background-color: salmon;
    height: 100px;
  }
</style>
<body>
  <div class='box'>
  </div>
</body>
<script>
  let num = prompt('输入柱状图数量')
  let box = document.querySelector('.box')
  let boxW = box.clientWidth
  let sumNum = boxW / (Number(num) + (Number(num) - 1))
  console.log(sumNum, Number(num) + (Number(num) - 1));
  for (let index = 1; index <= num; index++) {
    let div = document.createElement('div')
    div.style.width = sumNum + 'px'
    div.style.marginLeft = sumNum + 'px'
    box.appendChild(div)
  }
</script>
<p>这段代码中有一个错误。在计算柱状图的宽度时,使用的公式是错误的。应该是boxW / (num + (num - 1)),而不是boxW / (3 + (2 * num - 2))。以下是修正后的代码:</p>
<pre><code class="language-html">&lt;style&gt;
  * {
    margin: 0;
    padding: 0;
  }

  .box {
    display: flex;
    align-items: flex-end;
    width: 1200px;
    height: 200px;
    border: 3px solid skyblue;
    margin: 100px auto;
  }

  .box div {
    /* border: solid 1px skyblue; */
    background-color: salmon;
    height: 100px;
  }
&lt;/style&gt;

&lt;body&gt;
  &lt;div class='box'&gt;

  &lt;/div&gt;
&lt;/body&gt;
&lt;script&gt;
  let num = prompt('输入柱状图数量')
  let box = document.querySelector('.box')
  let boxW = box.clientWidth
  let sumNum = boxW / (Number(num) + (Number(num) - 1))
  console.log(sumNum, Number(num) + (Number(num) - 1));
  for (let index = 1; index &lt;= num; index++) {
    let div = document.createElement('div')
    div.style.width = sumNum + 'px'
    div.style.marginLeft = sumNum + 'px'
    box.appendChild(div)
  }
&lt;/script&gt;
</code></pre>
<p>修正后的代码将正确计算柱状图的宽度,并根据数量动态生成柱状图的div元素。</p>

原文地址: https://www.cveoy.top/t/topic/buvm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录