Buenas a todos. Estoy elaborando una pequeña web en la que me ha surgido el siguiente problema:
Resulta que tengo a la izquierda un menú con diferentes links, y quiero que al hacer click en ellos se me muestre en una celda de una tabla determinada un documento HTML. Es esto posible? Que maneras hay de hacerlo?. Aquí el código:
<html>
<head>
<title>MindElf CoD</title>
<link rel="stylesheet" type="text/css" href="Estilo.css">
</head>
<body>
<table border="1px" width="100%" height="100%">
<tr>
<td height="30%">
</td>
</tr>
<tr>
<td>
<table border="1px" width="100%" height="100%">
<tr>
<td width="20%">
<table width="100%" height="100%">
<tr>
<td class="menu">
Portal
</td>
<tr>
<tr>
<td class="menu">
Galería
</td>
<tr>
<tr>
<td class="menu">
Videos
</td>
<tr>
<tr>
<td class="menu">
<a href="https://www.youtube.com/user/Mindelfcod">YouTube</a>
</td>
<tr>
<tr>
<td class="menu">
<a href="https://twitter.com/MindelfCoD">Twitter</a>
</td>
<tr>
<tr>
<td class="menu">
Mi clan
</td>
<tr>
</table>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Y esta es la web:
(http://thumbs.subefotos.com/474caedc39fc7ecf4d56801b2568060bo.jpg) (http://subefotos.com/ver/?474caedc39fc7ecf4d56801b2568060bo.png)
Puedes hacer uso de frames en lugar de tablas. Si quieres cargar archivos HTML en una etiqueta HTML vas a necesitar usar AJAX. jQuery tiene un metodo muy sencillo para cargar HTML de otra pagina:
http://api.jquery.com/load/
Para usarlo:
("#iddetd").load("archivo.html");
Yo te recomiendo 2 cosas:
1.- No uses tablas para el diseño de tu web y menos anidar 3 tablas seguidas. Las tablas era una alternativa utilizada hace años para la estética de la web, pero hoy día no se hace así. Debes utilizar los contenedores como <div> o <span>
2.- El estilo de las tablas no lo hagas de esa forma, no vas a poder validar el código. POr ejemplo, esto:
<table border="1px" width="100%" height="100%">
crea una clase y hazlo así:
<table class="tb-mnu">
Y en el archivo que tienes Estilo.css, añade:
.tb-mnu{
border: 1px solid black;
width: 100%;
height: 100%;
}
Respecto a tu duda, ¿no sería más sencillo usar un CMS y enlazar tu menú a distintas partes de tu web?
Vale, como pueden ver estoy comenzando en esto del diseño web, y ya pensaba que las tablas eran un poco coñazo. Entonces debería usar <div> no?. Que es eso del CMS? Alguien me lo podría explicar, si es tan amable?
Gracias por las respuestas.
CMS son las siglas de Content Management System. Son Gestores de Contenido.
Tienes muchísimas opciones en vez de hacer una web estática desde cero solo con HTML.
Ejemplos de gestores de contenidos hay miles: WordPress, Joomla!, Drupal y un largo etc...
Ah, si ya sabia lo que era pero no que esas eran su siglas =S. Me parece una buena opción, aunque me hubiera gustado programar una web desde 0.
Saludos
Puedes crearla tú mismo desde cero, pero si lo haces solo con código HTML y CSS vas a generar una web estática que es muy difícil de actualizar. Te lo digo porque tal vez quieras actualizar contenido periódicamente viendo tus menús.
Si tal vez tú solo quieres hacer una web estática que no va a variar mucho en años, pues entonces hazla solo con HTML.
De todos modos, usando un gestor de contenido tú puedes crear desde cero tu propia plantilla y podrás aprovecharte de todo el trabajo que hay detrás de ese CMS: seguridad, plugins, foros de soporte, dudas etc...
Yo creo que proponer un CMS como solución a algo tan sencillo es demasiado. Es como matar una mosca con un RPG.
Era muy usual trabajar con tablas para estructurar la página pero hoy en día con CSS 3 hay muchas formas de posicionar los elementos y darles la apariencia que necesitas al igual que se hacía con tablas.
Yo para un menu te recomiendo que uses listas desordenadas.
<ul>
<li><a href="link1.html">Link1</a></li>
<li><a href="link2.html">Link2</a></li>
</ul>