Forum Moderators: phranque
How you approach this would depend a great deal on what your web server will let you use. Server-side includes would be one way to accomplish this. If your web server supports PHP, ASP, etc.. or support simple server-side includes, you should be set.
For example, let us say you are using ASP on your web server (in all cases, the principle is the same, just some syntax differences in how you implement this). Create a directory of the root called "includes". Here, create files called "topnav.html", "footer.html" and "leftnav.html". For now, just put the "this is my top nav" as the content of each file (no <html></html> or <body></body> tags like you would find in a standard web page, just the specific content and HTML code to build your top nav bar, etc...).
Next, create a standard web page, but leave off your top and left nav bars, footer, etc... Where you would normally have the html for your top nav, for example, put in the following line of code:
<!--#include virtual="/includes/topnav.html"-->
do the same for the left nav and footer.
Save this page as test.asp.
Now, when you acess this web page, your web server will notice that this is an ASP page, and therefor requires the server to first run any embedded instructions. As the server parses through this page, it will see the include files, grab the contents of these files and insert the contents in place of the include statement. So, where it sees:
<!--#include virtual="/includes/topnav.html"-->
the server would replace that with "this is my top nav", or what ever you have in the file topnav.html. Pretty cool, eh?
Again, I used ASP for this example, but the steps are the same for other methods (PHP, SSI using .shtml files, etc...). They only differ in the details of implementing.
Now (not to throw too much info at you) there is even a cooler way of doing this... Templates. With a template, you build a single web page with all the look/feel for your site, but instead of putting in the actual content, you put in variables. For example, let's say all the content on your site is in the same format: you always have article date, article headline and article copy. Well, in your template file, build it as a normal web page, but instead of typing in the actual article date, headline and copy, you put in a variable for each of those three items. Then you can use server-side scripting (such as PHP or ASP) to get the actual content from a database and dynamically build each page when ever someone clicks a link to that page. This way, you can have a single web page that behaves like hundreds of pages, changing out the content for each record in the database.
Again, this is a really top-level, general terms description of the process, but hopefully it will give you some idea of what can be done.
but, before going any further, you will need to find out what your webhost will support...