Buenas y bienvenido al maravilloso mundo del HTML jajaj
Como bien dices, es una chapuza, no por funcionamiento, sinó porque el día que tengas que cambiar un acento de una sección, o añadir una nueva, o lo que sea, tendrás que cambiarlo en todos los archivos (yo lo sufrí en el curro con una web de 300 .html aprox y madre mía...)
Lo primero que deberías hacer es tener sólo el menú en una sola página, por ejemplo "menu.html". Luego tener otra que se llame "main.html" por ejemplo, que será el contenido de la página. Y finalmente "index.html" que será el que lo organizará todo para que se vea en una sola página, usando marcos o
frames.
Archivo:
main.html Código PHP:
<html>
<body>
<center>
Bienvenidos a mi hueb!
</center>
</body>
</html>
Archivo:
menu.html Código PHP:
<html>
<body>
<center>
<table style="width:400px; text-align:center;" border="0">
<tr style="text-align:center;">
<td><a href="main.html" target="main">Inicio</a></td>
<td><a href="menu.html" target="main">Registrate</a></td>
<td>FAQ</td>
<td>Contacto</td>
</tr>
</table>
<table style="width:300px; text-align:center;" border="0">
<tr style="text-align:center;">
<td>Guitarras</td>
<td>Bajos</td>
<td>Baterias</td>
</tr>
</table>
</center>
</body>
</html>
Archivo:
index.html Código PHP:
<html>
<head>
<title>Mi hueb</title>
</head>
<frameset rows="10%,*" frameborder="1">
<frame name="menu" src="menu.html" marginwidth="10" marginheight="10" scrolling="auto">
<frame name="main" src="main.html" marginwidth="10" marginheight="10" scrolling="auto">
</frameset>
</html>
Abre index.html y comprueba que la página de secciones de arriba no cambia, sólo recarga en el marco de abajo. Para hacer eso, fíjate que los links con "a href" deben llevar target="name_del_frame_donde_queremos_cargarlo".
Si no quieres que aparezca la línea separatoria ponle un cero en frameborder="1" (lo dejé visible para que vieras como funciona realmente)
Si necesitas más info googlea buscando "frames HTML".
Saludos!