100% DIV width is not really 100%

2019-01-09 08:36发布

When I have a <div> with width: 100%, it is not really 100%:

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

...

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

Now when you resize the window, so there is a horizontal scrollbar, and you scroll to the right, then the background is vanished. How can I remain the background in this case?

Here you can see the problem in action: http://beta.ovoweb.net/?i=3

Now when you resize the window and scroll to the right, you can't see the background anymore. How to fix this?

7条回答
Animai°情兽
2楼-- · 2019-01-09 09:20

add this to css:

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

Then it should work.

查看更多
姐就是有狂的资本
3楼-- · 2019-01-09 09:26

100% is only 100% of the available width, based on the parent container. So if you create a DIV with width 500 pixels, then nest another DIV inside with width 100%, your 100% DIV can expand to a maximum of 500 pixels (not counting any padding or margin so you need to reset them to 0).

查看更多
爷的心禁止访问
4楼-- · 2019-01-09 09:30

In my case, the div tag did not take up 100% of its parent tag because the div had a display of "inline." Changing it to "inline-block" fixed that problem.

查看更多
祖国的老花朵
5楼-- · 2019-01-09 09:31

The 100% value is 100% of the parent's width or the view port. See the documentation.

查看更多
我想做一个坏孩纸
6楼-- · 2019-01-09 09:31

Width: 100%, is highly affected by its margin and margin and padding of its parent (body in your case). SO, reset them first

Something like

body {
    margin: 0;
    padding: 0;
}
#div {
  margin: 0;
  width: 100%;
  background-color: red;
}

DEMO

查看更多
来,给爷笑一个
7楼-- · 2019-01-09 09:35

This oughta do it (add this line to the very top of your CSS file):

* { margin: 0; padding: 0; }

Works all the time for me.

查看更多
登录 后发表回答