100% DIV 宽度并不是真正的 100%

Posted

技术标签:

【中文标题】100% DIV 宽度并不是真正的 100%【英文标题】:100% DIV width is not really 100% 【发布时间】:2011-09-14 17:19:06 【问题描述】:

当我有一个<div>width: 100% 时,它并不是真正的100%:

<div id="div">testtesttesttesttest</div>

...

#div 
  width: 100%;
  background-color: red;

现在,当您调整窗口大小时,会有一个水平滚动条,然后您向右滚动,那么背景就会消失。在这种情况下,我怎样才能保持背景?

在这里您可以看到问题的实际效果: http://beta.ovoweb.net/?i=3

现在,当您调整窗口大小并向右滚动时,您将看不到背景。如何解决这个问题?

【问题讨论】:

尝试将margin: 0; 添加到 CSS 中?致 body 以及 DIV 本身。 问题不在于那个元素,而在于它的父元素。您需要提供您的 html/CSS。最好使用实时链接,否则 jsFiddle demo 就足够了。 div 默认宽度是 100% 所以它可能是父级!! 请注意其他任何为此苦苦挣扎的人,如果您的 div 没有内容(带有 float: leftfloat: right 的子元素除外,不计算在内),请设置width: 100%(或任何其他值)无效; div 必须有内容才能使width 设置生效。在这种情况下,只需添加一个空格 (&amp;nbsp;) 即可。我对此有所了解,所以我想我会发表评论,以防万一! 【参考方案1】:

100% 值是父级宽度或视口的 100%。请参阅documentation。

【讨论】:

那么如何让整个页面主体随着浏览器窗口的扩大而动态缩放? 这超出了本问答的范围。【参考方案2】:

宽度:100%,受到其父级(在您的情况下为主体)的边距和边距以及填充的高度影响。所以,先重置它们

类似

body 
    margin: 0;
    padding: 0;

#div 
  margin: 0;
  width: 100%;
  background-color: red;

DEMO

【讨论】:

父 div 的填充弄乱了我【参考方案3】:

100% 只是可用宽度的 100%,基于父容器。因此,如果您创建一个宽度为 500 像素的 DIV,然后在其中嵌套另一个宽度为 100% 的 DIV,则您的 100% DIV 可以扩展到最大 500 像素(不计算任何填充或边距,因此您需要将它们重置为 0)。

【讨论】:

【参考方案4】:

将此添加到 css:

html, body 
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;

那么它应该可以工作了。

【讨论】:

【参考方案5】:

应该这样做(将此行添加到 CSS 文件的最顶部):

*  margin: 0; padding: 0; 

一直为我工作。

【讨论】:

【参考方案6】:

我大部分时间都将this bit of code 添加到我的css。它也应该对你有用。是的,100% widthheight 始终基于父容器。

CSS

* 
  margin: 0;
  padding: 0;


html,
body 
  height: 100%;
  width: 100%;


#container 
  width: 100%;
  height: 100%;
  background: gray;
  position: relative;
  display: block;


#content 
  height: 50px;
  width: 50px;
  bottom: 20px;
  right: 10%;
  background: red;
  position: absolute;

HTML

<div id="container">
  <div id="content"></div>
</div>

输出

【讨论】:

【参考方案7】:

在我的例子中,div 标签没有占用其父标签的 100%,因为 div 显示的是“内联”。将其更改为“inline-block”可以解决该问题。

【讨论】:

【参考方案8】:

检查您是否在 div 或其父级中有此代码:

 #div  
    max-width: 300px;

 #div  
    max-width: 50%;

这会导致宽度不是页面的 100%。只需将其删除。

【讨论】:

【参考方案9】:

如果你的类中包含行,那么它有时会导致问题,请将其删除并将其添加到新的 div 中

【讨论】:

以上是关于100% DIV 宽度并不是真正的 100%的主要内容,如果未能解决你的问题,请参考以下文章

当页面上存在较大的 div 时,位置固定 100% 不是视口宽度

图片侧宽度为 100% 的 div 并修复响应式网站的高度

字段集宽度为父级的 100% [重复]

使图像宽度为父 div 的 100%,但不大于其自身宽度

CSS:外部DIV中有内部DIV,外部DIV的宽度300px,内部DIV宽度为100%,是按啥为基准的呢?

在 D3 v4 中使 SVG 容器具有父容器的 100% 宽度和高度(而不是像素)