Warning: This page describes some of the technical stuff behind building a web site. If you don't understand what HTML, CSS, PHP and MySQLmean, then this page ain't for you. Go back to the interesting stuff now.
I'm fairly new to model railways and fairly new to web design as well. My day job is in IT Database Administration. One of the objectives of this web site was for me to learn about dynamic web pages. Instead of having a set of standard html pages, all the model information is stored in a MySQL database with web pages dynamically built using PHP scripts. The drop-down menu also uses database queries to build the menu lists.
This is still under construction and I'm still learning so it's still a bit rough in places and not all model information yet registered.But I'm slowly getting there.
I've also learnt about how different browsers handle HTML/CSS formatting differently. There is an industry standard for HTML and CSS formatting but not all browsers support the newer features in the standard. Unfortunately, the most commonly used browser is the worst offender in this regard. I've been using Firefox for some time now and having seen how the browsers handle the HTML and CSS code, I recommend Firefox to everyone. I have had very little experience with Opera but it also appears to handle the formatting well. My experience in developing this web site has left me feeling that Microsoft Internet Explorer is at the tail end of the field. There's some easy, neat stuff you can do with modern web design standards but you can't use it because Microsoft Internet Explorer, even the new Version 7, doesn't handle it correctly. I'm not normally a Microsoft basher but I am disappointed in their efforts in this case. Visit wikipedia to read about how Microsoft conquered Netscape in the browser wars of the late 1990s and the emergence of Firefox triggering a new browser war forcing Microsoft to rollout IE version 7 late 2006/early 2007.
The drop-down menu forms a vital part of this Web site structure and has been quite a challenge. For the first attempt, I used a Coffee Cup utility to produce the menu structure, then adapted the code to include database queries to construct the menu each time it is displayed. By simply adding an extra entry into the database for a new model, that model would then appear on the menu the next time it is displayed. The code was ugly and included extensive Java scripting but did the job until I could learn a better way.
Version two was very simple, using database queries to build lists and formatting controlled purely by CSS code. However, it was too good to be true. I cried when I tested it with Microsoft Internet Explorer (MSIE) and found it refused totally to process the newer CSS code. The new MSIE Version 7 does a bit better but still not up to scratch. Firefox and Opera handled it perfectly.
With the majority of people out there using MSIE Version 5 or 6, I was left with no option but to trash this perfectly good, simple html code. For Version three, I found a book with some fairly simple code but it just did not work anywhere, even after I fixed the obvious syntax errors in it. For Version four, I used and example from Alsacreations, using a combination of HTML lists, CSS code for formatting and a simple java script to handle the menus appearing and disappearing. I tolerated this as a temporary solution until I was able to get it right. I also switched to using a PHP script with MySQL queries to build the menu code each time the database is updated rather than each time a page is displayed to improve screen refresh time.
I found an example from JavaScript Kit that got me back on track. Version five is almost back to the simple lists and CSS code of version two but with a simple java script to help it. It still needed a couple of compromises to get it to work in MSIE but it's quite simple and does the job.