Why containing div doesn't stretch?

I have a page with a container div that holds a content div. What I don't understand is why doesn't the container div stretch and show the background color to the bottom of the content div? It stops half way down the page? Scaled down code sample provided? I want the container to stretch dynamically depending on the height of the content div. Why isn't it doing that?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<style>
	*{margin:0; padding:0}
	body{
	 	font-family: Verdana, Ariel, Sans-Serif;
	 	font-size: 12px;
	 	color: #5A5A5A;
	 	margin: 0;
     	padding: 0;
     	text-align:center;
	 	background: #8E8E8E;
 	}
	
	div#container {
		position:relative;
		width: 766px;
	 	background: #7f0b29;
	   	padding: 0px;
	 	margin-right: auto;
	 	margin-left: auto;
	 	margin-top: 0px;
	 	margin-bottom: 0px;
		text-align:left;
	 }
	 
	 		
	div#content {
		position:relative;
		top:232;
		left:30;
     	width: 500px;
	 	height:500px;
	 	background: #162732;
	 
	}
</style>
<body>
<div id="container">
	<div id="content">
		TESTING HERE<br><br><br>TESTING HERE<br><br><br>TESTING HERE<br><br><br>TESTING HERE
	</div>
</div>
</body>
</html>

Open in new window

894359Asked:
Who is Participating?
 
ToastedWebCommented:
try not to position elements with position relative.... it is a bad practice ...

btw. <style></style> should be inside <head> tags, but the best way is to include it into html file...

take a look at my example:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
 
* { margin:0; padding:0; }
	
#container1 {
margin:0 auto;
padding:0;
width:800px;
background:red;
border:solid 1px white;
}
 
#container2 {
margin:200px 0 0 20px;
background:black;
width:300px;
height:700px;
}
	
</style>
</head>
 
<body>
<div id="container1">
	<div id="container2">
		<p>Your test content here :)</p>
	</div>
</div>
</body>
</html>

Open in new window

0
 
Mr_SplashCommented:
ToastedWeb is correct, relative positioning should not be used as the default way of positioning. Personally I would only use it to tweak an elements position when adding seperate browser dependent stylesheets.

Below is the code you gave with some changes.

Also some other CSS pointers are that
1) When setting a value as 0, you can drop the 'px'.
2) try to avoid * { margin:0; padding:0; } as it messes around with things you may want padding and margin on, such as lists.
3) Add <!-- and --> inside your style tags as shown below, this stops older browsers that can't read CSS showing all the code on the page. Not very common now a days, but it's good practive

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<style type="text/css" media="all">
<!--
body, html {
  font-family: Verdana, Ariel, Sans-Serif;
  font-size: 12px;
  color: #5A5A5A;
  margin: 0; padding: 0;
  text-align: center;
  background: #8E8E8E;
 }
        
#container {
  width: 766px;
  background: #7f0b29;
  padding: 0; margin: 0 auto;
  text-align: left;
}
         
#content {
  margin: 232px 0 0 30px;
  width: 500px; height:500px;
  background: #162732;
}
-->
</style>
</head>
<body>
 
<div id="container">
  <div id="content">
    TESTING HERE<br><br><br>TESTING HERE<br><br><br>TESTING HERE<br><br><br>TESTING HERE
  </div>
</div>
 
</body>
</html>

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.