Per la maggior parte dei webdesigner, lo stile di un sito web con i CSS è abbastanza semplice. Fintanto che il codice HTML è semantico e i div e le classi sono progettati in modo sensibile, il processo di sviluppo dovrebbe essere abbastanza facile. Tuttavia, ci sono alcune proprietà del CSS che eludono le menti della maggior parte dei progettisti e molti rimangono come appesi sulle proprietà più ingombranti. Queste proprietà non sono così semplici e ci vuole un po’ per studiarle e capire come funzionano. Qui di seguito sono cinque delle proprietà più ingombranti del CSS, così come il modo migliore per sfruttarli e averli sotto controllo.
Nessuna di queste proprietà CSS sono impossibili, ci vuole solo un po’ di conoscenze di base e la comprensione di come il CSS influenza il layout e l’aspetto del disegno. Queste, sono tutte cose utili da sapere quando si progetta un sito web. Alcuni di essi possono essere fastidiosi, ma con un po’ di pratica, il CSS ci libererà del mal di testa in pochissimo tempo.
container
. All’interno di questo, si impiega la proprietà “float
” e si dispone di due div in più: uno per il contenuto e l’latro per la sidebar. Una volta finito, si nota che il div del container
non si estende fino in fondo fin oltre le due contenitori div. Finisce con un footer
inatteso.Ecco il codice HTML
<h1>Intestazione</h1>
<div id="content">
<h2>Titolo</h2>
<p>Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.</p>
</div>
<div id="sidebar">
<h2>Lato 1</h2>
</div>
<div id="sidebar2">
<h2>Lato 2</h2>
</div>
<div id="footer">Esempio di footer</div>
</div>
[/code]
container
in cui si svolge tutto a una certa larghezza e il contenuto scorre all’interno di questo container
. Abbiamo una zona content
, e due barre laterali. Tutto è flottato a sinistra in modo che siano in linea retta. Poi, abbiamo un footer che è inferiore al container
. Vediamo che cosa ci si aspetta:#container{
background:#dbdb79;
width:450px;
}
#content{
background:#cccc33;
width:250px;
float:left;
}
#sidebar{
float:left;
background:#FFA400;
width:100px;
}
#sidebar2{
float:left;
background:#BF8C30;
width:100px;
}
#footer{
}
/**/ [/code] Risultato
Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
#footer{
clear:both;
}
/**/
[/code] Questo è tutto! Ora si dovrebbe avere il
container
div
con il titolo H2
all’interno di esso. Al di sotto, in una linea, si avrà il content div
e i deu div
come barra laterale. Sotto ci sarà il footer
div
, che non ha colore di fondo, così sarà il colore verde chiaro del container div
. Ora il container div
si estende fino in fondo e avvolge il contenuto.Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
div
, si crea un’ombra interna per far sembrare come se fosse incassato. Il CSS seguente consente di creare un’ombra interna rossa:#content {
background:#cccc33;
width:250px;
float:left;
padding:5px;
-webkit-box-shadow: inset 0px 0px 2px 2px #f00;
box-shadow: inset 0px 0px 2px 2px #f00;
}
/**/
[/code]
95px
ciascuno, e ho aggiunto 5px
di padding
in modo che il contenuti non siano proprio sul bordo. È importante ricordare di includere prefissi dei produttori in modo che gli effetti appaiono nella maggior parte dei browser. Per capire come funziona il CSS è molto semplice. Il primo valore di “inset
” indica al browser di posizionare l’ombra interno della box. Omettendo questa dichiarazione lo metterà sulla parte esterna per impostazione predefinita. I primi due valori in pixel determina la posizione orizzontale e verticale dell’ombra. L’impostazione a zero rende l’ombra uguale su tutti i lati. I numeri positivi rende l’ombra verso destra o verso il basso, e con i numeri negativi l’ombra si posiziona verso sinistra o verso l’alto. Il terzo valore determina il raggio di sfocatura dell’ombra, che gli darà un aspetto più morbido. Il quarto valore è la diffusione, che porta l’ombra più verso l’interno e rende un’ombra più prominente.È possibile utilizzare i valori RGBA o esadecimale per determinare il colore dell’ombra.
rgba(200, 0, 0, .5);
/**/
[/code]
0,1
a 1
. 0,1
sarebbe il 10%
, 0,5
sarebbe il
, ecc.
Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
Ecco lo stesso box con un’ombra nera del tipo
inset
di colore nero #000
, o rgba(0,0,0, .5)
:Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
h2{
Font-family:"Palatino Linotype", "Book Antiqua", Palatino, serif;
color:#fff;
text-shadow: -2px 0px 3px #003366;
}
/**/
[/code]
2px
a sinistra e in alto, in basso di 0px
ed l’ombra è offuscata sui 3px
. L’ombra sarà di colore blue.Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
Per creare una sfumatura che va dal verde chiaro al verde medio è necessario utilizzare il seguente codice CSS:
#container{
background: #a8e7ff; /* Old browsers */
background: -moz-linear-gradient(top, #dbdb79 0%, #8f8f24 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dbdb79), color-stop(100%,#8f8f24)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #dbdb79 0%,#8f8f24 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #dbdb79 0%,#8f8f24 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #dbdb79 0%,#8f8f24 100%); /* IE10+ */
background: linear-gradient(to bottom, #dbdb79 0%,#8f8f24 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=’#dbdb79′, endColorstr=’#8f8f24′,GradientType=0 ); /* IE6-9 */
}
/**/
[/code] Il risultato sarà simile a quanto segue:
Intestazione
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
Prendiamo l’attuale base del CSS:
(top, #dbdb79 0%,#8f8f24 100%)
/**/
[/code]
#dbdb79
e con una dissolvenza verso il #8f8f24
, interrompendosi quando arriva lo 0%
per ripartire con il colore successivo aumentando l’opacità fino al 100%
.display: none;
” nello stile per nascondere il sottomenù fino a quando qualcuno si posiziona con il mouse sopra il menu: ma non funziona in modo affidabile. È qui il problema comune:Il markup HTML
<div class="menubar">
<ul>
<li><a href="#" >Home</a></li>
<li><a href="#">Prodotti</a>
<ul>
<li><a href="#">Presentazioni</a></li>
<li><a href="#">Gallerie</a></li>
<li><a href="#">Applicazioni</a></li>
<li><a href="#">Estensioni</a></li>
</ul>
</li>
<li><a href="#">Noi</a>
<ul>
<li><a href="#">Storia</a></li>
<li><a href="#">Indirizzo</a></li>
<li><a href="#">Servizi</a></li>
</ul>
</li>
<li><a href="#">Contatto</a></li>
</ul>
</div>
<div id="content">
<h2>Titolo</h2>
<p>Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.</p>
</div>
<div id="sidebar">
<h2>Lato 1</h2>
</div>
<div id="sidebar2">
<h2>Lato 2</h2>
</div>
<div id="footer">Esempio di footer</div>
</div>
[/code]
.menubar{
border:none;
border:0px;
margin:0px;
padding:0px;
font: 67.5% "Lucida Sans Unicode", "Bitstream Vera Sans", "Trebuchet Unicode MS", "Lucida Grande", Verdana, Helvetica, sans-serif;
font-size:14px;
font-weight:bold;
}
.menubar ul{
background: rgb(109,109,109);
height:50px;
list-style:none;
margin:0;
padding:0;
}
.menubar li{
float:left;
padding:0px;
}
.menubar li a{
background: rgb(109,109,109);
color:#cccccc;
display:block;
font-weight:normal;
line-height:50px;
margin:0px;
padding:0px 25px;
text-align:center;
text-decoration:none;
}
.menubar li a:hover, .menubar ul li:hover a{
background: rgb(71,71,71);
color:#FFFFFF;
text-decoration:none;
}
.menubar li ul{
background: rgb(109,109,109);
display:none;
height:auto;
padding:0px;
margin:0px;
border:0px;
position:absolute;
width:200px;
z-index:200;
/*top:1em;
/*left:0;*/
}
.menubar li li {
background: rgb(109,109,109);
display:block;
float:none;
margin:0px;
padding:0px;
width:200px;
}
.menubar li:hover li a{
background:none;
}
.menubar li ul a{
display:block;
height:50px;
font-size:12px;
font-style:normal;
margin:0px;
padding:0px 10px 0px 15px;
text-align:left;
}
.menubar li ul a:hover, .menubar li ul li:hover a{
background: rgb(71,71,71);
border:0px;
color:#ffffff;
text-decoration:none;
}
.menubar p{
clear:left;
}
[/code]
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
.menubar li:hover ul{
display:block;
}
/**/
[/code]
Quando si passa il mouse sopra una delle voci di menu e il menu secondario, dovrebbe assomigliare a questo:
Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
border-radius
al nostro container div
. Alcuni di voi forse non sapete che si può effettivamente determinare un raggio diverso per ogni angolo. Ecco come creare forme diverse con i CSS.Di seguito è riportato il CSS per il container div.
#container{
-webkit-border-radius: 0 0 100px 10px;
border-radius: 0 0 100px 10px;
}
/**/
[/code]
0px
, in alto a destra è di 0px
, in basso a destra è di 100px
, e in basso sinistra è di 10px. Questo è impostato come padding
o il margine è, con la stessa sintassi.Titolo
Morbi ullamcorper consequat nibh, et porta augue volutpat id. Donec et purus nunc. Sed urna.
div
con il padding
che va in basso a sinistra, interrompendo il design. Tenere questo in mente quando si utilizza border radius.
Ancora nessun commento