[CSS] Sviluppo Layout

Discussioni inerenti lo sviluppo di markup XHTML e CSS validi.

Moderatori: antoscarface, Kagemitsu

Regole del forum
Per scrivere del codice all'interno di ogni post, utilizzare il tag: [syntax=il_linguaggio]codice[/syntax] sostituendo "il_linguaggio" con il linguaggio del codice che dovete inserire, ad esempio: html, css, javascript, php, asp, ecc...

[CSS] Sviluppo Layout

Messaggioda Gigi88 » giovedì 10 giugno 2010, 12:52

ciao ragazzi sono di nuovo qui a disturbarvi :devil:

sto realizzando il mio primo layout con css/html e volevo qualche consiglio a riguardo :tmi:

per ora ho definito solo la struttura fissa e i tre livelli (header,center,footer) con i div

il sito è dedicato a un fantacalcio e i contenuti saranno pochi e da aggiornare solo un paio di volte all'anno, credo di arrivare a max 5 pagine effettive per cui l'impostazione in html credo che vada bene che ne dite?

ho iniziato a lavorare sull'header che sto provando a realizzare in stile facebook così che i miei amici che sono poco esperti di web ma che sanno usare facebook lo troveranno facile da utilizzare, poi credo che come prima prova personale sia fattibile
per realizzarlo ho trovato sulla rete una guida e l'ho seguita >> http://www.vanseodesign.com/css/simple-navigation-bar-with-css-and-xhtml/

ottenendo questo risultato per ora: http://bit.ly/bmjOMO

questi sono html e css
Sintassi: html [ Scarica ] [ Nascondi ]
  1. <body>
  2. <div id="container">
  3. <div id="header">
  4.   <div id="logo"><a href="home.html" class="header_logo"></a></div>
  5.   <div id="navigation">
  6.     <ul id="list-nav">
  7.       <li><a href="#">Storia</a></li>
  8.       <li><a href="#">Allenatori</a></li>
  9.       <li><a href="#">Regolamento</a></li>
  10.  
  11.     </ul>
  12.   </div>
  13. </div>
  14. <div id="center">
  15.         </div>
  16. <div id="footer">
  17.         </div>
  18.    
  19. </div>
  20. </body>

Sintassi: css [ Scarica ] [ Nascondi ]
  1. body{
  2.         background-color:#8b8b8b;
  3.         font-size:16px;
  4.         margin:0;
  5.         padding:0;
  6.         font-family: Georgia, "Times New Roman", Times, serif;
  7. }
  8.  
  9. #container {
  10.         position: absolute;
  11.         left: 50%;
  12.         margin-left: -480px;
  13. }
  14.  
  15.  
  16.  
  17. #header{
  18.         background-color:#678F5F;
  19.         height:40px;
  20.         width: 960px;
  21.         border-bottom-width: 1px;
  22.         border-bottom-style: solid;
  23.         border-bottom-color: #FFF;
  24. }
  25.  
  26. #center {
  27.         background-color:#78BF69;
  28.         min-height:500px; /* for modern browsers */
  29.         height:auto !important; /* for modern browsers */
  30.         height:500px; /* for IE5.x and IE6 */
  31.         width: 960px;
  32. }
  33.  
  34. #footer {
  35.         clear:both;
  36.         background-color:#678F5F;
  37.         height:50px;
  38.         width: 960px;
  39.         border-top-width: 3px;
  40.         border-top-style: solid;
  41.         border-top-color: #FFF;
  42. }
  43.  
  44. #logo {
  45.         position: absolute;
  46.         height: 40px;
  47.         width: 200px;
  48.         float: left;
  49. }
  50. .header_logo { /*rollover su logo principale*/
  51.         background-image: url(../images/header_logo_sx.png);
  52.         background-position: 0px 0px;
  53.         display: block;
  54.         height: 40px;
  55.         width: 200px;
  56. }
  57.  
  58. .header_logo:hover { /*rollover su logo principale*/
  59.         background-image: url(../images/header_logo_sx.png);
  60.         background-position: 0px 40px;
  61. }
  62.  
  63. #navigation {
  64.         height: 40px;
  65.         width: 360px;
  66.         float:right;
  67. }
  68.  
  69. #list-nav {
  70.         margin:20;
  71.         padding:0;
  72.         list-style-type: none;
  73.         width: 360px;
  74. }
  75. #list-nav li {
  76.         display: inline;
  77. }
  78. #list-nav li a {
  79.         text-decoration: none;
  80.         float: left;
  81.         width: 120px;
  82.         padding-top: 5px;
  83.         padding-right: 0px;
  84.         text-align: center;
  85.         color: #FFF;
  86. }
  87.  
  88. #list-nav li a:hover {
  89.         background-color: #a1df94;
  90. }
  91.  



chiedo un vostro parere su una serie di cose :O


Primo punto
I due div (logo & navigation) li ho posizionati bene all'interno del div header? ho usato float left e right per inserirli

Secondo punto
Se voglio centrare verticalmente il menu su cosa devo agire? sul div navigation oppure sulla lista list-nav proprio? Che codice devo usare?

Terzo punto
Finché non avevo settato la famiglia di caratteri non avevo problemi nel rollover (vedere immagine seguente), ora invece mettendo Georgia mi esce una sottile riga verde scuro al di sotto. Da che dipende?
Immagine


grazie in anticipo a tutti :geek:


edit mi è venuto fuori un ulteriore problema: se ridimensiono la finestra del browser il layout non mi viene mostrato interamente, è una conseguenza della struttura fissa in particolare oppure ho commesso qualche errore io?
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Re: [CSS] Sviluppo Layout

Messaggioda JustB » venerdì 11 giugno 2010, 2:04

Ciao Gigi88
cercherò di risponderti per punti.
gigi88 ha scritto:Primo punto
I due div (logo & navigation) li ho posizionati bene all'interno del div header? ho usato float left e right per inserirli


Se questo è l'effetto che vuoi ottenere, sono posizionati benissimo. Ricorda che ci sono sempre più strade che portano allo stesso risultato, l'importante è usare del codice che si riesce a comprendere, in modo che se devi metterci le mani sai cosa fare.
gigi88 ha scritto:Secondo punto
Se voglio centrare verticalmente il menu su cosa devo agire? sul div navigation oppure sulla lista list-nav proprio? Che codice devo usare?

A questa domanda ti rispondo con un'altra domanda: perché hai messo il div navigation intorno alla lista? È vero che il div è l'elemento fondante dei layout CSS ma se è inutile, come in questo caso, si può benissimo non utilizzare. Infatti l'ul che hai utilizzato è più che sufficiente per applicare gli stili che servono: basta applicare tutte le regole del div all'ul ed il gioco è fatto, anzi, hai reso ancora più significativo il tuo HTML.
Per quanto riguarda la tua domanda vera e propria: dato che il layout è fisso, la cosa più semplice che puoi fare è "flottare" a sinistra la lista con i link, e poi dare un margine sinistro sufficiente a farla spostare verso il centro.

Per quanto riguarda il terzo punto, non ho capito qual è la riga più scura a cui ti riferisci.

Infine, hai centrato il punto: dato che il layout è fisso, mantiene sempre la sua larghezza, anche quando la finestra del browser diventa più piccola
Spero di esserti stato utile :)
Saluti,
Just
JustB

Avatar utente
 
Messaggi: 127
Iscritto il: martedì 26 gennaio 2010, 13:51
Località: Sant'Antimo [Napoli]

Re: [CSS] Sviluppo Layout

Messaggioda Gigi88 » venerdì 11 giugno 2010, 10:57

grazie per avermi risposto just :)

ho usato il div navigation perché credevo che per posizionare gli elementi si deve necessariamente inserirli in un div, in generale posso posizionare qualsiasi elemento senza div? o ci sono dei tag con cui non si può?

quindi dò i parametri del div a <ul> e poi me la gioco con i margini la cosa, nel caso il layout non fosse fisso potrei anche usare il position relative giusto?


sul terzo punto: quando passo col mouse sui link [con font del body impostato su Georgia] mi si crea una spaziatura in verde scuro tra il bg del link e il bordino bianco che è posto alla fine dell'header.. te lo evidenzio in questa img:
Immagine

purtroppo posso mettermi a modificarlo solo mercoledì (causa studio in questi giorni - ieri era la mia giornata di pausa post esame :rofl: ), ma appena ho il tempo sicuramente faccio quelle modifiche: ieri ci ho lavorato su per l'intera giornata, infatti dopo che ho postato qui per l'header ho iniziato anche il contenitore centrale *_*

grazie ancora per la risposta just, buon proseguimento :hai: :hai:
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Re: [CSS] Sviluppo Layout

Messaggioda Arquen » venerdì 11 giugno 2010, 13:00

Ciao Gigi!

Quello spazio verde c'è anche se il font è diverso da Georgia. Allora vediamo un po' che si può fare, ma prima eliminiamo due cose.
Hai dato un margin:20 a #list-nav, ma senza specificare se px o altro, e così facendo è come se quel valore non ci fosse. Ma se aggiungi px si scombina tutto, quindi ti consiglio di eliminare margin:20.
Hai dato position:absolute a #logo, ma non modifica nulla nella pagina, quindi puoi eliminarlo.


Ora passiamo al fastidioso colore verde.

La prima soluzione è quella di dare hai link del menu la stessa altezza del logo.
Come ti ha detto just elimini #navigation dalla pagina html e dal css, e aggiungi quelle righe di css a #list-nav.
In più sempre a #list-nav dai un height:40px e aggiungi margin:0;

Diventa così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav {
  2. height: 40px;
  3. width: 360px;
  4. float:right;
  5. padding:0;
  6. margin:0;
  7. list-style-type:none;
  8. }


Poi vai in #list-nav li a e puoi o aggiungere height:40px oppure un padding-top e un padding-bottom tali da centrare il testo del link.

Quindi o così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. height:40px;
  6. text-align: center;
  7. color: #FFF;
  8. }


O così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. padding-top:11px;
  6. padding-bottom:11px;
  7. text-align: center;
  8. color: #FFF;
  9. }



La seconda soluzione è quella di dare la stessa altezza che hai dato tu.
Basta semplicemente non aggiungere margin:0; a #list-nav

Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav {
  2. height: 40px;
  3. width: 360px;
  4. float:right;
  5. padding:0;
  6. list-style-type:none;
  7. }


E dare a #list-nav li o height:24px; (è la misura che ho trovato) oppure come per la prima soluzione un padding-top e un padding-bottom tali da centrare il testo del link.

Quindi così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. height:24px;
  6. text-align: center;
  7. color: #FFF;
  8. }


O così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. padding-top:3px;
  6. padding-bottom:3px;
  7. text-align: center;
  8. color: #FFF;
  9. }


Buon... in bocca al... boh... non ricordo più come si dice... :D
Arquen

Avatar utente
 
Messaggi: 96
Iscritto il: giovedì 4 febbraio 2010, 23:54
Località: Ercolano (NA)

Re: [CSS] Sviluppo Layout

Messaggioda Gigi88 » venerdì 11 giugno 2010, 13:32

Arquen ha scritto:Ciao Gigi!

Quello spazio verde c'è anche se il font è diverso da Georgia. Allora vediamo un po' che si può fare, ma prima eliminiamo due cose.
Hai dato un margin:20 a #list-nav, ma senza specificare se px o altro, e così facendo è come se quel valore non ci fosse. Ma se aggiungi px si scombina tutto, quindi ti consiglio di eliminare margin:20.
Hai dato position:absolute a #logo, ma non modifica nulla nella pagina, quindi puoi eliminarlo.


Ora passiamo al fastidioso colore verde.

La prima soluzione è quella di dare hai link del menu la stessa altezza del logo.
Come ti ha detto just elimini #navigation dalla pagina html e dal css, e aggiungi quelle righe di css a #list-nav.
In più sempre a #list-nav dai un height:40px e aggiungi margin:0;

Diventa così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav {
  2. height: 40px;
  3. width: 360px;
  4. float:right;
  5. padding:0;
  6. margin:0;
  7. list-style-type:none;
  8. }


Poi vai in #list-nav li a e puoi o aggiungere height:40px oppure un padding-top e un padding-bottom tali da centrare il testo del link.

Quindi o così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. height:40px;
  6. text-align: center;
  7. color: #FFF;
  8. }


O così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. padding-top:11px;
  6. padding-bottom:11px;
  7. text-align: center;
  8. color: #FFF;
  9. }



La seconda soluzione è quella di dare la stessa altezza che hai dato tu.
Basta semplicemente non aggiungere margin:0; a #list-nav

Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav {
  2. height: 40px;
  3. width: 360px;
  4. float:right;
  5. padding:0;
  6. list-style-type:none;
  7. }


E dare a #list-nav li o height:24px; (è la misura che ho trovato) oppure come per la prima soluzione un padding-top e un padding-bottom tali da centrare il testo del link.

Quindi così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. height:24px;
  6. text-align: center;
  7. color: #FFF;
  8. }


O così:
Sintassi: css [ Scarica ] [ Nascondi ]
  1. #list-nav li a {
  2. text-decoration: none;
  3. float: left;
  4. width: 120px;
  5. padding-top:3px;
  6. padding-bottom:3px;
  7. text-align: center;
  8. color: #FFF;
  9. }


Buon... in bocca al... boh... non ricordo più come si dice... :D


grazie anche a te arquen :)

appena posso mi metto sicuramente all'opera per applicare i vostri preziosissimi consigli :D

del margin:20 non me ne ero proprio accorto, che niubbata XD


da quello che noto dopo un primo approccio ai vostri consigli si possono ottenere gli stessi risultati con strade diverse, speriamo di trovarla alla fine eheheheh :rofl: :rofl: :rofl:
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Re: [CSS] Sviluppo Layout

Messaggioda Gigi88 » lunedì 28 giugno 2010, 23:56

Arquen ho provato tutto grazie sei stato gentilissimo, forse la soluzione migliore è dare l'altezza del logo alla lista :clap:


un'unica domandina sui tuoi consigli
Hai dato position:absolute a #logo, ma non modifica nulla nella pagina, quindi puoi eliminarlo.

come mai era inutile? non influisce assolutamente sul float ?
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Re: [CSS] Sviluppo Layout

Messaggioda sirdaniel » domenica 11 luglio 2010, 15:01

in teoria dovrebbe portartelo nell'angolo in alto a sinistra dell'elemento a cui si riferisce (di solito il tag <html> quindi in alto a sinistra della finestra)
Nicola Mustone - Web e software developer e programmatore

"Gutta cavat lapidem, non vi, sed saepe cadendo" [cit.]
sirdaniel

Avatar utente
 
Messaggi: 49
Iscritto il: giovedì 8 luglio 2010, 0:43
Località: Lucera

Re: [CSS] Sviluppo Layout

Messaggioda Gigi88 » mercoledì 4 agosto 2010, 11:24

ciao ragazzi torno a rompervi le scatole :D


mi potete dire come centrare un'immagine di sfondo all'interno della pagina in modo tale che a differenti risoluzioni la metà dell'immagine capiti sempre al centro?

edit: credevo di aver risolto ma utilizzando position center me lo centra ma mi taglia il bg creando anche una ripetizione in basso.. quasi quasi risolvo con un div :D

edit: ci sono riuscito :D
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Re: [CSS] Sviluppo Layout

Messaggioda nando » mercoledì 4 agosto 2010, 20:56

bravo gigi, quando si riesce a risolvere i problemi da soli la soddisfazione è doppia =)
nando

Amministratore

Avatar utente
 
Messaggi: 575
Iscritto il: giovedì 8 ottobre 2009, 1:33
Località: Italy

Re: [CSS] Sviluppo Layout

Messaggioda Gigi88 » giovedì 5 agosto 2010, 19:15

nando ha scritto:bravo gigi, quando si riesce a risolvere i problemi da soli la soddisfazione è doppia =)


ecco la creatura (template) quasi definitiva, dopo due/tre elaborazioni sono arrivato ad una struttura gradevole e leggibile :O

http://goo.gl/7hF0 questo è il link della versione di prova

il layout è in forma fissa (la più facile per iniziare a progettare in solo codice) :)


l'unico problemino che riscontro è il posizionamento dello sfondo (centrato) con IE, infatti se uso il browser della microsoft appena scrollo verso il basso lo sfondo "si muove"
Gigi88

Avatar utente
 
Messaggi: 45
Iscritto il: giovedì 3 giugno 2010, 19:35

Prossimo

Torna a XHTML & CSS