ugrás a tartalomhoz

Frame-ek helyett CSS-t alkalmazó oldal struktúrája PHP-vel

Anonymous · 2006. Jan. 3. (K), 09.42
Sziasztok!Megint én vagyok az! Tudjátok: Anonymus:)

Viccet félretéve, a kérdésem tulképpen a topic címében benne van.
Mindenhol arról olvasni, hogy a framesetek egy nyilvános honlap esetében kerülendõ.Olvasom szorgalmasan a weblabor oldalait és össze is szedtem pár információt, ötletet vajon hogy is nézhetne ki egy "frameseteket css-sel pótoló" weboldal általános szerkezete. Most egy kicsit konkrétabb megvalósításra szeretnék ötleteket kapni.

Ahogy kihámoztam az infókból a css-ben a framek helyettesítése a position, overflow,stb jellemzõk használatáva történik. És gondolom nem az a legcélszerubb megoldás hogy az oldalstruktúra összes linkjéhez tartozó html lapokba beleillesztjük ezeket a css stílusokat, hanem pl. egy php segítségével választjuk ki a megfelelõ lapot.

pl:index.php :(Tfh. A styles.css tartalmazza az összes formázást)
<?php
  if ($_GET["oldalid"]) $oldalid=$_GET["oldalid"];
  else $oldalid=1;
?>
<HTML>
<HEAD>
<LINK REL="stylesheet" HREF="styles.css" type="text/css">
</HEAD>
<BODY>
<DIV ID="header">Fejléc</DIV>
<DIV ID="menu">Menu</DIV>
<DIV ID="content">
 <?php
   switch ($oldalid)
     {
	case 1: include "oldalak/oldal1.html";break;
	case 2: include "oldalak/oldal2.html";break;
	...
        case n:	include "oldalak/oldaln.html";break;
     }
 ?>
</DIV>
</BODY>
</HTML>
(Természetesen az oldaln.html megfelelõen van felépítve, az a elemeknél a php-nak megfelelõen van az oldalid paraméter megadva).

A kérdésem annyi hogy a fenti példa jó-e, szép-e, az include alkalmazása megfelel-e,vagy van más megoldás?

köszönöm
 
1

fordítva?

Táskai Zsolt · 2006. Jan. 3. (K), 10.21
épp az ellenkezőjét szokták javasolni abban az értelemben, hogy a konkrét oldalakba szokás beinklúdolni a fenti kódban a szviccs előtti és utáni részt.
Tasi
2

Aha

Anonymous · 2006. Jan. 3. (K), 11.02
Ok, ez eszembe se jutott, de tényleg jó!
Köszi
3

Templatek

Jano · 2006. Jan. 3. (K), 14.32
Jó uton haladsz! Ha lesz még egy kis energiád akkor ismerkedj meg a sablonok, idegenül templatek fogalmával, használatával is.
4

Sziasztok

Anonymous · 2006. Jan. 13. (P), 12.00
Megcsináltam az oldal framek nelkuli verziojat. A dolog mukodik csak egyetlen dolog zavar, mégpedig a következö:
Az oldal három framet imitál: header, menu és a maradék v. content.Na most ha a különbözö DIV elemeknek (amelyek segítségével utánzom a frameket) nem szint, hanem valamilyen grafikat adok meg háttérnek (background:url(...)) akkor sajnos az oldalak betöltésekor a háttér nem jelenik meg egyböl, villan egyet fehér háttérrel , majd utána "áll helyre a rend" azaz veszik fel a DIV-ek a megfelelö kinézetüket. Ezt lehet-e valamivel orvosolni? E kis malör ellenére azért mégis jobb a framek nélküli oldalszerkezet, mint a frame-s?

köszönöm
5

kis javítás

Táskai Zsolt · 2006. Jan. 13. (P), 13.48
sajnos a problémádra nem tudom a végleges megoldást, de hadd említsem fel Janó hozzászólását egy másik topicban (most nem keresem meg), hogy a div háttérszíne mindenképp legyen hasonló a háttérkép színéhez, mert különben ha nem töltődik be a kép, akkor a szöveg olvashatatlanná válik/válhat. és nem mellesleg az ilyen villanások zavaró hatása is csökken kicsit hasonló szín alkalmazásával...
Tasi
6

Köszönöm

Anonymous · 2006. Jan. 13. (P), 13.52
köszönöm a választ, ez tényleg jó és müködik is:)
9

már megint a fránya IE:(

Anonymous · 2006. Jan. 16. (H), 22.59
Sziasztok

Itt a weblaborban találtam rá az egyik lehetséges megoldásra amely segítségével
emulálni lehet a frameket. A cikk címe "10 lépés a validság felé" (http://www.hszk.bme.hu/~hj130/hasznalhatosag/frame/index.html). Az oldalon a framekről is szó van és a http://soiland.no/frames_with_css/ linken ajánl egy lehetséges megoldást.

Megpróbáltam egy kicsit megmahinálni, mert nekem nem az ott vázolt struktúrára lenne szükségem, hanem egy fix magasságú headerre, egy fix szélességű bal oldali részre és a maradék változna a böngészőablak méretének megfelelően.

Egy kis részlet a kódból:

div.left,div.bottom,div.top {
position: absolute;
margin: 0;

/* Debuglines */
/* border: 1px dotted #aaa;*/

/* If scrolling is needed: */
overflow: auto;
}

div.bottom {
/* Placed in the lower part */
bottom: 0;
/* Don't overlap the left-side */
left: 10em;
/* Full width, this doesn't work completely with IE, but see
fixed_ie5.css for details. */
right: 0;
/* Height of bottom part */
height: 15%;
}

div.top {
/* In effect the rest of the screen, the main part if you like. */
top: 0;
/* width of .left */
left: 10em;
right: 0;
/* 100% - height of .bottom */
height: 85%;
}

A konkrét probléma: a felvázolt oldalstruktúrában a height paramétereket nem adhatom meg %-ban, sem és konkrét értékekben sem, viszont ha a height paramétereket eltüntetem és megpróbálom a top és bottom jellemzőkkel meghatározni a div magasságát, a horizontális scrollbar nem jelenik meg.

köszönöm
7

Nekem is erre lenne szükségem

hajnalbela · 2006. Jan. 15. (V), 12.05
Üdv!

Véletlenül találtam rá erre a fórumra, neke is pont ez a gondom, hogy keretek helyett akarok valami mást. A kód, amit leírtál tiszta és világos, mindössze annyi lenne a kérdésem, hogy az $oldalid értékét hogyan kell megváltoztatni? Mert ugye a harmadik divben az az oldal jelenik meg, amilyen az oldalid változó.

Vagyis ha pl elhelyezek a menüben 2 linket, azt hogy írjam le?

Köszönöm
8

Egyszerü

Anonymous · 2006. Jan. 16. (H), 22.41
Szia

Ez egyszerü php dolog,ha jól értem mire gondolsz:

p1.php:

<DIV ID="menu">
<A HREF="p1.php?oldalid=1>oldal1.php</A>
...
</DIV>

de olvashattad hogy forditva kellene megoldani,lásd 1. hozzászólás
10

pontosan hogy?

hajnalbela · 2006. Jan. 18. (Sze), 21.53
Helló4

Hogy értitek azt, hogy pontosan fordítva?

Ha lehet, kérnék egy konkrét kódrészletet

Köszönöm!

(Lehet, hogy hülye vagyok hozzá, de hát ezért vagyok itt :-) )
11

tényleg nem írtuk

Táskai Zsolt · 2006. Jan. 19. (Cs), 00.44
olyan értelemben, hogy nem egy közös keretből hívod a "tartalmakat", hanem minden oldalba bekéred az oldal fejrészét és alsó zárórészét. így a redundancia minimálisnak mondható... vagy mint fentebb javasolják, jöhet valami templételés.
Tasi