How to turn 2 column template into 3 column?

For discussion and questions related to CMS Specific templates and stylesheets (CSS), and themes. or layout issues. This is not a place for generic "I don't know CSS issues"
Post Reply
gpa_user
New Member
New Member
Posts: 3
Joined: Mon Nov 16, 2009 4:55 pm

How to turn 2 column template into 3 column?

Post by gpa_user »

Hi, I am using the CSSMenu top + columns template, and I am trying to add a third column to get an igoogle kind of look.

Unfortunately, I am completely unfamiliar with PHP (hence CMSMS). So to do this, I have removed the center "main" block from the template and recreated 6 "sidebar" blocks, each with float='' so that they kind of stack horizontally (right?). I also tried to put each one 33% and flloat them left, center, and right but that doesn't work either. They just kind of create two columns, then fall to the next line.

Can someone tell me what I need to add to get that 3 column, paneled igoogle look? Here's my template code:

{process_pagedata}



{* Change lang="en" to the language of your site *}


{if isset($canonical)}{elseif isset($content_obj)}GetURL()}" />{/if}

{sitename} - {title}
{* The sitename is changed in Site Admin/Global settings. {title} is the name of each page *}

{metadata}
{* Don't remove this! Metadata is entered in Site Admin/Global settings. *}

{stylesheet}
{* This is how all the stylesheets attached to this template are linked to *}

{cms_selflink dir="start" rellink=1}
{cms_selflink dir="prev" rellink=1}
{cms_selflink dir="next" rellink=1}
{* Relational links for interconnections between pages, good for accessibility and Search Engine Optmization *}


{literal}

=b){nw=b+"px";}if(w



#pagewrapper {width:expression(P7_MinMaxW(720,1150));}
#container {height: 1%;}


{/literal}
{* The min and max page width for Internet Explorer is set here. For other browsers it's in the stylesheet "Layout: Top menu + 2 columns" *}





{* The above JavaScript is required for CSSMenu to work in IE *}







    {* start accessibility skip links *}
   
      {anchor anchor='menu_vert' title='Skip to navigation' accesskey='n' text='Skip to navigation'}
      {anchor anchor='main' title='Skip to content' accesskey='s' text='Skip to content'}
   
    {* end accessibility skip links *}


   
    {* Horizontal ruler that is hidden for visual browsers by CSS *}


  {* Start Header, with logo image that links to the default start page. Logo image is changed in the stylesheet  "For template: Left menu + 1 column" *}
 
          {cms_selflink dir="start" text="$sitename"}
 
 
  {* End Header *}


      {* Start Navigation *}
     
        Navigation
        {menu template='cssmenu.tpl'}
     
     
      {* End Navigation *}


  {* Start Search *}
 
          {search}
 
  {* End Search *}


  {* Start Content (Navigation and Content columns) *}
 


    {* Start Sidebar *}
     
        {content block='Sidebar'}
     
      {* End Sidebar *}
     


    {* Start Sidebar2 *}
     
        {content block='Sidebar2'}
     
      {* End Sidebar2 *}

  {* Start Sidebar3 *}
     
        {content block='Sidebar3'}
     
      {* End Sidebar3 *}


  {* Start Sidebar4 *}
     
        {content block='Sidebar4'}
     
      {* End Sidebar4 *}


  {* Start Sidebar5 *}
     
        {content block='Sidebar5'}
     
      {* End Sidebar5 *}


  {* Start Sidebar6 *}
     
        {content block='Sidebar6'}
     
      {* End Sidebar6 *}




  {* End Content Area *}


 
  {* End Content *}


  {* Start Footer. Edit the footer in the Global Content Block called "footer" *}
 
      {global_content name='footer'}
   
  {* End Footer  *}


{* end pagewrapper *}


____________________________________________________________________________
Here's my stylesheet code:

/*****************
browsers interpret margin and padding a little differently,
we'll remove all default padding and margins and
set them later on
******************/
* {
margin:0;
padding:0;
}

/*
Set initial font styles
*/
body {
  text-align: left;
  font-family: century gothic;
  font-size: 75.01%;
  line-height: 1em;
}

/*
set font size for all divs,
this overrides some body rules
*/
div {
  font-size: 1em;
}

/*
if img is inside "a" it would have
borders, we don't want that
*/
img {
  border: 0;
}

/*
default link styles
*/
/* set all links to have underline and bluish color */
a,
a:link
a:active {
  text-decoration: underline;
/* css validation will give a warning if color is set without background color. this will explicitly tell this element to inherit bg colour from parent element */
  background-color: inherit;
  color: #9a9b9d;
}

a:visited {
  text-decoration: underline;
  background-color: inherit;
  color: #000000;                /* a different color can be used for visited links */
}


/* remove underline on hover and change color */
a:hover {
  text-decoration: none;
 
  color: #f479020;
}

/*****************
basic layout
*****************/
body {
  background-color: #ccc;
  color: #333;
  margin:1em; /* gives some air for the pagewrapper */
}

/* center wrapper, min max width */
div#pagewrapper {
  border: 1px solid black;
  margin: 0 auto;    /* this centers wrapper */
  max-width: ''; /* IE wont understand these, so we will use javascript magick */
  min-width: '';
  background-color: #fff;;
  color: black;
}


/*** header ***
we will hide text and replace it with a image
we need to assign a height for it
*/

div#header {
  height: 120px; /* adjust according your image size */
  background: #000000;         
}

div#header h1 a {
/* you can set your own image here */
  background: #000000 url(uploads/images/logo1.gif) no-repeat 0 12px;
  display: block;
  height: 120px;            /* adjust according your image size */
  text-indent: -999em;  /* this hides the text */
  text-decoration:none; /* old firefox would have shown underline for the link, this explicitly hides it */
}

div#search {
  float: right;
  width: 27em;    /* enough width for the search input box */
  text-align: right;
  padding: 0.6em 0 0.2em 0;
  margin: 0 1em;
}

div.breadcrumbs {
  padding: 1em 0 1.2em 0; /* CSS short hand rule first value is top then right, bottom and left */
  font-size: 90%;            /* its good to set fontsizes to be relative, this way viewer can change his/her fontsize */
  margin: 0 1em;              /* css shorthand rule will be opened to be "0 1em 0 1em" */
  border-bottom: 1px dotted #000;
}

div.breadcrumbs span.lastitem {
  font-weight:bold;
}


div#content {
  margin: 1.5em auto 2em 0; /* some air above and under menu and content */
}

div#main {
  margin-left: ''; /* this will give room for sidebar to be on the left side, make sure this space is bigger than sidebar width */
  margin-right: ''; /* and some air on the right */
  align: center;
}

div#sidebar {
  float: left;  /* set sidebar on the left side. Change to right to float it right instead. */
  width: '';    /* sidebar width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
}

/* if sidebar doesnt include menu but content add class="hascontent" */
div#sidebar.hascontent {
  padding: 0 1%;
  width: '';  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#sidebar2 {
  float: center;  /* set sidebar2 on the right side. Change to right to float it right instead. */
  width: '';    /* sidebar2 width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
  vertical-align: text-top;
}

/* if sidebar2 doesnt include menu but content add class="hascontent" */
div#sidebar2.hascontent {
  padding: 0 1%;
  width: '';  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#sidebar3 {
  float: right;  /* set sidebar3 on the right side. Change to right to float it right instead. */
  width: '';    /* sidebar3 width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
  margin-right: '';
  vertical-align:text-top;
}

/* if sidebar3 doesnt include menu but content add class="hascontent" */
div#sidebar3.hascontent {
  padding: 0 1%;
  width: '';  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#sidebar4 {
  float: left;  /* set sidebar4 on the right side. Change to right to float it right instead. */
  width: '';    /* sidebar4 width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
  vertical-align:text-top;
}

/* if sidebar4 doesnt include menu but content add class="hascontent" */
div#sidebar4.hascontent {
  padding: 0 1%;
  width: '';  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#sidebar5 {
  float: center;  /* set sidebar5 on the right side. Change to right to float it right instead. */
  width: '';    /* sidebar5 width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
  vertical-align:text-top;
}

/* if sidebar5 doesnt include menu but content add class="hascontent" */
div#sidebar5.hascontent {
  padding: 0 1%;
  width: '';  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#sidebar6 {
  float: right;  /* set sidebar6 on the right side. Change to right to float it right instead. */
  width: '';    /* sidebar6 width, if you change this please also change #main margins */
  display: inline;  /* FIX ie doublemargin bug */
  margin-left: 0;
  vertical-align:text-top;
}

/* if sidebar6 doesnt include menu but content add class="hascontent" */
div#sidebar6.hascontent {
  padding: 0 1%;
  width: ''%;  /* make width smaller if there's padding, or it will get too wide for the floated divs in IE */
}


div#footer {
  clear:both;      /* keep footer below content and menu */
  color: #fff;
  background-color: #000000; /* same bg color as in header */
}

div#footer p {
  font-size: 0.8em;
  padding: 1.5em;      /* some air for footer */
  text-align: center; /* centered text */
  margin:0;
}

div#footer p a {
  color: #fff; /* needed becouse footer link would be same color as background otherwise */
}








/* relational links under content */
div.left49 {
  float: left;
  width: 49%;  /* 50% for both left and right might lead to rounding error on some browser */
}



div.right49 {
  float: right;
  width: 49%;
  text-align: right;
}




/********************
CONTENT STYLING
*********************/
div#content {

}

/* HEADINGS */
div#content h1 {
  font-size: 2em;  /* font size for h1 */
  line-height: 1em;
  margin: 0;
}
div#content h2 {
  color: #000000;
  font-size: 1.5em;
  text-align: left;
/* some air around the text */
  padding-left: 0.5em;
  padding-bottom: 1px;
/* set borders around header */
  border-bottom: 1px solid #f47920;
  border-left: 1.1em solid #f47920;
  line-height: 1.5em;
/* and some air under the border */
  margin: 0 0 0.5em 0;
}
div#content h3 {
  color: #000000;
  font-size: 1.3em;
  line-height: 1.3em;
  margin: 0 0 0.5em 0;
}
div#content h4 {
  color: #fff;
  font-size: 1.2em;
  line-height: 1.3em;
  margin: 0 0 0.25em 0;
}
div#content h5 {
  font-size: 1.1em;
  line-height: 1.3em;
  margin: 0 0 0.25em 0;
}
h6 {
  font-size: 1em;
  line-height: 1.3em;
  margin: 0 0 0.25em 0;
}
/* END HEADINGS */

/* TEXT */
p {
  font-size: 1em;
  margin: 0 0 1.5em 0;  /* some air around p elements */
  line-height:1.4em;
  padding: 0;
}
blockquote {
  border-left: 10px solid #ddd;
  margin-left: 10px;
}
pre {
  font-family: monospace;
  font-size: 1.0em;
}
strong, b {
/* explicit setting for these */
  font-weight: bold;
}
em, i {
/* explicit setting for these */
  font-style:italic;
}

/* Wrapping text in tags. Makes CSS not validate */
code, pre {
white-space: pre-wrap;      /* css-3 */
white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
white-space: -pre-wrap;      /* Opera 4-6 */
white-space: -o-pre-wrap;    /* Opera 7 */
word-wrap: break-word;      /* Internet Explorer 5.5+ */
font-family: "Courier New", Courier, monospace;
font-size: 1em;
}

pre {
  border: 1px solid #000;  /* black border for pre blocks */
  background-color: #ddd;
  margin: 0 1em 1em 1em;
  padding: 0.5em;
  line-height: 1.5em;
  font-size: 90%;  /* smaller font size, as these are usually not so important data */
}

/* END TEXT */

/* LISTS */
div#main ul,
div#main ol,
div#main dl {
  font-size: 1.0em;
  line-height:1.4em;
  margin: 0 0 1.5em 0;
}
div#main ul li,
div#main ol li {
  margin: 0 0 0.25em 3em;
}

div#dl dt {
  font-weight: bold;
  margin: 0 0 0.25em 3em;
}
div#dl dd {
  margin: 0 0 0 3em;
}
/* END LISTS */
User avatar
Dr.CSS
Moderator
Moderator
Posts: 12711
Joined: Thu Mar 09, 2006 5:32 am

Re: How to turn 2 column template into 3 column?

Post by Dr.CSS »

I would have to see this live to tell you...

Link?...
janvl
Power Poster
Power Poster
Posts: 985
Joined: Wed Aug 13, 2008 10:57 am

Re: How to turn 2 column template into 3 column?

Post by janvl »

hi,

I always use template "Left simple navigation + 1 column" and the Stylesheet that belongs to it.
Then I change the margins right and left from "class=back" to 250 or 300 pix depending on what you need.
The middle I leave a floating width.
After that I make a div for the right column that I treat like div for the left sidebar.
Actually that is all there is to it.

Have a look at http://cms.successful-doing.at or at http://www.atom.at
both have been made like this. Use Firebug to analyse it.
Make it fit to your site.

Regards,
Jan
Post Reply

Return to “Layout and Design (CSS & HTML)”