﻿
/*  ************************************************************************  *
 *                                master.css                                  *
 *  ************************************************************************  */

/*  This style sheet is for every page. Always include first.  */

/*  ************************************************************************  */

/*  Broadly speaking, this website has three types of page. 

    There is one banner page, named banner.htm, which uses master.css and 
    banner.css. 

    There are some relatively few TOC pages, each named toc.htm, each using 
    master.css and toc.css. 

    There are very many document pages, named arbitrarily, each using 
    master.css and document.css.

    If scripts run, each document page is rebuilt into a viewer (originally 
    a frameset, but nowadays simulated with BODY, DIV and IFRAME elements) 
    for the banner, the appropriate TOC and the document. Each of these is 
    in its own IFRAME to isolate its formatting from the viewer's. The 
    viewer's stylesheets are master.css, document.css and viewer.css. 

/*  ************************************************************************  */

/*  We get a much cleaner look from our component pages in their IFRAME 
    elements if their HTML has no border.  */

html {
  border:none;
}

/*  What's mainly wanted from this master stylesheet is to set a consistent 
    font for all pages.  */

body {
  font-family:Arial, Helvetica, sans-serif;
  font-size:10pt;
}

/*  For some reason, which may be worth investigating, the font-family 
    propagates to tables from the body but the font-size does not.  */

table {
  font-size:10pt;
}

/*  ***********************  */
/*  Viewing Without Scripts  */

/*  Apply the NoScript style to blocks that should show only if scripts do 
    not run. Such blocks disappear when scripts run, because one script or 
    another will change the "display" property to "none". 
    
    The most significant example is a banner that every document page has as 
    a design-time inclusion. If scripts run, they present a self-standing 
    banner.htm above the document and they hide the other banner.  */

.NoScript {
  display:block;
}

/*  **************  */
/*  Lists of Links  */

/*  Both types of banner present horizontal lists of links. There are 
    multiple ways to do this, each with their merits. At present, the lists 
    are actual lists and the LinkList and LinkListItem classes are applied to 
    UL and LI tags respectively. 

    One detraction of using UL and LI tags is that if insufficient width is 
    available, the list breaks between items. An entirely satisfactory 
    accommodation is yet to be devised for this.  */

.LinkList, .LinkListItem {
  border:none;
  margin:0px;
  padding:0px;
  white-space:nowrap;
}

ul.LinkList, li.LinkListItem {
  float:left;
  list-style:none;
}

/*  Each list item's sole child is an A tag so that the whole item will 
    respond to the :hover pseudo-selector.  */

.LinkList a {
  display:block;
  margin:0px;
  padding:0px;
  text-decoration:none;
}

/*  Descending from the A tag may be a nesting of SPAN tags which are where 
    the formatting gets done.  */

.LinkList span {
  display:block;
  margin:0px;
  padding:0px;
}

/*  The LinkList is typically in a block element, but if the LinkList itself 
    has inline flow, then vertical padding in the list overflows into the 
    container's padding. In such a case, to make the list occupy the whole 
    height of its container, set the container's vertical padding equal to 
    the list's padding.  */
    
/*  ************************************************************************  *
 *        Copyright © 2007-2021. Geoff Chappell. All rights reserved.         *
 *  ************************************************************************  */
 