Page 1 of 1

problem with 3-column layout

Posted: Wed Feb 06, 2008 11:49 am
by smiley
Hi,

I think CMSMS is one of the simpliest and greatest cms script on web.
I found it very usefull, but unfortunatelly, I have problem with 3-column layout.

On website - main content appearing under left column (how it is look, you can see in picture - it is in attachment of this post)


I made everything how it says here: http://forum.cmsmadesimple.org/index.ph ... l#msg69622


If you have some successfull code of 3-column layout, can you put it here please?


Here is my code (I am sorry, I know it is too big, I dont know how make it smaller on post)


What I made wrong:



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



{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,950));}
#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 Breadcrumbs *}
   
        {breadcrumbs starttext='You are here' root='Home' delimiter='»'}
   
   
   {* End Breadcrumbs *}





   
   

     
     
         {global_content name='leftsidebar'}
     
     

     
     
{global_content name='rightsidebar'}
     
     
     


     
     
         {title}
         {content}

         
         
         
       
     
     





   
   {* End Content *}


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


{* end pagewrapper *}




here is stylesheet
/*****************
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: Verdana, Geneva, Arial, Helvetica, sans-serif;
   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: none;
/* 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: #C70000;
}

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


/* remove underline on hover and change color */
a:hover {
   text-decoration: underline;
   background-color: inherit;
   color: #C70000;
}

/*****************
basic layout
*****************/
body {
   background-color: #A0A0A0;
   background: #A0A0A0 url(uploads/images/back.gif);
   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: 80em; /* IE wont understand these, so we will use javascript magick */
   min-width: 60em;
   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: 87px; /* adjust according your image size */
   background: #C0C0C0;         
}

div#header h1 a {
/* you can set your own image here */
   background: #C0C0C0 url(uploads/images/logo.gif) no-repeat 0 0px;
   display: block;
   height: 87px;             /* 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: 23em;     /* 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;
}

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

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


div#sidebar {
   float: left;  /* set sidebar on the left side. Change to right to float it right instead. */
   width: 16%;    /* 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: 16%;  /* 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: #C70000; /* same bg color as in header */
}

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

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

/* as we hid all hr for accessibility we create new hr with extra div element */
div.hr {
   height: 1px;
   margin: 1em;
   border-bottom: 1px dotted black;
}

/* 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;
}

div#leftsidebar {
   float: left;
   margin-left: 0px;
   margin-right: 0px;
   width: 160px;   
   padding: 2px;
}

div#rightsidebar {
   float: right;
   margin-left: 3px;
   margin-right: 3px;
   margin-bottom: 5px;
   width: 160px;
   padding: 0px;
}

div#main {
   float: left;
   width: 680px;
   margin-left: 0px;
   margin-right: 0px;
   padding: 0px;
   background-color: #EFEFEF ;
}


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

}

/* HEADINGS */
div#content h1 {
   font-size: 2em;  /* font size for h1 */
   line-height: 1em;
   margin: 0;
}
div#content h2 {
   color: #294B5F;
   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 #e7ab0b;
   border-left: 1.1em solid #e7ab0b;
   line-height: 1.5em;
/* and some air under the border */
   margin: 0 0 0.5em 0;
}
div#content h3 {
   color: #294B5F;
   font-size: 1.3em;
   line-height: 1.3em;
   margin: 0 0 0.5em 0;
}
div#content h4 {
   color: #294B5F;
   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 */

Re: problem with 3-column layout

Posted: Wed Feb 06, 2008 7:02 pm
by RonnyK
Where is the rightsidebar in the stylesheet. Also if you put it there, make sure that the main, has margin on the right to use for the 3d column.

Ronny

Re: problem with 3-column layout

Posted: Wed Feb 06, 2008 8:28 pm
by smiley
Hi Ronny,

Thank you for fast answer.

I found solution for my problem.

My left side bar was too wide:
div#leftsidebar {
   float: left;
   margin-left: 0px;
   margin-right: 0px;
   width: 160px;   
   padding: 2px;
}

div#rightsidebar {
   float: right;
   margin-left: 3px;
   margin-right: 3px;
   margin-bottom: 5px;
   width: 160px;
   padding: 0px;
}

div#main {
   float: left;
   width: 680px;
   margin-left: 0px;
   margin-right: 0px;
   padding: 0px;
   background-color: #EFEFEF ;
}
160 + 160 + 680 = 1000 px

but my website is about 960 px wide!

So this is why leftsidebar (which was too wide) was coming above main content.