Main Points

The page navigation is one of the most important sections of any website. Here are the components of Earth Chronicle ASP.NET navigation structure. These may make more sense to do as components if we wind up with more than a couple master pages. Otherwise, every time we need to make a change, we'll have to update it in two or more places. Also note that while all this code is at the end of the HTML file, each section appears at a different point on the web page that's rendered due to the CSS styling.

An important need of any page navigation is to be available in accessibility-critical situations. This group of links serves as our ultimate backup navigation. There's no javascript, little CSS, everything is grouped topically for ease and logic. These are semantic and should hold up even under the most demanding of circumstances. The nav bars are not so stable, but provide much more user friendly functionality. These links provide basic functionality to all.

<!-- THIS IS THE NAVIGATION SECTION -->
<!-- This Section is for the Page Links -->
<div id="pageLinksWrapper">
<div id="pageLinks">
<ul class="contactResources">
<li><a href="Default.aspx">EC Beta Home</a></li>
<li><a href="NewsBeta.aspx">EC Beta News</a></li>
</ul>
<ul class="mainResources">
<li><a href="TableOfContentsBeta.aspx" class="holdingLink">Table of Contents Beta</a></li>
<li><a href="SiteIndexBeta.aspx" class="holdingLink">Site Index Beta</a></li>
</ul>
<ul class="newProjectIndexes">
<li><a href="Default.aspx#newProjects">New Projects</a></li>
<li><a href="ContentPageReview.aspx">Content Page Review</a></li>
</ul>
<ul class="newProjects">
<li><a href="AccessibilityTesting.aspx">Accessibility Testing</a></li>
<li><a href="DeveloperPlay.aspx">Developer Play</a></li>
<li><a href="CustomizedCSS.aspx">Customized CSS</a></li>
</ul>
<ul class="developerResources">
<li><a href="ReadersGuideBeta.aspx">Reader's Guide</a></li>
<li><a href="FAQBeta.aspx">FAQ Beta</a></li>
<li><a href="WebsiteLog.aspx">Website Log</a></li>
<li><a href="TestPage.aspx" class="holdingLink">Test Page</a></li>
</ul>
<ul class="ecWebsites">
<li><a title="The Test Site of your Online Education Resource for History" href="Default.aspx">EC Beta Home</a></li>
<li><a href="http://www.earthchronicle.com/">EC Home</a></li>
<li><a href="http://atlas.earthchronicle.com/" class="holdingLink">EC Atlas Home</a></li>
</ul>
</div>
</div>
<div id="pageLinksSpacer" class="spacer"></div>

If the page links are stable and user-friendly in situations where functionality is very limited, the nav bars are much more user-friendly in the more common situations where javascript and CSS can be assumed. Note that neither is particularly user-friendly in situations where they were not designed. Page links serve a basic SEO function when viewed in a fully functional browser, but aren't much good to a visitor. Likewise the navbars aren't effective without javascript. That's why both have their place on the page.

Skip to Main Points

Master Page Main Nav Bar

Here is the code for the main navigation bar at the top. It is primarily geared to serve people in getting around the ASP.NET beta website.

<!-- This is the Page/Section Specific Header NavBar. -->
<div id="specificNavbarWrapper">
<div id="specificNavbar" class="specificNavbar">
<div id="specificButton01" class="navButton">
<a href="Default.aspx">EC Beta Home</a>
</div>
<div id="specificMenu01" class="navMenu">
<ul class="mainResources">
<li><a href="TableOfContentsBeta.aspx" class="holdingLink">Table of Contents Beta</a></li>
<li><a href="SiteIndexBeta.aspx" class="holdingLink">Site Index Beta</a></li>
</ul>
</div>
<div id="specificButton02" class="navButton">
<a href="#feedback">Contact Us!</a>
</div>
<div id="specificMenu02" class="navMenu">
<ul class="contactResources">
<li><a href="NewsBeta.aspx">EC Beta News</a></li>
<li><a href="#feedback">Contact Us!</a></li>
</ul>
</div>
<div id="specificButton03" class="navButton">
<a title="The Test Site of your Online Education Resource for History" href="Default.aspx#newProjects">New Projects</a>
</div>
<div id="specificMenu03" class="navMenu">
<ul class="newProjects"> <li><a href="AccessibilityTesting.aspx">Accessibility Testing</a></li>
<li><a href="DeveloperPlay.aspx">Developer Play</a></li>
<li><a href="CustomizedCSS.aspx">Customized CSS</a></li>
<li><a href="ContentPageReview.aspx">Content Page Review</a></li>
</ul>
</div>
<div id="specificButton04" class="navButton">
<a href="ReadersGuideBeta.aspx">Reader's Guide</a>
</div>
<div id="specificMenu04" class="navMenu">
<ul class="developerResources">
<li><a href="FAQBeta.aspx">FAQ Beta</a></li>
<li><a href="WebsiteLog.aspx">Website Log</a></li>
<li><a href="TestPage.aspx" class="holdingLink">Test Page</a></li>
</ul>
</div>
<div id="specificButton05" class="navButton">
<a title="The Test Site of your Online Education Resource for History" href="Default.aspx">EC Beta Home</a>
</div>
<div id="specificMenu05" class="navMenu">
<ul class="ecWebsites">
<li><a href="http://www.earthchronicle.com/">EC Home</a></li>
<li><a href="http://atlas.earthchronicle.com/" class="holdingLink">EC Atlas Home</a></li>
</ul>
</div>
</div>
</div>
<div id="specificNavbarSpacer" class="spacer"></div>

The idea behind this kind of nav is that you set up an unordered list for the menu headings and then use nested lists for each menu (you can even do multiple levels of fly out menus as a nested list to an already nested list). Somehow I wound up with a limited version that's using divs for the main buttons which drop the menus. I'll need to repair that, but right now I'm just working on getting the ASP.NET master page together. Then I can pull the navbars out as components and link the components back into the page. Then I can fix this.

Skip to Main Points

Master Page Secondary Nav Bar

My first navbar is section specific. It has the information and links most relevant to someone visiting this page, and currently the CSS brings this nav bar to the top. The next navbar - detailed below - is a general site wide navbar. A number of links are the same as is on the first, but these are the links that should be available on any page. Currently, the CSS pulls this navbar down to the bottom of the page rather than the top and there is more emphasis on providing access to Earth Chronicle pages.

<!-- This is the Standard Site Wide NavBar. -->
<div id="siteWideNavbarWrapper">
<div id="siteWideNavbar" class="siteWideNavbar">
<div id="siteWideButton01" class="navButton">
<a href="http://www.earthchronicle.com/">Earth Chronicle</a>
</div>
<div id="siteWideMenu01" class="navMenu">
<ul class="mainReferences">
<li><a href="http://www.earthchronicle.com/Timelines.aspx" class="holdingLink">Timelines</a></li>
<li><a href="http://www.earthchronicle.com/ReferenceShelf.aspx">Reference Shelf</a></li>
<li>Chronicle Subj.</li>
<li><a href="http://www.earthchronicle.com/CSAlphabetical.aspx" class="holdingLink">..Alphabetical</a></li>
<li><a href="http://www.earthchronicle.com/CSECANCodes.aspx" class="holdingLink">..ECAN Subjects</a></li>
</ul>
</div>
<div id="siteWideButton02" class="navButton">
<a href="#feedback">Contact Us!</a>
</div>
<div id="siteWideMenu02" class="navMenu">
<ul class="contactInfo">
<li><a href="http://www.earthchronicle.com/RomanForum.aspx">Roman Forum</a></li>
<li><a href="#feedback">Contact Us!</a></li>
</ul>
</div>
<div id="siteWideButton03" class="navButton">
<a href="http://www.earthchronicle.com/RecruitingIndex.aspx">I Want to Help!</a>
</div>
<div id="siteWideMenu03" class="navMenu">
<ul class="recruitingPages">
<li><a href="http://www.earthchronicle.com/RecruitingSubmissions.aspx">Article Writers</a></li>
<li><a href="http://www.earthchronicle.com/RecruitingProofreaders.aspx">Proofreaders</a></li>
<li><a href="http://www.earthchronicle.com/RecruitingResearchers.aspx">Researchers</a></li>
<li><a href="http://www.earthchronicle.com/RecruitingWebDesigners.aspx">Web Designers</a></li>
</ul>
</div>
<div id="siteWideButton04" class="navButton">
<a href="http://www.earthchronicle.com/ReadersGuide.aspx">Reader's Guide</a>
</div>
<div id="siteWideMenu04" class="navMenu">
<ul class="developerTools">
<li><a href="http://www.earthchronicle.com/FAQ.aspx">FAQ Page</a></li>
<li><a href="http://www.earthchronicle.com/Test.aspx">Test Page</a></li>
</ul>
</div>
<div id="siteWideButton05" class="navButton">
<a href="http://www.earthchronicle.com/SiteIndex.aspx">Site Index</a>
</div>
<div id="siteWideMenu05" class="navMenu">
<ul class="basicReferences">
<li><a href="http://www.earthchronicle.com/TableOfContents.aspx">Table of Contents</a></li>
<li><a href="http://www.earthchronicle.com/ImageIndex.aspx">Image Index</a></li>
</ul>
</div>
</div>
</div>
<div id="siteWideNavbarSpacer" class="spacer"></div>
<!-- This is the Javascript Call -->
<script type="text/javascript" src="Scripts/earthchronicle.js"></script>

There are still several things I need to do to finish this topic. I need to break out several sections of code that will be reused over and over again. (as components?) I'd expected to handle it from an XML sitemap, however I've discovered that a web.sitemap file will not allow you to reference the same page in two different places, all urls in the sitemap must be unique. This is completely impossible in any reasonable navigation structure where different categories need to reference the same file (e.g. does Beethoven belong in European history or the Enlightenment? Oh crap, he's both. No point in using a sitemap then is there? :S) So I'm somewhat betwixt and between how to set this up now.

It's also time to adjust the CSS, JS(?), and form <label> tags match up with the code. I've already renamed the CSS files so I can play with this test without breaking the entire site. Ultimately, I want the site based on this new template, but I want to square this away and figure out what I'm doing as a first step. I want to save taking the template site wide until I'm completely done with this part. Otherwise, I smell all kinds of problems. Address id and name scrambling and try to puzzle out the rules. I have a live working demo now, that will hopefully reveal some things. Fortunately even with the current scrambling, it basically seems to work. No javascript cutting out, etc. I also need to track down the errors in the header indents. And I should clean up the navbar code. The main nav bar is created as a series of divs, when really it should be a master list in which each of the other lists for the menus are nested. It's probably better to fix that before I go site wide although the master pages (and components?) should make it easy to modify. Should I just leave well enough alone for right now? I think I need to fix this before I have a second (www.EarthChronicle.com) site to worry about. (and a third, atlas.EarthChronicle.com?)

Skip to Main Points
Continue to 6. Master Page Live Demo -->
<---- Jump back to Master Page Development