/* This is a CSS file for HTML files of mine that apply to courses
whose home pages are created subsequent to Jan 2006.  These files
are in sub-directories in the teach directory.

Features of this style (and thus the structure of the HTML files
that use it):
* There are two main blocks, that come in this order:  header
  and body, and are delineated by the tags of the same name.
* Title, main text, footer, and address blocks are all within the 
  body tag.
* Title is given by the h1 tag, and is centered with a line in
  the bottom.
* Main text is in a maintext class div tag.
* Create a center class.
* Footer is in a footer class div tag.  It has a line on the 
  bottom.
* The pre tag is set to draw a solid bordered box around the
  contents.  A separate class of pre is created accomodate files
  that are very wide.
* Code that is set apart should be set in a set of:
  <blockquote><pre><code>...</code></pre></blockquote>
  tags.  This stylesheet renders such code inside a solid 
  bordered box of the blockquote width specifications.  
* The code tag renders the font larger than normal, because
  verdana is generally larger than the default non-proportion-
  al font.  Code is also made blue.  The code tag, by itself,
  does not draw a box around the text.
* Bulky and concise lists in the main text block are specially 
  defined.
* Create OL classes to use in ordered lists to set the type of
  list-item marker explicitly.
* Create special environment for tables for schedules.

Fonts and colors of links are changed, as are margins.  I assume 
any independent text coloring and highlighting as well as tables 
are done in the HTML file itself.  Paragraphs of text in the HTML
files should be within a <p><span>...</span></p> construct. */


             /* basic link constructs */

a:link { color: #2c529b;}

a:visited { color: #2c529b;}

a:active { color: #2c529b;}


             /* generic classes */

.center { text-align: center; }


             /* body and heading tags */
body
{
    BACKGROUND-COLOR: white;
    COLOR: black;
    FONT-FAMILY: verdana, sans-serif;
    FONT-SIZE: 14px;
    margin-top: 2ex;
    margin-bottom: 5%;
    margin-left: 8%;
    margin-right: 8%;
}  

h1, h2, h3, h4, h5, h6 { COLOR: #2C529B; }
h1 { FONT-SIZE: 28px; }
h2 { FONT-SIZE: 18px; }
h3 { FONT-SIZE: 16px; }
h4 { FONT-SIZE: 16px; }
h5 { FONT-SIZE: 16px; }
h6 { FONT-SIZE: 16px; }

h1
{
    text-align: center;
    padding-bottom: 1ex;
    border-bottom: black 2pt solid;
}


             /* pre and code tags for code environment */

/* The wide class is for code that is around 70-75 characters wide.
It has smaller font, but oh well. */

pre
{
    padding: 2ex;
    margin: 0ex;
    width: 34em;
    border: black 1px solid;
}

pre.wide
{
    padding: 2ex;
    margin: 0ex;
    width: 50em;
    font-size: 11px;
    border: black 1px solid;
}

code
{
    padding: 0ex;
    margin: 0ex;
    font-size: 110%;
    color: blue;
}


             /* bulky and concise lists in main text block */

/* this is for a main text list that i want to have a line separating 
each item.  note the last item has 0 padding.  ordered and unordered 
list tags are defined. */
    
div.maintext ul.bulky li { padding-bottom: 2ex; }
div.maintext ul.bulky li.last { padding-bottom: 0ex; }
div.maintext ol.bulky li { padding-bottom: 2ex; }
div.maintext ol.bulky li.last { padding-bottom: 0ex; }

/* concise lists:  this is for a main text list that i want to have 
   a line separating each item */

div.maintext ul.concise li { padding-bottom: 0%; }
div.maintext ol.concise li { padding-bottom: 0%; }


             /* bulky and concise ordered list classes for different
                markers in main text block */

/* These classes set the type of list-item marker explicitly and
preserve the bulky spacing.  These are set only for maintext block.
See:
http://www.htmlhelp.com/reference/css/classification/list-style-type.html */

div.maintext ol.bulky-arabic { list-style-type: decimal }
div.maintext ol.bulky-arabic li { padding-bottom: 2ex; }
div.maintext ol.bulky-arabic li.last { padding-bottom: 0ex; }

div.maintext ol.concise-arabic { list-style-type: decimal }
div.maintext ol.concise-arabic li { padding-bottom: 0ex; }
div.maintext ol.concise-arabic li.last { padding-bottom: 0ex; }

div.maintext ol.bulky-lcalpha { list-style-type: lower-alpha }
div.maintext ol.bulky-lcalpha li { padding-bottom: 2ex; }
div.maintext ol.bulky-lcalpha li.last { padding-bottom: 0ex; }

div.maintext ol.concise-lcalpha { list-style-type: lower-alpha }
div.maintext ol.concise-lcalpha li { padding-bottom: 0ex; }
div.maintext ol.concise-lcalpha li.last { padding-bottom: 0ex; }


             /* ordered list classes for different markers */

/* These classes set the type of list-item marker explicitly.  Note 
that you cannot use these classes then with the bulky and concise
lists classes.  See:
http://www.htmlhelp.com/reference/css/classification/list-style-type.html */

ol.arabic  { list-style-type: decimal }      /* 1 2 3 4 5 etc. */
ol.lcalpha { list-style-type: lower-alpha }  /* a b c d e etc. */
ol.ucalpha { list-style-type: upper-alpha }  /* A B C D E etc. */


             /* schedule table:  table cells should have paragraphs
                and lists that are not separated by that much space,
                and the table should span the width of the page. 
		Also, if a ul or ol list has the last element given
		by the class "lastincell", then an extra padding space
		is added at the bottom. */

table.schedule
{
    width: 100%;
    margin: 0ex;
    padding: 0ex;
    border: black 1px solid;
    border-spacing: 0px;
}

table.schedule td, table.schedule th
{
    margin: 0ex;
    padding: 1ex;
    border: black 1px solid;
    border-spacing: 0px;
}

table.schedule td ul, table.schedule td ol
{ 
    margin-top: 0ex;
    margin-bottom: 0ex;
    padding-top: 0ex;
    padding-bottom: 0ex; 
}

table.schedule td ul li.lastincell { padding-bottom: 1ex; }
table.schedule td ol li.lastincell { padding-bottom: 1ex; }

table.schedule td p
{ 
    margin-top: 0ex;
    margin-bottom: 0ex;
    padding: 1ex;
}


             /* imageblock table:  table setting for a block with an
		image/text pairing.  these settings mainly control
		margins, padding, and borders */

table.imageblock
{
    width: 100%;
    margin: 0ex;
    margin-right: 1ex;
    padding-right: 1ex;
    padding-top: 0ex;
    border: black 0px solid;
    border-spacing: 0px;
}


             /* main text block */

div.maintext
{
    background-color: white;
    clear: none;
    padding-top: 0%;
    padding-bottom: 0%;
}


             /* footer block */

div.footer
{
    background-color: white;
    clear: none;
    padding-top: 1ex;
    padding-bottom: 1ex;
    border-bottom: black 2pt solid;
}


             /* address block */

address
{
    margin-top: 2ex;
    margin-bottom: 3ex;
    FONT-SIZE: 12px;
}
address img { float: right; }


             /* table */

table { font-size: 14px; }
