Wanting to create 3 equal column layout

I am in the process of rewriting a site that I have been asked to make changes to. The reason I am rewriting it is because the original designer created a separate CSS page for every page in the site. I have received help under the thread entitled How best to consolidate multiple CSS pages into one. Now I am trying to get the same look as the original site - www.artformsigns.com - without all the position:relative code as was recommended by Rayzur. For each page in the content area I am adding and changing images around. Since I have made the new site much larger (945px X 700px), there is more room to work with. I thought the best idea would be to create a 3 equal width column layout in the content area so that I can have the text and the images spread out and not look so blocky. I read an article on how to make equal columns that was written in 2007. I am confused as to exactly how to do this. My HTML code is:

<div id=“left_content”>
<p><img src=“images/image01.jpg” width=“133” height=“177” alt=“Artform Signs” /></p>
<div id=“center_content”>
<p>Artform Signs is a Colorado WBE/SBE/DBE company.</p>
<br />
<p>We have supplied commercial and residential projects with award winning signage throughout the nation. </p>
</div>
<p><img src=“images/image02.jpg” width=“177” height=“133” alt=“Artform Signs” /></p>
<p>Guided by the architecture, environment, and interiors we design fabricate and install interior and exterior property signage. We strive to achieve the highest level of visibility and style while providing our clients with a distinctive, enduring sign system…</p>
</div>
<div id=“right_content”>
<p> <img src=“images/website034.jpg” width=“177” height=“133” alt=“Artform Signs” /></p>
</div>

My CSS code is:

#left_content {
left:34px;
top:250px;
width:315px;
overflow:hidden;
}
#center_content {
margin-left: 10px;
margin-right:10px;
margin-top: 250px;
width:315px;
overflow:hidden;
}
#right_content {
right:34px;
top:250px;
width:315px;
overflow:hidden;
}

This doesn’t seem to work.

I also need to make sure just under the 3 column layout there is a gray bar that will run across the entire page and then below that the footer information.

<div id=“shadowbar02”><img src=“images/shadowbar.gif” width=“945” height=“6” alt=“shadow bar” /></div>
<p class=“subnav”>©2005-2010 Art Form Signs and Lighting</p>
<p class=“subnav”>Telephone 303-975-4641</p>
<p class=“subnav”><a href=“help.html”>Help</a> | <a href=“privacy.html”>Privacy Policy</a></p>
</div>

</body>
</html>

#shadowbar02 {
width:945px;
height:6px;
background-image: url(…/images/shadowbar.gif);
background:#FF0000;
}
#subnavbox01 {
width:230px;
}
#subnavbox02 {
width:145px;
}
#subnavbox03 {
width:120px;
}

I apologize in advance that I have been on this site so much asking for help. Some day this will all become second nature to me and each new site that I create will be easy.

The ideal is to give each column a width and set it to float: left in your css. Do you know how floating works?

Unfortunately I do not yet. I have read up on it but it still confuses me. I am not a very technical person when it comes to understanding CSS. I am a visual learner so “seeing” how things work or should be set up is easier for me to understand.

Hi cgacfox,

Making a three column layout is easy, you just float the columns. Things get a bit trickier with equal columns.

When using css for Equal Height Columns it always involves some sort of trickery since a table-cell is the only element that will base it’s height from another element. The trick is making them appear to be equal heights.

There are about four different ways to do them with css that I know of -
(Just view the page source for the css and html on these examples)

Faux Columns are probably the easiest and it just involves using a repeat-y BG image on the main container to give the columns their color.

The Border Trick is another simple method and it uses a border on the main content div that is the same width of the column. The column is nested within that div then shifted left or right into the border with a negative margin. As the main content expands with content the wide border follows it.

Extra Wrapping Divs can also be used to make equal height columns and negative margins are used to shift the sidebars into place. The sidebar colors are actually coming from the extra wrapping divs though.

Absolute Faux Columns is another method that uses an absolute positioned div positioned at the bottom of the wrapper with a 100% height set on it. It layers behind the actual column with a lower z-index and it just supplies the color.

If you are wanting a three column layout with equal height columns I have several of them in my demos. You are more than welcome to pick one out and we can help you adapt it to your needs. The link is in my signature below.

I am getting closer. I have the columns set up with the float left. Just need to tweak it a little. However, the gray bar is now screwed up and when I contract the page the columns move.

CSS -

background-color: #A8A06C;

}
p {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
text-align: left;
margin:0px 0px 0px 0px;
padding: 0px;
color: #333333;
}
.subnav {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #666666;
}
.subnav a:link {
color: #336600;
text-decoration: none;
}
.subnav a:visited {
color: #999999;
text-decoration: none;
}
.subnav a:hover {
color: #990000;
text-decoration: none;
}
.subnav a:active {
color: #666666;
text-decoration: none;
}
.redtext {
color: #FF0000;
}
#container {
width: 945px;
margin-top: 30px;
margin-right: auto;
margin-left: auto;
background: #FFFFFF;
border: 2px solid #000000;
overflow: hidden;
}
#logo {
float:left;
width:100px;
height:132px;
margin-left: 65px;
display:inline;/IE6 margin bug/
background: url(/…/images/artlogo.gif) no-repeat;
}
#indextopimage {
float:right;
width:500px;
height:132px;

background: url(../images/topimgindex.jpg) no-repeat;

}
#navbg {
clear:both;
width: 945px;
height:24px;
background-image: url(…/images/redbar.gif);
background-repeat: repeat-x;
}

/* Sprite Setup /
ul.menu {
padding: 0 0 0 75px;
list-style: none;
}
.displace {
position: absolute;
left: -5000px;
}
ul.menu li {
float: left;
}
ul.menu li a {
display: block;
width: 100px;
height: 23px;
background: url(…/images/artformsprite.png);
}
/
* Normal Links /
ul.menu li.home a {
background-position: 0 0;
}
ul.menu li.plan a {
background-position: -100px 0;
}
ul.menu li.identify a {
background-position: -200px 0;
}
ul.menu li.stages a {
background-position: -300px 0;
}
ul.menu li.products a {
background-position: -400px 0;
}
ul.menu li.clientele a {
background-position: -500px 0;
}
ul.menu li.portfolio a {
background-position: -600px 0;
}
ul.menu li.contact a {
background-position: -700px 0;
}
/
* Hover Links /
ul.menu li.home a:hover {
background-position: 0 -23px;
}
ul.menu li.plan a:hover {
background-position: -100px -23px;
}
ul.menu li.identify a:hover {
background-position: -200px -23px;
}
ul.menu li.stages a:hover {
background-position: -300px -23px;
}
ul.menu li.products a:hover {
background-position: -400px -23px;
}
ul.menu li.clientele a:hover {
background-position: -500px -23px;
}
ul.menu li.portfolio a:hover {
background-position: -600px -23px;
}
ul.menu li.contact a:hover {
background-position: -700px -23px;
}
/
* Clicked Links /
ul.menu li.home a:active {
background-position: 0 -23px;
}
ul.menu li.plan a:active {
background-position: -100px -23px;
}
ul.menu li.identify a:active {
background-position: -200px -23px;
}
ul.menu li.stages a:active {
background-position: -300px -23px;
}
ul.menu li.products a:active {
background-position: -400px -23px;
}
ul.menu li.clientele a:active {
background-position: -500px -23px;
}
ul.menu li.portfolio a:active {
background-position: 6006px -23px;
}
ul.menu li.contact a:active {
background-position: -700px -23px;
}
/
* Selected/Active Links */
ul.menu li.home a.selected {
background-position: 0 -23px;
}
ul.menu li.plan a.selected {
background-position: -100px -23px;
}
ul.menu li.identify a.selected {
background-position: -200px -23px;
}
ul.menu li.stages a.selected {
background-position: -300px -23px;
}
ul.menu li.products a.selected {
background-position: -400px -23px;
}
ul.menu li.clientele a.selected {
background-position: -500px -23px;
}
ul.menu li.portfolio a.selected {
background-position: -600px -23px;
}
ul.menu li.contact a.selected {
background-position: -700px -23px;
}
#submenu {
width:300px;
left: 182px;
}
#shadowbar {
width:945px;
height:6px;
background-color: #FF0000;
background-image: url(…/images/shadowbar.gif);
background-repeat: repeat-x;
margin-top: 13px;
}

#left_content {
position: absolute;
width:200px;
float:left;
margin-top: 80px;
}
#center_content {
margin-left: 300px;
margin-right:200px;
margin-top: 80px;
float:left;
}

#right_content {
position: absolute;
right:250px;
width:200px;
float:left;
margin-top: 80px;
}
#shadowbar02 {
width:945px;
height:6px;
background-image: url(…/images/shadowbar.gif);
background:#FF0000;
}
#footer {
clear:both;
}

#footer p {
font-size: x-small;
text-align: center;
}
#subnavbox01 {
width:230px;
}
#subnavbox02 {
width:145px;
}
#subnavbox03 {
width:120px;
}

HTML -

<!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>
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” />
<title>Artform Signs and Lighting</title>
<meta name=“keywords” content=“Signs, Lighting, Signage, Architecture, Design, Environment, Safety, Art, Denver, Colorado, SBE, DBE, Residential, Project, Budget” />
<meta name=“description” content=“Sign design and Sign Manufacturing” />
<link href=“css/artform.css” rel=“stylesheet” type=“text/css” />
</head>
<body>
<div id=“container”>
<div id=“logo”><img src=“images/artlogo.gif” width=“100” height=“130” alt=“artform logo” /></div>
<div id=“indextopimage”></div>
<div id=“navbg”>
<ul class=“menu”>
<li class=“home”><a href=“#” class=“selected” title=“Home”><span class=“displace”>Home</span></a></li>
<li class=“plan”><a href=“plan.html” title=“Home”><span class=“displace”>Planning</span></a></li>
<li class=“identify”><a href=“identify.html” title=“Identify”><span class=“displace”>Identify</span></a></li>
<li class=“stages”><a href=“stages.html” title=“Stages”><span class=“displace”>Stages</span></a></li>
<li class=“products”><a href=“products.html” title=“Products”><span class=“displace”>Products</span></a></li>
<li class=“clientele”><a href=“clientele.html” title=“Clientele”><span class=“displace”>Clientele</span></a></li>
<li class=“portfolio”><a href=“protfolio.html” title=“Portfolio”><span class=“displace”>Portfolio</span></a></li>
<li class=“contact”><a href=“contact.html” title=“Contact”><span class=“displace”>Contact</span></a></li>
</ul>
</div>
<div id=“shadowbar”></div>
<div id=“left_content”>
<p><img src=“images/image01.jpg” width=“133” height=“177” alt=“Artform Signs” /></p>
<p>Artform Signs is a Colorado WBE/SBE/DBE company.</p>
<br />
<p>We have supplied commercial and residential projects with award winning signage throughout the nation. </p>
<br />
</div>
<div id=“center_content”>
<p><img src=“images/image02.jpg” width=“177” height=“133” alt=“Artform Signs” /></p>
<p>Guided by the architecture, environment, and interiors we design fabricate and install interior and exterior property signage. We strive to achieve the highest level of visibility and style while providing our clients with a distinctive, enduring sign system…</p>
<br />
<p><img src=“images/1_steamboat_pl.jpg” width=“177” height=“133” alt=“Artform Signs” /> </p>
</div>
<div id=“right_content”>
<p> <img src=“images/website034.jpg” width=“177” height=“133” alt=“Artform Signs” /></p>
<br />
<p> <img src=“images/trailhead_lodge.jpg” width=“177” height=“133” alt=“Artform Signs” /></p>
</div>
<div id=“shadowbar02”><img src=“images/shadowbar.gif” width=“945” height=“6” alt=“shadow bar” /></div>
<div id=“footer”>
<p class=“subnav”>©2005-2010 Art Form Signs and Lighting</p>
<p class=“subnav”>Telephone 303-975-4641</p>
<p class=“subnav”><a href=“help.html”>Help</a> | <a href=“privacy.html”>Privacy Policy</a></p>
<br />
</div>
</div>
</body>
</html>

Rayzur - I see you are back on. I have checked out your site and kind of like the 4 column layout. If you look at the site that I am redoing - http://artformsigns.com - there are a lot of images that I need to change or add to. She wants basically the same look to the pages and I think it does look nice. However, actually getting clean code to do the same thing that the messed up code does is confusing me. How do I go about setting up 4 columns with what I have to work with?

Hi,
Looking back at the original site, you are not really needing equal height columns since they all share the same background color.

You don’t need to use that code from my 4-col demo, yours will be four simple columns floated left without any BG colors.

I’ll knock together an example for you based on the original layout. Give me a little time to write some code and I’ll post back.

In the future please wrap your code in tags (without the white-space) >> [c ode] code here [/c ode]

Thanks Rayzur. I did not know how to handle the code but will do so in the future.

I wasn’t looking for equal height but equal width. Do these type of columns only work if the columns have different background colors? Also what I can see that I have done so far, the column contents move when I expand and contract the site. I don’t want that to happen. Is that because of the float or do I need to add some kind of container to the content area?

No, you don’t have to have BG colors. I set some BG colors on the columns below so you could see the widths though. Remove them if you don’t need them.

Also what I can see that I have done so far, the column contents move when I expand and contract the site. I don’t want that to happen. Is that because of the float or do I need to add some kind of container to the content area?
I set up four floated columns and I wrapped them in a div called Content. The old site had a fixed height , you don’t want that. It broke apart when the text was zoomed.

I cleaned out some unneeded divs and classes throughout the page and set up page specific styles for the new header div I placed in there. I set your header BG images there. This page below gets you started with the .index class on the body.

You will need to pull the css out and correct the image paths. In the meantime you can run this page beside your images folder and it will work for you.

Hope that helps! :slight_smile:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Art Form Signs and Lighting</title>

<style type="text/css">
body {
    background: #A8A06C;
    font-size:100%;
    margin:0;
    padding:0;
}
a {text-decoration:none;}
a img {border:none;}
ul {list-style:none;margin:0;padding:0;}

.center {text-align: center;}

p {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    text-align: left;
    margin:10px;
    padding:0;
    color: #333333;
}
.subnav {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #666666;
}
.subnav a {
    color: #336600;
    text-decoration: none;
}
.subnav a:visited {color: #999999;}
.subnav a:hover {color: #990000;}
.subnav a:active {color: #666666;}

/*=== Begin Main container ===*/
#container {
    width:945px;
    margin:30px auto 0;
    background:#FFF;
    border:2px solid #000;
    overflow:hidden;
}
#header {height:132px;}

.index #header {background:url(images/topimgindex.jpg) no-repeat 100% 0;}
.plan #header {background:url(images/topimgplan.jpg) no-repeat 100% 0;}
.identify #header {background:url(images/topimgident.jpg) no-repeat 100% 0;}
.stages #header {background:url(images/topimgstages.jpg) no-repeat 100% 0;}
.products #header {background:url(images/topimgprod.jpg) no-repeat 100% 0;}

#logo {
    float:left;
    width:100px;
    height:132px;
    margin-left:65px;
    display:inline;/*IE6 margin bug*/
    background: url(images/artlogo.gif) no-repeat;
}
/* Sprite Setup */
ul.menu {
    width:870px; /*945px total w/ padding*/
    height:24px;
    overflow:hidden;
    margin:0;
    padding:0 0 0 75px;
    background:url(images/redbar.gif) repeat-x;
}
.menu span {margin-left:-999em;}
.menu li {float:left;}

ul.menu li a {
    display:block;
    width:100px;
    height:23px;
    background:url(images/artformsprite.png);
}
/* * Normal Links */
ul.menu li.home a {
background-position: 0 0;
}
ul.menu li.plan a {
background-position: -100px 0;
}
ul.menu li.identify a {
background-position: -200px 0;
}
ul.menu li.stages a {
background-position: -300px 0;
}
ul.menu li.products a {
background-position: -400px 0;
}
ul.menu li.clientele a {
background-position: -500px 0;
}
ul.menu li.portfolio a {
background-position: -600px 0;
}
ul.menu li.contact a {
background-position: -700px 0;
}
/* * Hover Links */
ul.menu li.home a:hover {
background-position: 0 -23px;
}
ul.menu li.plan a:hover {
background-position: -100px -23px;
}
ul.menu li.identify a:hover {
background-position: -200px -23px;
}
ul.menu li.stages a:hover {
background-position: -300px -23px;
}
ul.menu li.products a:hover {
background-position: -400px -23px;
}
ul.menu li.clientele a:hover {
background-position: -500px -23px;
}
ul.menu li.portfolio a:hover {
background-position: -600px -23px;
}
ul.menu li.contact a:hover {
background-position: -700px -23px;
}
/* * Clicked Links */
ul.menu li.home a:active {
background-position: 0 -23px;
}
ul.menu li.plan a:active {
background-position: -100px -23px;
}
ul.menu li.identify a:active {
background-position: -200px -23px;
}
ul.menu li.stages a:active {
background-position: -300px -23px;
}
ul.menu li.products a:active {
background-position: -400px -23px;
}
ul.menu li.clientele a:active {
background-position: -500px -23px;
}
ul.menu li.portfolio a:active {
background-position: 6006px -23px;
}
ul.menu li.contact a:active {
background-position: -700px -23px;
}
/* * Selected/Active Links */
ul.menu li.home a.selected {
background-position: 0 -23px;
}
ul.menu li.plan a.selected {
background-position: -100px -23px;
}
ul.menu li.identify a.selected {
background-position: -200px -23px;
}
ul.menu li.stages a.selected {
background-position: -300px -23px;
}
ul.menu li.products a.selected {
background-position: -400px -23px;
}
ul.menu li.clientele a.selected {
background-position: -500px -23px;
}
ul.menu li.portfolio a.selected {
background-position: -600px -23px;
}
ul.menu li.contact a.selected {
background-position: -700px -23px;
}

#submenu {
    width:350px;
    float:right;
}
    #submenu li{
        float:left;
        margin-right:4px; 
    }
    #submenu li a{
        float:left;
        padding:2px 6px;
        font-size:12px;
        color:#333;  
    }    
.shadowbar {
    clear:both;
    width:945px;
    height:6px;
    background:#FF0000 url(images/shadowbar.gif) repeat-x;
}
#content {
    width:100%;
    padding-top:80px;
    overflow:hidden;/*contain floats*/
}
    #one {
        float:left;
        width:236px;
        background:#FFF;
    }
    #two {
        float:left;
        width:236px;
        background:#EEF;
    }
    #three {
        float:left;
        width:236px;
        background:#FFF;
    }
    #four {
        float:left;
        width:237px;
        background:#EEF;
    }
#footer {
    clear:both;
    width:100%;
    padding:0 0 2px;
}
#footer p {
    font-size: x-small;
    text-align: center;
    margin:2px 0;
}
#subnavbox01 {
    width:230px;
}
#subnavbox02 {
    width:145px;
}
#subnavbox03 {
    width:120px;
}
</style>
</head>
<body class="index">

<div id="container">
    <div id="header">
        <div id="logo">
            <a href="#"><img src="images/artlogo.gif" width="100" height="130" alt="artform logo" /></a>
        </div>
    </div>
    <ul class="menu">
        <li class="home"><a href="#" class="selected" title="Home"><span>Home</span></a></li>
        <li class="plan"><a href="plan.html" title="Home"><span>Planning</span></a></li>
        <li class="identify"><a href="identify.html" title="Identify"><span>Identify</span></a></li>
        <li class="stages"><a href="stages.html" title="Stages"><span>Stages</span></a></li>
        <li class="products"><a href="products.html" title="Products"><span>Products</span></a></li>
        <li class="clientele"><a href="clientele.html" title="Clientele"><span>Clientele</span></a></li>
        <li class="portfolio"><a href="protfolio.html" title="Portfolio"><span>Portfolio</span></a></li>
        <li class="contact"><a href="contact.html" title="Contact"><span>Contact</span></a></li>
    </ul>
    <ul id="submenu">
        <li><a href="#">item one</a></li>
        <li><a href="#">item two</a></li>
        <li><a href="#">item three</a></li>
        <li><a href="#">item four</a></li>
    </ul>
    <div class="shadowbar"></div>
    
    <div id="content">
        <div id="one">
            <p class="center"><a href="#"><img src="images/image01.jpg" width="133" height="177" alt="Artform Signs" /></a></p>
            <p>Artform Signs is a Colorado WBE/SBE/DBE company.</p>
            <p>We have supplied commercial and residential projects with award winning signage throughout the nation.</p>
        </div>     
        <div id="two">
            <p class="center"><a href="#"><img src="images/image02.jpg" width="177" height="133" alt="Artform Signs" /></a></p>
            <p>Guided by the architecture, environment, and interiors we design fabricate and install interior and exterior property signage. We strive to achieve the highest level of visibility and style while providing our clients with a distinctive, enduring sign system..</p>
        </div>     
        <div id="three">
            <p class="center"><a href="#"><img src="images/website034.jpg" width="177" height="133" alt="Artform Signs" /></a></p>
            <p>Lorem ipsum dolor sit amet consectetuer Sed sagittis ligula Quisque eu. Curabitur nibh sem euismod Quisque id sed vitae velit cursus faucibus. Turpis pharetra enim id at ac felis dapibus auctor urna Sed. Id eget Nullam adipiscing iaculis nibh magna dictum Maecenas netus sociis.</p>
        </div>
        <div id="four">
            <p class="center"><a href="#"><img src="images/website034.jpg" width="177" height="133" alt="Artform Signs" /></a></p>
            <p>Lorem ipsum dolor sit amet consectetuer Sed sagittis ligula Quisque eu. Curabitur nibh sem euismod Quisque id sed vitae velit cursus faucibus. Turpis pharetra enim id at ac felis dapibus auctor urna Sed. Id eget Nullam adipiscing iaculis nibh magna dictum Maecenas netus sociis.</p>
        </div>
    </div><!--end content-->
    
    <div class="shadowbar"></div>
    
    <div id="footer">
        <p class="subnav">&copy;2005-2010 Art Form Signs and Lighting</p>
        <p class="subnav">Telephone 303-975-4641</p>
        <p class="subnav"><a href="help.html">Help</a> | <a href="privacy.html">Privacy Policy</a></p>
    </div>
</div>

</body>
</html>

Thank you very much Rayzur. I use Dreamweaver CS4 for my coding and when I checked for browser errors, I got 2. One is Expanding Box problem and the other is Float Drop Problem. I went to Adobe to see how to correct these. Below are what the Adobe site says.

Expanding Box - http://www.adobe.com/cfusion/communityengine/index.cfm?event=findByTextId&productid=1&textid=EXPANDING_BOX_PROBLEM

Solutions
The first and easiest solution is to specify a width for your container that is wide enough to accommodate all of your content. When this isn’t possible, two other options are available:

•For long text, such as URLs, you can force a break in IE by specifying word-wrap: break-word; on the container. Note that word-wrap is a proprietary Microsoft property that is not part of any CSS spec; you should enclose this property in IE conditional comments if you want your CSS to validate.
•For all other content, you can prevent expansion by applying overflow: hidden to the container. This will cause any content that would otherwise cause the container to expand to be clipped instead.

I got rid of this problem by removing the Height and Width on the CSS page since it is already on the HTML page.

I want a 2 px black border on the images to make them stand out better. I either have to do this manually with all the images or I see that I can do this in the CSS code. However, it also puts a border around the logo, which I don’t want. I have to rename all the images anyway so I guess I will do it manually.

Again thanks for helping me with this and if I run into any other problems as I create the new pages, I will post here.

Float Drop Problem - http://www.adobe.com/cfusion/communityengine/index.cfm?event=findByTextId&productid=1&textid=FLOAT_DROP

Solution
Wrap content in a fixed-width container large enough to accommodate the content, or remove the width from the static block. (Go to the link to see more detailed information).

I got rid of the float drop problem. What I did was actually change it to 3 columns for the index page. I will probably use the 4th column on other pages so this problem may come back. I will have to see.

I was incorrect. Changing to 3 columns did not fix it. Taking the width out of the shadowbar did it. The image for the shadowbar is a couple of pixels wide and repeats but there was a width of 945px and that was what was throwing the error.

I was incorrect. Changing to 3 columns did not fix it. Taking the width out of the shadowbar did it.
Hi,
I had seen your previous reply about the 2 errors you were having and I knew it was not happening with the code I posted above. I assumed you had changed something that caused the problems.

If you will notice in my code I had removed that #shadowbar2 div that was in your rebuild attempt from your other thread. I set them as classes and used the same div at top and bottom.

I had the width set at 945px but there was no padding or anything else to interfere with the width so it worked fine for me. I set the width there to give "haslayout " to IE6/7. It has a 6px height so that will trip “haslayout” also and it would be safe to remove the width.

You must have something else that is adding to the 945px width.

Do you have a link to the live page of your current code? If so please post it.

I am stuck again. I may be tired but I can’t figure this out. On the message schedule page I don’t need all three columns. I need 1 centered column so that an image that has a width of 640px will fit. At first I thought since the pages are setup with a class for each page, that I would add .messageschedule.#one, etc and change the width on #one and #three. This is not working. To see the original site, please see previous posts in this thread. Please help me figure this out.

At first I thought since the pages are setup with a (body) class for each page, that I would add .messageschedule.#one, etc and change the width on #one and #three. This is not working.

Yes, it will work. On the page that does not need 3 columns just remove the unneeded columns from the html and target the page via the body class. Then change the width for the #one column.

.example #one {width:100%}

I had already got you started with the body classes on the different header images. The same principle will apply to the columns. You will have to remove the unneeded ones from the html though.

I don’t find any .messageschedule page on the original site. You are going to need to get new site online so I can see what you are doing.

I have set up two of the pages in my live test files, index.html & products.html.

If you go to index.html you will see that I changed it to three columns and it has the proper header image and current navbar highlight.

While on that page click the “products” link. It is the only other page at the moment. As well you will see the header image change and it turns into a 2-column layout. The navbar highlight changes as well. This is all because of the class on the body element and the page specific css.

Here is the CSS for those pages so far.

You got your work cut out for you. You don’t seem to be to familiar css so it is going to make things much harder for you as you are going to have to learn as you build. I can help you here and there but unfortunately I can’t build the site for you. Hopefully you can get a grasp on how I am changing the element styles on each page though.

I have 3 pages completed so far. They can be seen here -

http://jetigroup.org/artformsigns/index2.html

http://jetigroup.org/artformsigns/plan1.html

http://jetigroup.org/artformsigns/wayfinding1.html

I saw what my error was last night. I had .messageschedule.#one. I changed it to .messageschedule #one and it now works.

You are right, I am not very good at understanding and coding CSS yet. A little on my background. I received my BSIT in 2005. In 2004 I while going through the web design courses, I fell in love with it. My instructor unfortunately taught us to build a site using tables. She didn’t spend much time on CSS (University of Phoenix online BSIT program - 5 week courses). About 1.5 years ago I realized that I needed to get “out of the box” so to speak. I have been working with CSS ever since but it is all self taught (tons of books, subscription to Lynda.com and help from this site)and the learning curve for me has been extremely steep. Many people on this site have been very helpful in my learning journey but it is far from over yet. I think what I need to do, is not wait until I have a client but go out find pieces of sites I like and build, build, build. Practice makes perfect after all! :wink:

I have run into another interesting problem. On 2 pages I have an unordered list using plain bullets. On one page in particular in IE7 the bullets appear fine but the text is out of line. I realize that some of the bullets are longer and wrap around. In IE8 the text is still out of line. In Firefox the bullets look fine and the text is all aligned correctly. Here is the live page - http://jetigroup.org/artformsigns/productsa.html. Here is the CSS code -


.in_text_2 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	text-align: left;
	margin:5px;
	color: #333333;
	list-style-type: disc;
	list-style-position: inside;
}

Here is the HTML -


      <ul  class="in_text_2">
        <li>&#8226;All Interior Signage</li>
        <li>&#8226;All Exterior Signage</li>
        <li>Illuminated &amp Non-Illuminated Signage</li>
        <li>&#8226;Photo Polymer &amp Raster ADA Compliant Raised Character &amp Braille Signage</li>
        <li>&#8226;Wayfinding Interior Sign Packages</li>
        <li>&#8226;Aluminum, Brass, &amp Gold Laminates</li>
        <li>Faux Metal finishes including patina brushed, rusted, &amp iron</li>
        <li>&#8226;Silkscreen</li>
        <li>Faux Stone laminates including granite, marble &amp flagstone</li>
        <li>&#8226;Wood &amp Wood Composites</li>
        <li>Computerized Vinyl &amp Digital Graphics</li>
        <li>&#8226;Acrylic &amp Lexan Sign Faces for Lighted Cabinets</li>
        <li>PVC &amp Expanded PVC</li>
        <li>Embossed/Engraved Accent Pieces </li>
      </ul>

Hi,
Thanks for posting the links as I requested earlier. It makes it much easier to see what you are doing now. :wink:

As per your last post and the bullets, why are you using the default bullets along with bullet characters in the html? Why not just let it default to bullets only through the ul, without adding them in the html.

To get them lined up correctly you can set a left padding and remove the inside list position.


  .in_text_2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    text-align: left;
[COLOR=Blue]    margin:5px;
    padding:0 0 0 20px;[/COLOR]
    color: #333333;
    [COLOR=Blue]list-style-type: disc;[/COLOR]
}

Then your html should be cleaned up by removing the bullet characters -

      <ul class="in_text_2">
        <li>All Interior Signage</li>
        <li>All Exterior Signage</li>
        <li>Illuminated [COLOR=Blue]&amp[/COLOR]; Non-Illuminated Signage</li>
        <li>Photo Polymer [COLOR=Blue]&amp;[/COLOR] Raster ADA Compliant Raised Character [COLOR=Blue]&amp;[/COLOR] Braille Signage</li>
        <li>Wayfinding Interior Sign Packages</li>
        <li>Aluminum, Brass, [COLOR=Blue]&amp;[/COLOR] Gold Laminates</li>
        <li>Faux Metal finishes including patina brushed, rusted, &amp; iron</li>
        <li>Silkscreen</li>
        <li>Faux Stone laminates including granite, marble &amp; flagstone</li>
        <li>Wood [COLOR=Blue]&amp;[/COLOR] Wood Composites</li>
        <li>Computerized Vinyl [COLOR=Blue]&amp;[/COLOR] Digital Graphics</li>
        <li>Acrylic [COLOR=Blue]&amp;[/COLOR] Lexan Sign Faces for Lighted Cabinets</li>
        <li>PVC [COLOR=Blue]&amp;[/COLOR] Expanded PVC</li>
        <li>Embossed/Engraved Accent Pieces </li>
      </ul>

You also have not terminated your ampersand correctly, it should be closed with ; like this &

It is always suggested that you validate your code and let it point out your errors.

Hi,
I see you have got the html cleaned up and made the css edits.

I may have misunderstood you but if you want the text to intentionally wrap under the bullets then you would want to use the inside list position as you had it earlier.

Either way, now you know how to handle the bullets by adding the left padding.

I see what you are saying about IE7 now. It looks like it is just giving a larger line-height to the list items. You can get it consistent in all browsers by resetting the line-height manually.

The line-height is the 1.2 in this shorthand font value.


.in_text_2 {
    [COLOR=Blue]font:10px/1.2 [/COLOR]Verdana, Arial, Helvetica, sans-serif;
    text-align: left;
    margin:5px;
    padding:0 0 0 20px;
    color: #333333;
    list-style-type: disc;
}

Hi Rayzur. Thank you for the fix. This has now been tested in IE7, IE8, Firefox, Safari, Chrome, and Opera and looks good in all browsers. I have the web developers tools in Firefox and have checked the HTML and CSS and all pages are error-free. Now to finish the 5 pages I have left. You have been a great help with this and I really appreciate your knowledge and willingness to help me in my learning journey with CSS. I hope with time and practice I can help others on this site as you and others have helped me.