Newsgroup: it.comp.www.html
Titolo: Guida sui livelli

Qualcuno può consigliarmi qualche sito sui livelli? Cosa sono, come
funzionano e qualche esempio??
ciao

 ciao
http://html.it/guida/html_43.htm
e
http://www.html.it/css/guida_css_28.htm
(in particoalre per visibility e z-index)

interessante, ma quello che vorrei sapere è se i livelli (o layer)
possono sostituire i frame. e se si, come...
ciao

 possono sostituire i frame. e se si, come...
Sì, possono sostituire i frame.
L'utilizzo dei frame è ormai sconsigliato a tal punto che il W3C non li ha
nemmeno inseriti in XHTML 1.1 al punto da renderli deprecati.
In XHTML 1.0 vengono lasciati solo per retrocompatibilità dato che XHTML
1.0 è visto come una transizione da HTML a XHTML puro.
Come si fa?
Utilizzi i CSS per assegnare proprietà che simulino un frame e un
linguaggio lato server a tua scelta per incorporare il documento voluto
nella tua pagina.
I tag span e div ti serviranno per definire i contorni del layout.
Quali sono i vantaggi? Tra gli altri:
1. non hai problemi nell'indicizzazione delle tue pagine;
2. le pagine risultano accessibili;
3. possibilità di accedere ai contenuti da tutti i dispositivi e con tutti
i dispositivi;
4. possibilità di creare layout molto complessi;
5. separazione tra contenuti e grafica;
6. fine dell'utilizzo eccessivo di codice ridondante;
7. la modifica del layout diventa facile e veloce.
Un esempio pratico:
CSS:
#contenuto {
  height: 200px;
  width: 100px;
  overflow: auto;
  ...
}
XHTML:
....
<div id="contenuto">
/* Codice (SSI, ma va bene qualsiasi linguaggio server side) per inserire
un documento esterno */
<!--#include file="tuapagina.ext" -->
</div>
....
Fine dei giochi. Se utilizzi PHP al posto del codice SSI sopra proposto
inserisci:
<?php
include ("tuapagina.ext");
?>
Ovviamente tramite CSS le possibilità grafiche sono innumerevoli.
Ciao.
-- 
[Non siamo materia che aspetta, ma schemi che si perpetuano.]
Rhadamanth.net (
http://www.rhadamanth.net
)
Web Garbage (
http://www.web-garbage.com
)

 Ciao.
sai dove posso trovare qualche esempio di una pagina che usa i livelli
invece dei frame??

 invece dei frame??
Ma allora l'esempio cosa l'ho postato a fare? :-(
Guarda il codice di questa pagina:
http://www.rhadamanth.net/serverlang.php


 
http://www.rhadamanth.net/serverlang.php
Hai ragione, ma, onestamente, non ci ho capito molto.
Diciamo che tutto quello che ho sempre fatto in ambito di pagine è stato
HTML, tabelle, frame e swf... tutto qua. Semplice.
Questo discorso dei livelli m'interessa molto, ma purtroppo non mi è ben
chiaro...
Ma con i livelli, posso mettere una pagina "dentro una altra" oppure si
carica tutta una pagina nuova?... insomma, idee poche ma confuse :-)
ciao

 carica tutta una pagina nuova?... insomma, idee poche ma confuse :-)
Prendi la pagina che ti ho detto prima e considera per semplicità solo i
contenuti e il menu di destra.
La pagina è quindi formata da due file, uno raggruppa i contenuti e l'altro
contiene il menu.
Nella pagina avremo dunque due div:
<div id="contenuto">
/* Contiene i contenuti del sito */
</div>
<div id="indice">
/* Contiente il menu */
</div>
A questo punto grazie alle proprietà dei CSS associate agli id "contenuto"
e "indice" li posiziono dove meglio credo, scelgo il font, la larghezza,
ecc.
Consideriamo ora l'aspetto che ti interessa. Per facilitare la modifica del
menu ho creato un file apposta per contenerlo in modo tale che una
variazione su quel file produrrà un cambiamento su tutte le pagine che
mostrano quel menu.
Ovviamente a questo punto mi ritrovo con due file la pagina dei contenuti e
il menu. Come posso unirli? Qui ci vengono in aiuto i linguaggi lato server
(ASP, ASP.net, PHP, JSP, SSI, ecc.).
Con una stringa di codice scritta in un linguaggio lato server dico di
includere il file menu nel file che contiene la pagina contenuti.
Il linguaggio lato server quindi semplicemente aggiunge il codice di un
file ad un altro.
Nella struttura a frame la pagina da visualizzare conterrebbe
esclusivamente la struttura a frame e un analisi sul codice HTML
mostrerebbe niente di più che la dichiarazione del frameset e basta.
Nella struttura realizzata con l'inclusione lato server il codice XHTML si
presenta come un tutt'uno. A prima vista sembrerà una normale pagina
statica. Il codice (anche se proveniente da file diversi) apparirà come
unico.
Ecco perché gli spider non incontreranno problemi ad indicizzare la pagina
intera (anche se formata da più file). Per loro sembrerà semplicemente una
pagina statica HTML.
Il codice per includere una pagina esterna è quello che ti ho postato prima
e nell'esempio andrebbe inserito all'interno del div id="menu".
Utilizzare l'inclusione lato server ti fa risparmiare anche codice da
scrivere: una riga contro le diverse per gestire il frameset.
Indefinitiva non avremo quindi nessuna nuova pagina, ma una pagina che ne
includerà tante altre, rimanendo tuttavia come una pagina singola.


Prendi questo sito realizzato con i frame (classicissimo menu a sx)
senza frame come fai ad evitare il refresh di tutta la pagina

 senza frame come fai ad evitare il refresh di tutta la pagina
Cerchiamo di capirci dire che i frame sono pessimi strumenti o che le
tabelle vengono utilizzate in modo improprio non è un una moda o un modo
per distiguersi.
I frame sono uno strumento pessimo che ha fatto il suo tempo, non a caso il
W3C stesso li ha eliminati dalle specifiche per XHTML 1.1
I frame sono nati per tappare il buco del layout sofisticato (per l'epoca)
utilizzando solo l'HTML che per vari motivi (guerra dei browser, un codice
standard non ancora accettato, nessun supporto o supporto scarsissimo e
lacunoso dei CSS) non poteva essere risolto altrimenti se con con artifici
laboriosi e spesso proprietari.
Al tempo fattori come accessibilità, indicizzazione, codice ridondante,
semanticità dei documenti erano ancora parole al vento.
Al giorno d'oggi creare un sito non acessibile equivale a darsi la zappa
sui piedi e non soltanto perché un nostro utente potrebbe essere una
persona che soffre di handicap, ma perché il nosro utente probabilmente
potrebbe visitare il nostro sito con un palmare, un cellulare, tramite uno
schermo televisivo, tramite video player, ecc.
Utilizzare i frame su questi fronti significa che il nostro utente la
prossima volta sceglierà un altro sito.
L'indicizzazione dei motori di ricerca inoltre non è un aspetto da
sottovalutare. L'evoluzione degli spider che ormai basano tutto sui
contenuti saltano a piè pari un sito con una struttura a frame o
semplicemente indicizzano pagine che non dovrebbero.
Anche sotto il punto di vista della grafica una struttura a frame è
eccezzionalmente riduttiva se la confrontiamo con la potenza di un layout
basato sui CSS.
Infine parlando di pura fatica fisica del webmaster, perché mai bisogna
scrivere più codice contentente frame (che tra l'altro comporta tutta una
serie di problemi aggiuntivi) quando con minor fatica risusciamo ad avere
un prodotto migliore, standard e disponibile su tutti i dispositivi e per
tutti gli utenti?


 un file ad un altro.
Qui mi sono perso...
Vediamo se ho capito e dove sbaglio.
Ho una main page che deve essere per forza php (o asp) ma per esempio usiamo
php.
Ho un div "contenitore" gestito da css per il posizionamento e per l'aspetto
grafico
Ho un div "menu" gestito anch'esso da css per il posizionamento e per
l'aspetto grafico
Ho un'istruzione php messa tra i tag <div id="contenitore"></div> per
richiamare la pagina che voglio dal menu. E' così?
Oppure ho 2 pagine separate (una da includere nel div "contenuto" e l'altra
da includere nel div "menu" ?)
Qual'è il tag che lega le due inclusioni?
Scusa ma su questa parte faccio un bel po' di confusione :(
Io ho provato una cosa del tipo:
Creo una pagina php "prova.php"
- gli attribuisco un css "layout.css" in cui attribuisco un #contenuto
- nel <html><body> definisco un div contenuto
<div id="contenuto"> e ci metto un
<?php include("prova.htm"); ?> </div>
e già qui credo di commettere qualche errore poichè l'include è statico
mentre si dovrebbe riempire a seconda della scelta nel menu...
Help please...
Grazie in anticipo, scusa se ho inserito ieri sera un altro thread (evitare
frames e tabelle), non avevo visto questo.
Ciao
J

 <?php include("prova.htm"); ?> </div>
[CUT]
Include *include* una pagina dentro un'altra.
Per cui se hai una pagina contenuti e vuoi includere un menu, all'interno
dell'istruzione include scriverai ad esempio "menu.htm", mentre la tua
pagina sarà prova.php
Dove sta la comodità?
Beh che per inserire il menu basterà aggiungere una riga in ogni pagina e
non tutto il codice del menu e per modificarlo basterà intervenire su di un
singolo file.
