javascript - 将 `div` 的宽度设置为 window.innerWidth 导致垂直 slider

标签 javascript html css

我正在尝试创建一个紧贴整个窗口的 div 边界(也在 JSFiddle 中):

<!doctype html>
<html>
  <head>
    <script type='text/javascript'>
     function setupDiv() {
       document.getElementById('div')
               .setAttribute('style'
             , 'position: absolute; top: 30px; left: 0px; width: '
             +window.innerWidth +'px; height: '
             +window.innerHeight+'px; border: 1px solid #ff0000');
     }
     window.onload = setupDiv;
    </script>
  </head>
  <body>
    <div id='div'>
    </div>
  </body>
</html>

不幸的是,上面的代码导致了水平和垂直 slider ,只有“北”和“西”边界线可见。虽然我当然可以手动减少这些值,但我想了解为什么会这样。

最佳答案

您可以在 CSS using box-sizing 中修复它并将 top 设置为 0px(或针对任何非零值进行调整):

这将使填充、边框和边距成为计算宽度的因素。实际上,边距、边框和宽度不计算为宽度的一部分:

<!doctype html>
<html>
  <head>
    <script type='text/javascript'>
     function setupDiv() {
       document.getElementById('div')
               .setAttribute('style'
             , 'position: absolute; top: 0px; left: 0px; width: '
             +window.innerWidth +'px; height: '
             +window.innerHeight+'px; border: 1px solid #ff0000');
     }
     window.onload = setupDiv;
    </script>
    <style>
      #div { box-sizing: border-box; }
    </style>
  </head>
  
  <body>
    <div id='div'>
    </div>
  </body>
</html>

关于javascript - 将 `div` 的宽度设置为 window.innerWidth 导致垂直 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34750969/

相关文章:

css - 如何实现带有图像和按钮标签的 JSF 按钮

javascript - 单击时使元素成为其父列表的第一个子元素

javascript - 如何使用 jquery 选择具有 'abbr' 属性特定值的元素

javascript - 检查选择器是否为真在 javascript 中无法正常工作

javascript - 如何添加一组子onclick事件

css - 是否渲染不透明度为 0 的图像?

javascript - 反向向后动画不适用于 mouseout 事件

javascript - Textarea 边界检查输入

javascript - 如何有一个不在滚动对象旁边的滚动条?

html - 内容将侧边栏向下推,反之亦然。 CSS 和 HTML