Visualizzazione post con etichetta { CSS }. Mostra tutti i post
Visualizzazione post con etichetta { CSS }. Mostra tutti i post

domenica 27 maggio 2012

Menù orizzontale con sottomenù

Vediamo come creare un semplice menù con sottomenù

Esempio:

Questo semplice menù è realizzato esclusivamente utilizzando codice CSS.
Con una semplice struttura HTML composta da <ul> e <li>, sarà possibile creare tutti i menù e sottomenù necessari al nostro sito.

Browser

Ho testato il funzionamento e la rappresentazione grafica del menù con tutte le ultime versioni dei browser più utilizzati:
 

Vediamo il codice 

CSS:
<style type="text/css">
.cssmenu {
 border:none;
 margin:0px;
 padding:0px;
 font-family:verdana, geneva, arial, helvetica, sans-serif;
 font-size:14px;
 font-weight:bold;
}
/*1° livello*/
.cssmenu ul {
 list-style:none;
 margin:0;
 padding:0;
}
.cssmenu li {
 float:left;
 padding:0px 8px 0px 8px;
}
.cssmenu li a {
 color:darkGoldenrod;
 display:block;
 font-weight:bold;
 line-height:43px;
 padding:0px 25px;
 text-align:center;
 text-decoration:none;
}
.cssmenu li a:hover {
 color:green;
 text-decoration:none;
 text-decoration:underline;
}
/*2° livello*/
.cssmenu li ul {
 background:green;
 display:none;
 height:auto;
 position:absolute;
 width:225px;
 z-index:1;
}
.cssmenu li:hover ul {
 display:block;
}
.cssmenu li li {
 display:block;
 float:none;
 padding:0px;
 width:225px;
}
.cssmenu li ul a {
 display:block;
 font-size:12px;
 font-style:normal;
 padding:0px 10px 0px 15px;
 text-align:left;
 color:white;
}
.cssmenu li ul a:hover {
 background:darkgreen;
 color:greenyellow;
}
.cssmenu p {
 clear:left;
}
/*link active*/
.cssmenu .active > a {
 color:red;
}
.cssmenu .active > a:hover {
 text-decoration:underline;
 color:maroon;
}
</style>


HTML:
<div class='cssmenu'>
  <ul>
    <li class='active'><a href='#'><span>Home</span></a></li>
    <li><a href='#'><span>Prodotti</span></a>
      <ul>
        <li><a href='#'><span>Prodotto 1</span></a></li>
        <li><a href='#'><span>Prodotto 2</span></a></li>
      </ul>
    </li>
    <li><a href='#'><span>Chi siamo</span></a></li>
    <li><a href='#'><span>Contatti</span></a></li>
  </ul>
</div>

Spieghiamo:

Nel Css ho indicato dove apportare modifiche. Se vogliamo personalizzare il primo livello di menù, quello visibile senza intervento del mouse basterà modificare il codice CSS preceduto da:
/*1° livello*/

Per modificare graficamente il secondo livello basterà modificare il codice CSS preceduto da:
/*2° livello*/

È anche possibile modificare l'aspetto grafico del menù appartenente alla pagina che stiamo visualizzando, ossia la pagina attiva. Basterà modificare il codice CSS preceduto da:
/*link active*/


Nel codice HTML dovremo semplicemente specificare il link che appartiene alla pagina attuale modificando <li> in
<li class='active'>
ossia link attivo.

Per comodità è possibile scaricare l'intero file HTML + CSS.

sabato 26 maggio 2012

Layout 2 colonne 100%

Vediamo come impostare un layout 2 colonne con larghezza 100%

Il layout prevede 4 macro aree:

  1. Header per contenere il logo in testa alla pagina
  2. Navigation per un menù a sinistra
  3. Content per una colonna centrale di contenuti
  4. Footer per indirizzo telefoni ecc. a pié di pagina

HEAD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Layout 2 colonne larghezza in percentuale</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
CSS:
<style type="text/css">
* {
 margin:0;
 padding:0;
}
div#wrapper {
 float:left;
 width:100%;
}
div#header {
 height:80px;
 background: #FF9;
}
div#content {
 margin: 0 0% 0 25%;
 background-color:#FFF;
}
div#navigation {
 background:#E8E8FF;
 float:left;
 width:25%;
 margin-left:-100%;
}
div#footer {
 background: #CCC;
 clear:left;
 width:100%;
}
</style>
BODY:
</head>
<body>
<div id="container">
  <div id="header">
    <H1>HEADER</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisici elit</p>
  </div>
  <div id="wrapper">
    <div id="content">
      <h2>CONTENUTI</h2>
      <p><img src="https://www.google.com/images/srpr/logo3w.png" alt="" width="275" height="95" align="left" id="segnaposto" style="background-color: #CCCC33" />Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </div>
  <div id="navigation">
    <h2>MENU</h2>
    <ul>
      <li>menu 1</li>
      <li>menu 2</li>
      <li>menu 3</li>
      <li>menu 4</li>
    </ul>
    <br style="clear:both" />
  </div>
  <div id="footer">
    <h2>FOOTER</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisici elit</p>
  </div>
</div>
</body>
</html>

Spieghiamo: 

Con questo layout suddiviso in 2 colonne, visualizzeremo una pagina al 100% della finestra del browser.
Chiaramente le modifiche che si possono fare sono infinite.

Ad esempio potremmo voler distanziare il layout a destra e a sinistra rispetto alla finestra del browser,
in questo caso basterebbe aggiungere al codice CSS riportato sopra:
#container {
 margin: 0 5%;
}
per avere uno spazio a destra e a sinistra corrispondente al 5% della finestra del browser.

Download:

Per comodità è possibile scaricare il file HTML completo.

Layout 3 colonne 100%

Vediamo come impostare un layout 3 colonne con larghezza 100%

Il layout prevede 5 macro aree:

  1. Header per contenere il logo in testa alla pagina
  2. Navigation per un menù a sinistra
  3. Content per una colonna centrale di contenuti
  4. Extra per una colonna a destra
  5. Footer per indirizzo telefoni ecc. a pié di pagina
HEAD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Layout 3 colonne larghezza 100%</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
CSS:
<style type="text/css">
* {
 margin:0;
 padding:0;
}
div#wrapper {
 float:left;
 width:100%;
}
div#header {
 height:80px;
 background: #FF9;
}
div#content {
 margin: 0 25%;
 background-color:#FFF;
}
div#navigation {
 background:#E8E8FF;
 float:left;
 width:25%;
 margin-left:-100%;
}
div#extra {
 background:#EFFFAE;
 float:left;
 width:25%;
 margin-left:-25%
}
div#footer {
 background: #CCC;
 clear:left;
 width:100%;
}
</style>
BODY:
</head>
<body>
<div id="container">
  <div id="header">
    <H1>HEADER</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisici elit</p>
  </div>
  <div id="wrapper">
    <div id="content">
      <h2>CONTENUTI</h2>
      <p><img src="https://www.google.com/images/srpr/logo3w.png" alt="" width="275" height="95" align="left" id="segnaposto" style="background-color: #CCCC33" />Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </div>
  <div id="navigation">
    <h2>MENU</h2>
    <ul>
      <li>menu 1</li>
      <li>menu 2</li>
      <li>menu 3</li>
      <li>menu 4</li>
    </ul>
    <br style="clear:both" />
  </div>
  <div id="extra">
    <h2>EXTRA</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
  </div>
  <div id="footer">
    <h2>FOOTER</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisici elit</p>
  </div>
</div>
</body>
</html>

Spieghiamo: 

Con questo layout suddiviso in 3 colonne, visualizzeremo una pagina al 100% della finestra del browser.
Chiaramente le modifiche che si possono fare sono infinite.

Ad esempio potremmo voler distanziare il layout a destra e a sinistra rispetto alla finestra del browser,
in questo caso basterebbe aggiungere al codice CSS riportato sopra:
#container {
 margin: 0 5%;
}
per avere uno spazio a destra e a sinistra corrispondente al 5% della finestra del browser.

Download:

Per comodità è possibile scaricare il file HTML completo.