CSS - Make outer
background to expand to inn

2019-08-21 17:27发布

Look at this simple page:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <style type="text/css">
      body {padding:20px;}
      #outer {background-color:#ff0000;}
      #inner {width:500px; border:1px solid #0000ff;}   
   </style>
</head>
<body>
   <div id="outer">
      <div id="inner">
         <p>Why the hell outer div bg color does not expand?</p>
         <p>Why the hell outer div bg color does not expand?</p>
         <p>Why the hell outer div bg color does not expand?</p>
      </div>
   </div>
</body>
</html>

When browser page is shrinked below the width of <div id="inner"> (i.e. 500px in this example) and then you scroll browser page to the right, you will see that the right side of the inner div does not have the red background anymore:

enter image description here

Do you know how to fix the background of the outer <div> in order to make it never shrinks below the inner <div> width??? (I still need the outer div background to expand to full browser width so it can not be set to width:500px; too).

EDIT: in other words I would like to see the red background color of the outer div to fill the total 500px width of the inner div and not to shrink to browser size leaving the right side of the inner div with no red background. In order to do this I can not simply set the outer div to be 500px too because when browser is expanded I need the red background color to expand too.

3条回答
Luminary・发光体
2楼-- · 2019-08-21 18:06

Add this to your css

#outer {background-color:#ff0000; min-width: 500px;}
查看更多
来,给爷笑一个
3楼-- · 2019-08-21 18:17

body { padding: 20px }

is causing the issue you see. removing that will prevent the "shrinking" as you call it.

for example: http://jsfiddle.net/MvJTa/

查看更多
神经病院院长
4楼-- · 2019-08-21 18:19

That's because your inner div is overflowing from the outer div, and not making it expand. Adding overflow: hidden to your outer div, will prevent this from happening by hidding the part of the inner div that overflows.

You can see a demo of that behavior here: http://jsfiddle.net/p6BQg/

More about the CSS overflow property here: http://www.w3schools.com/cssref/pr_pos_overflow.asp

EDIT: To keep the background color on the inner div please see this example: http://jsfiddle.net/p6BQg/1/

查看更多
登录 后发表回答