Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Mapa de imágenes y Frame (https://www.clubdelphi.com/foros/showthread.php?t=50212)

ixMike 11-11-2007 23:35:37

Mapa de imágenes y Frame
 
Hola a todos.

Veréis, soy nuevo en esto de hacer páginas WEB, ya había hecho cosillas antes, pero muy sencillas. Ahora quiero ampliar mis conocimientos, y estoy haciendo una página con el Bloc de Notas (en realidad es mentira, utilizo uno que resalta la síntaxis HTML, pero a fin de cuentas es lo mismo).

El caso es que estoy intentando hacer una "construcción" que no me sale. El manual de HTML de donde estoy aprendiendo no me dice mucho, y no se me ocurre qué hacer.

El diseño de la página es sencillo: en la parte de arriba un mapa de imágenes, que es el menú, y debajo de este, un frame, donde se deben cargar los distintos enlaces del menú.

Lo que me pasa es que no logro visualizar el frame (el mapa de imágenes va a la perfección, pero como el frame no va, los enlaces se abren en otra ventana).

El código que utilizo es este:

Código PHP:

<body>

<
div align="center">

<
map name="mapa">
  <
area alt="Foro" shape="RECT" coords="20,170,120,210" href="http://terluna.losforos.es" target="marco">
  <
area alt="Crónicas" shape="RECT" coords="160,170,345,210" href="cronicas.html" target="marco">
  <
area alt="Reglas" shape="RECT" coords="390,170,520,210" href="reglas.html" target="marco">
  <
area alt="Personajes" shape="RECT" coords="555,170,770,210" href="personajes.html" target="marco">
  <
area alt="Terluna por dentro" shape="RECT" coords="240,225,560,260" href="pordentro.html" target="marco">
</
map>

<
img src="fondo.png" border="0" usemap="#mapa">
<
br clear="all">

<
p>Texto antes</p>
<
frameset rows="*">
<
frame src="blank.html" name="marco" scrolling="yes" noresize>
</
frameset>
<
p>texto despu&#233;s</p>
</div>

</
body

"Texto antes" y "texto después" los puse para comprobar que realmente no había nada de nada. "blank.html" es un archivo que sólo tienes las etiquetas html head y body, sin texto ni nada.

¿Alguien sabe cómo hacerlo?

Gracias.

dec 12-11-2007 00:20:44

Hola,

Cita:

(...) estoy haciendo una página con el Bloc de Notas (en realidad es mentira, utilizo uno que resalta la síntaxis HTML, pero a fin de cuentas es lo mismo).
Si puedes (y quieres, claro) dale una oportunidad a Aptana. Te va a encantar, ya verás. :)

Respecto de los frames... no tiene mucho misterio. Un enlace cuyo "target" es el nombre del frame donde quieres cargar la página correspondiente. Si no funciona... probablemente sea un problema con las rutas de los archivos, porque, ya digo, no hay misterio alguno.

Sin embargo... ¿frames? Pienso que hay que tener una buena razón para usar "marcos" a estas alturas de la película. Puedes hacer lo que quieres, estoy seguro, sin necesidad de usar marcos. Los marcos están "contraindicados", por muchos motivos.

Hazte esta pregunta: ¿Cuántas páginas de las que visitas usan marcos? Creo que con eso está dicho todo... :)

Bueno. No. En Tierra de nómadas hay un artículo titulado "A vueltas con los marcos" de recomendable lectura. En realidad toda Tierra de nómadas es de recomendable lectura, todavía hoy, y lleva sin actualizarse, desafortunadamente para nosotros, varios años ya... sin exagerar...

ixMike 12-11-2007 01:20:04

Gracias Dec por la respuesta.

Ya medio-solucioné el problema. Resulta que la etiqueta frameset no se puede colocar dentro de un body, es más, este se debe omitir. El caso es que ya lo he solucionado (haciendo dos frames, y cargando en uno el menú, "menu.html") pero pasa que ahora el texto que cargo abajo (inicio.html) no se queda centrado al ancho de la imagen de menu.html (en resolución 800x600 no se notaría, pero en 1024x786 sí se nota).

Lo he arreglado así:

Código PHP:

<html>

<
head>
<
title>Terluna</title>
<
link rel="SHORTCUT ICON" href="terluna16.ico">
</
head>

<
frameset rows="300,*" border="0">
<
frame src="menu.html" scrolling="no" noresize>
<
frame src="inicio.html" name="marco" scrolling="yes" noresize>
</
frameset>


</
html

Pero, si me desaconsejas los frames, ¿qué puedo utilizar?

Gracias de nuevo.

P.D.: Gracias por la recomendación de Aptana, pero realmente quiero hacer la página 100% editando el código HTML (puede parecer una locura, pero lo prefiero así, me obligo a aprender, que es al fin y al cabo lo que quiero).

dec 12-11-2007 01:51:23

Hola,

Anda, pues es verdad... y digo es verdad porque haciendo ciertas pruebas (antes de responderte) yo también caí en que no podían usarse "frames" dentro del cuerpo del documento, o a esa conclusión llegué, porque, como también topé con otros problemas, no sé ya si era una cosa, era la otra, o de todo era. :)

Respecto de no usar marcos... bueno... debe haber como tropecientas maneras de hacer menús, esto tiene también algo de "imaginación", así que... pero, el asunto está, básicamente, en que puede que no haya necesidad de usar marcos, cuando menos.

Un menú tiene enlaces que llevan a otra página, ¿no? Pues bien, que haga eso, que no "encierre" la página dentro de un marco, mostrando el menú en otro marco, porque al final todo son marcos... Pero, ya digo, yo no me atrevo a decirte "así hay que hacerlo", tal vez nadie pueda.

Sin embargo, te he preparado un par de archivos donde he copiado la "funcionalidad" del menú que estoy utilizando en cierto proyecto. Yo trabajo con PHP, así el menú se construye "al vuelo", pero, creo que podría servir, más o menos, para el caso de contar sólo con HTML, y, claro está, CSS.

No pretendo que lo uses. De hecho echas un vistazo en tu buscador favorito sobre "Ejemplos de menú con CSS", bueno, es que vas a alucinar. :) Pero, en fin, ahí queda, por si sirve de algo, y tú no dejes de mirar por otros lares también.

PD. Ojo con lo que dices de Aptana: no es un editor WYSIWYG de esos, únicamente, proporciona una ayuda fenomenal, puesto que autocompleta código, ofrece alternativas, ayuda contextual, tratamiento de errores según escribes... pero el código lo tienes que escribir tú, o sea, es como si dijeras que quieres programar en Delphi con el bloc de notas. Podrías hacerlo, pero, el editor de código de Delphi te ayuda bastante, ¿no? Pues Aptana lo mismo, pero, para XHTML, CSS, JavaScript, XML...

PD2. Acabo de darme cuenta de que el ejemplo que adjunto no está completo, que puede parecer "extraño". En realidad se trata de que he añadido 3 subpáginas, como verás, y estas se repiten en los tres "items" del menú principal, pero, ti te fijas un poco verás que pueden añadirse tantas páginas como se quiera a modo de "submenú" del "item" del menú principal que se desee. Es cuestión de hacerlo.

PD3. Insisto en que busques más información por ahí, y a ver si algún otro compañero se anima a decir algo, pero, date un poco de tiempo y es probable que no veas la necesidad de usar marcos, y eso que te quitas del medio. Vamos, es mi opinión... tampoco quiero que mi palabra vaya a misa, que conste. ;)

ixMike 12-11-2007 02:57:57

Gracias otra vez, Dec.

Sí que es verdad que me he equivocado con Aptana. Lo he descargado e instalado (170MB me parecen mucho para lo que hace, ¿no?). Aunque creo que me queda grande, ya te he dicho que acabo de empezar con esto, apenas conozco etiquetas para HTML y no tengo ni idea de PHP o JavaScript (y menos de Ajax, que ni si quiera sé qué es :o).

En fin, supongo que con el tiempo iré aprendiendo.


En cuanto a mi problema, creo que meteré el menú en todos los HTMLs (aunque vaya un pelín más lento la carga de la página), y para centrar el texto, utilizaré una tabla (sin bordes, para que no se vea).


Saludos.

dec 12-11-2007 03:01:33

Hola,

Cuando no se trataba con lenguajes dinámicos, y, hasta donde yo llego (tal vez XML, XSL y así pueda valer... pero, aquí estoy muy perdido), es preciso "repetir" cierto código, pero, ¿qué ocupa el menú? Hablaremos de unos pocos de bytes... es más lo molesto de incluir el menú en varios sitios, de tener que estar pendiente de esto, pero, el no usar marcos aporta ventajas, por poner un ejemplo: todas las páginas de tu sitio tendrán sentido propio, no como cuando se usa marcos, que, en un momento dado, puede uno acabar en un menú que no puede usar, o en una página que no tiene menú alguno...

Delphius 12-11-2007 03:10:55

Hola ixMike,
Choca esos cinco, amigo y únete al club. Yo también soy notavo en el mundo del HTML, CSS y PHP. Los he usando antes pero sin conocimientos y todo al vuelo. Ahora creo que voy bien... bueno... con la ayuda que aquí el maestro Dec, Io y otros me han dado:D:cool:

Yo antes hacía mis páginas con marcos... de cuando todo el mundo los usaba hasta como ropa interior:D

Pero luego empecé a ver como se empezaba a hacer complicado su uso... empecé entonces a maquetar todo con tablas...

Y luego empecé a notar que en algunos navegadores eso no se ve bien. La solución usar etiquetas DIV y dentro de ellas, cuando sea necesario, las tablas.

Bueno en fin...
Considero que el tema de crear un menú lo más elegante, después de haber pasado por los marcos (y como he sufrido con ello... justo lo que comenta Dec) decidí directamente optar por repetir el menú en las páginas y listo.
Ahora para darle más "vista" lo que hago es emplear un poco de JavaScript (que se consigue con facilidad si uno busca... que hay tantos sitios que ofrecen código JS que hacen menus) y listo... ya está... asunto arreglado y me evito algunos dolores.

Saludos,

ixMike 12-11-2007 16:03:48

Cita:

Empezado por Delphius (Mensaje 245413)
La solución usar etiquetas DIV y dentro de ellas, cuando sea necesario, las tablas.


Yo llegué a la misma conclusión. ;)

Algo así:

div
table
td img
td el_resto_de_la_pagina
/table

/div


Salu2. :)

ixMike 20-11-2007 23:43:30

¡Hey!

No me di cuenta, pero después lo vi. ¡Una página conocida por todos y que utiliza frames! (bueno, eso me parece a mí, que utiliza dos frames, ¿no?)

Ni os lo imaginais, jeje. (Nota, el contenido que aparece es uno que salió al azar, fue el primer enlace que pillé, además menciona al Club ;))

Salu2.


La franja horaria es GMT +2. Ahora son las 11:07:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi