Solved

CSS based liquid + fixed center 3 column layout.

Posted on 2008-06-17
13
366 Views
Last Modified: 2013-11-19
I'm trying to make a 3 column layout with CSS however, I want the left and right columns to remain fixed while the center takes up the rest of the space. However, when I made the left and right fixed, the center pushes down below them like it doesn't fit.
<html>
<head>
<title>Vimark Solutions</title>
<style type="text/css">
<!--
body {
  margin: 0px;
  padding: 0px;
}
#header {
  background: #0f0;
  width: 100%;
}
#leftcol {
  background: #f00;
  float: left;
  width: 200px;
  height: 500px;
}
#rightcol {
  background: #f00;
  float: right;
  width: 200px;
  height: 500px;
}
#content {
  background: #fff;
  float: left;
  width: 100%;
  height: 500px;
  border: 1px solid #000;
}
#footer {
  background: #0f0;
  clear: both;
  width: 100%;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="leftcol">Left Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
 
</body>
</html>

Open in new window

0
Comment
Question by:MeridianManagement
  • 6
  • 5
13 Comments
 
LVL 16

Expert Comment

by:rbudj
ID: 21803680
take the float:left out of the content css
<html>
<head>
<title>Vimark Solutions</title>
<style type="text/css">
<!--
body {
  margin: 0px;
  padding: 0px;
}
#header {
  background: #0f0;
  width: 100%;
}
#leftcol {
  background: #f00;
  float: left;
  width: 200px;
  height: 500px;
}
#rightcol {
  background: #f00;
  float: right;
  width: 200px;
  height: 500px;
}
#content {
  background: #fff;
 
  width: 100%;
  height: 500px;
  border: 1px solid #000;
}
#footer {
  background: #0f0;
  clear: both;
  width: 100%;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="leftcol">Left Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
 
</body>
</html>

Open in new window

0
 
LVL 30

Expert Comment

by:Steggs
ID: 21803805
Greetings,

try this

#content {
  background: #fff;
  border: 1px solid #000;
  height: 500px;
  margin:0px 204px;
}
0
 
LVL 2

Author Comment

by:MeridianManagement
ID: 21805855
Actually, my apologies, Steggs was more correct. For anyone else having this problem make sure you check that your width is empty.
0
Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

 
LVL 30

Expert Comment

by:Steggs
ID: 21806754
:D
0
 
LVL 30

Expert Comment

by:Steggs
ID: 21806912
Im not being petty but some people might not check the other posts here... they will look straight at the accepted solution... I think you should get the answer reassigned ... give rbudj an assist
0
 
LVL 2

Author Comment

by:MeridianManagement
ID: 21816000
Steggs, how do I reassign?
0
 
LVL 30

Expert Comment

by:Steggs
ID: 21816292
there should be a 'request attention' link at the top of this thread in your question... then just say what you want to do and they will deal with it

Cheers mate
0
 
LVL 2

Author Comment

by:MeridianManagement
ID: 21816812
Steggs, I have one more question related to this since the question is now re-opened. The change you recommended works great, but in Internet Explorer there is a little space between the left, center, and right columns, but everything else touches perfectly. Any ideas?
0
 
LVL 30

Expert Comment

by:Steggs
ID: 21816911
ok cool

ie6 or 7?

did u change anything else?

can u post all the html and css
0
 
LVL 2

Author Comment

by:MeridianManagement
ID: 21816931
Remember, firefox is reading this fine, but internet explorer is adding spaces.
<html>
<head>
<title>Vimark Solutions</title>
<style type="text/css">
<!--
body {
  margin: 0px;
  padding: 10px;
  font-family:Arial, Helvetica, sans-serif;
}
#header {
  background: #fff;
  padding: 10px;
  border: 1px solid #000;
}
#navigation {
  background: #fff;
  border: 1px solid #000;
  padding: 10px;
}
#leftcol {
  background: #fff;
  float: left;
  width: 200px;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#rightcol {
  background: #fff;
  float: right;
  width: 200px;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#content {
  background: #fff;
  float: none;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#footer {
  background: #fff;
  padding: 10px;
  border: 1px solid #000;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="navigation">Navigation - <a href="property_form.php">Property Form</a> - <a href="investor_form.php">Investor Form</a> </div>
<div id="leftcol">Left Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
</body>
</html>

Open in new window

0
 
LVL 30

Accepted Solution

by:
Steggs earned 500 total points
ID: 21816969
you need a doctype at the top of the page... this is vitally important... you should read up about doctypes
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Vimark Solutions</title>
<style type="text/css">
<!--
body {
  margin: 0px;
  padding: 10px;
  font-family:Arial, Helvetica, sans-serif;
}
#header {
  background: #fff;
  padding: 10px;
  border: 1px solid #000;
}
#navigation {
  background: #fff;
  border: 1px solid #000;
  padding: 10px;
}
#leftcol {
  background: #fff;
  float: left;
  width: 200px;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#rightcol {
  background: #fff;
  float: right;
  width: 200px;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#content {
  background: #fff;
  float: none;
  height: 500px;
  border: 1px solid #000;
  padding: 10px;
}
#footer {
  background: #fff;
  padding: 10px;
  border: 1px solid #000;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="navigation">Navigation - <a href="property_form.php">Property Form</a> - <a href="investor_form.php">Investor Form</a> </div>
<div id="leftcol">Left Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
</body>
</html>

Open in new window

0
 
LVL 2

Author Closing Comment

by:MeridianManagement
ID: 31467961
You deserve 1000 points but I can only give you 500
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
push logos in footer up higher 5 25
Width of Page is Affecting Side Menu 6 31
CSS Header Navigation Not Responsive 4 30
Add shadow behind div 5 25
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
The viewer will learn how to count occurrences of each item in an array.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

861 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question