Page 1 of 1

div layout issue in IE

Posted: Thu May 10, 2007 6:55 pm
by jbwhite
All,

I have a website that looks fine in Firefox and IE 7.x, but does not render correctly in IE 6.x or IE 5.x.  I am almost certain it is a layout issue.  The page can be viewed at:

http://www.wku.edu/chhs/cms/index.php/c ... tes/scahec

The content div gets shoved to below the menu.  HELP! :)

The template used for this page follows:

Code: Select all

<!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" xml:lang="en" lang="en">
<!-- Change lang="en" to the language of your site -->

<head>

<title>{title} - {title}</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}
<__script__ type="text/JavaScript">
<!--
//pass min and max -measured against window width
function P7_MinMaxW(a,b){
	var nw="auto",w=document.documentElement.clientWidth;
	if(w>=b){nw=b+"px";}if(w<=a){nw=a+"px";}return nw;
}
//-->
</__script>
<!--[if lte IE 6]>
<style type="text/css">
#pagewrapper {width:expression(P7_MinMaxW(800,800));}
#container {height: 1%;}
</style>
<![endif]-->
{/literal}
<!-- The min and max page width for Internet Explorer is set here. For other browsers it's in the stylesheet "Layout: Left sidebar + 1 column" -->


<!--[if IE]>
<__script__ type="text/javascript" src="modules/MenuManager/CSSMenu.js"></__script>
<![endif]-->
<!-- The above JavaScript is required for CSSMenu to work in IE -->

</head>

</__body>

<div id="wrap">

   <!-- Start Header, with logo image that links to the default start page -->

   <!-- End Header -->
<div id="pagewrapper">

<img id="topbannerblue" src="uploads/topbannerblue.jpg" width="800" height="108" alt="" />


    <!-- start accessibility skip links -->
    <ul class="accessibility">
      <li>{anchor anchor='menu_vert' title='Skip to navigation' accesskey='n' text='Skip to navigation'}</li>
      <li>{anchor anchor='main' title='Skip to content' accesskey='s' text='Skip to content'}</li>
    </ul>
    <!-- end accessibility skip links -->

    <hr class="accessibility" />
    <!-- Horizontal ruler that is hidden for visual browsers by CSS -->


   <!-- Start Content (Navigation and Content columns) -->
   <div id="content">

      <!-- Start Navigation -->
      <div id="sidebar">
         <h2 class="accessibility">Navigation</h2>
         {menu template='cssmenu.tpl' start_level="3"}
      <hr class="accessibility" />
      </div>
      <!-- End Navigation -->

      <!-- Start Content Area -->
      <div id="main">
         <div style="float: right;">{print showbutton=true script=true}</div>
         <h2>{title}</h2>
         {content} <br />

      <hr class="accessibility" />
      </div>
	  <!-- End Content Area -->


   </div>
   <!-- End Content -->


   <!-- Start Footer. Edit the footer in the Global Content Block called "footer" -->
  <div id="footer">
  <h6>Promoting the CommonHealth Throughout the Commonwealth</h6>
  <img id="footerblue" src="uploads/footerblue.jpg" width="800" height="108" alt="" />

   <!-- End Footer  -->


</div><!-- end pagewrapper -->
<__body>
</__html>
The layout uses the CSS from the default Layout: Left sidebar + 1 column:

Code: Select all

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

/*
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: #50c3d1; 
}

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


/* remove underline on hover and change color */
a:hover {
   text-decoration: none;
   background-color: #C3D4DF;
   color: #385C72;
}

/*****************
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: 800px;   /* IE wont understand these, so we will use javascript magick */
   min-width: 800px;
   background-color: #fff;;
   color: black;
}


/*** header ***
we will hide text and replace it with a image
we need to assign a height for it so that the image wont cut off
*/
div#header {
   height: 108px;    /* adjust according your image size */
   background: #385C72;  
   margin: 0 auto;       /* this centers wrapper */     
}

div#header h1 a {
/* you can set your own image here */
   background: #385C72 url(images/cms/logo1.gif) no-repeat 0 12px; 
   display: block;
   height: 80px;             /* 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 */

}

/* position for the search box */
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#content {
   margin: 10; /* some air above and under menu and content */
   position: relative;

}

div#main {
   position:absolute;
   margin-left: 140px; /* this will give room for sidebar to be on the left side, make sure this space is bigger than sidebar width (when using overflow, set margin in relation to the sidebar, otherwise, set it relating to the distance from the left side of the page) */
   #margin-left: -50px;
   margin-right: 20px; /* and some air on the right */
   height: 315px;    /* adjust according your image size */
   width: 590px;
   margin-top: 0;
   overflow: auto;
   class: clearfix;
   padding-left: 3em;
   padding-right: 1em;
   clear:both;

}


div#sidebar {
   position:relative;
   float: left;        /* set sidebar on the left side. Change to right to float it right instead. */
   width: 25.5%;     /* sidebar width, if you change this please also change #main margins */
   left: 0%;
   top: 0;
   z-index: 1;
}


div#footer {
   clear: both;       /* keep footer below content and menu */
   color: #fff;
   background-color: 0099cc; /* same bg color as in header */
   margin-top: 1em
}

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

div#footer2 {
   background-color: 0099cc
}


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

/* relational links under content */
div.left49 {
  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: #294B5F; 
	font-size: 1.5em; 
	text-align: left; 
/* some air around the text */
	padding-left: 0.5em;
	padding-bottom: .5px;
/* set borders around header */
	border-bottom: 1px solid #d6e808; 
	border-left: 1.1em solid #d6e808; 
        line-height: 2.3em;
/* and some air under the border */
        margin: 0 0 1em 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 {
   color: #294B5F; 
   font-size: 1.1em;
   line-height: 1.3em;
   margin: 0 0 0.25em 0;
}
h6 {
   color: #ade2e8; 
   font-size: 1em;
   line-height: 1.3em;
   margin: 0 0 0.25em 0;
   margin-left: 175px;
   margin-bottom: 5px
}
div#content h7 {
   color: #0099CC;
   font-size: 24pt;
   line-height: 1.3em;
   margin:0;
}
/* END HEADINGS */

/* TEXT */
p {
   font-size: 1em;
   margin: 0 0 1.5em 0; /* some air around p elements */
   line-height: 2.4em;
   padding: 0;
}

blockquote {
   border-left: 10px solid #ddd;
   margin-left: 10px;
}
strong, b {
/* explicit setting for these */
   font-weight: bold;
}
em, i {
/* explicit setting for these */
   font-style:italic;
}

/* Wrapping text in <code> 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%;


}

/* Separating the divs on the template explanation page, with some bottom-border */
div.templatecode {
  margin: 0 0 2.5em;
}

/* END TEXT */

/* LISTS */
/* lists in content need some margins to look nice */
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;
}

/* definition lists topics on bold */
div#main dl dt {
   font-weight: bold;
   margin: 0 0 0 1em;
}
div#main dl dd {
   margin: 0 0 1em 1em;
}

div#main dl {
  margin-bottom: 2em;
  padding-bottom: 1em;
  border-bottom: 1px solid #c0c0c0;
}


/* END LISTS */

Re: div layout issue in IE

Posted: Thu May 10, 2007 7:29 pm
by KO
You have 2 missing in your frontpage. Check those ones first.

Br,

K

Re: div layout issue in IE

Posted: Thu May 10, 2007 7:55 pm
by jbwhite
KO wrote: You have 2 missing in your frontpage. Check those ones first.
Good Eyes! I added the two div tags to the bottom of the template.  Unfortunately, it didn't fix it. :(

Re: div layout issue in IE

Posted: Thu May 10, 2007 9:16 pm
by KO
You have #margin-left:-50px in your div#main {}

Try to remove or comment that out. I think IE follows that but Firefox ignores it. You could also check how widht on that changes things.

Re: div layout issue in IE

Posted: Fri May 11, 2007 12:02 am
by jbwhite
KO wrote: You have #margin-left:-50px in your div#main {}
Commented out.  If you visit the page, you will see that the content now correctly aligns with the menu.  It still doesn't put the #content underneath the #header though.    :'(

Re: div layout issue in IE

Posted: Fri May 11, 2007 12:09 am
by jbwhite
Okay, I replaced the layout with the default "Layout: Left sidebar + 1 column" which solves both the positioning of the elements.  There are some minor issues in the placement of text in the footer and also some space at the top which I will fiddle with.  Thanks for you help and eyes!

JW

Re: div layout issue in IE

Posted: Fri May 11, 2007 6:00 am
by KO
In Firefox page looks much wider now if compared to IE.

Re: div layout issue in IE

Posted: Fri May 11, 2007 10:57 am
by jbwhite
Default Layout uses the window width to set the width of the pagewrap.  The original layout was set to 800px wide.  I'm going to fiddle with it today to change it to the original 800px width.  What is currently live on the site is the default 'Layout: Left sidebar + 1 column' so that you can at least use some of the content.  I'll do a comparison of the non-working layout and currently working layout to find the differences.  Then add a new positioning element one at a time until it breaks.  Slow going, but I'll find it that way.