bel grattacapo oggi…
fare l’ombra di un div ma solo nei due lati orizzontali sopra e sotto..
è una ombra interna che pare apra della fessure da cui esce un nastro che scorre verticalmente..
come fare?
Ho crato due div uno dentro l’altro; il secondo con position relative, così lo posso controllare solo rispetto a quello esterno;
questo è più comodo per andare poi a riposizionarlo nella pagina e far ein modo che non si scollino tra di loro 🙂
Quindi ho messo un effetto retinato a quello interno, riducendo la larghezza rispetto a quello esterno, ma mantenendolo alto uguale.
Poi ho valuato come si usa la caratteristica box shadow:
box-shadow può essere applicata a tutti gli elementi.
Vediamo subito uno snippet di codice con quella che è la sintassi di base:
box-shadow: 5px 5px 10px 2px #333333 ; |
La sintassi di base prevede la definizione di quattro valori numerici:
- Il primo valore (
5px
) imposta lo spostamento dell’ombra in senso orizzontale. Essendo il valore positivo, l’ombra viene collocata sul lato destro del box. Se si usano valori negativi l’ombra viene collocata sul lato sinistro. - Il secondo valore (
5px
) imposta lo spostamento in senso verticale. Dal momento che anche in questo caso si è usato un valore positivo, l’ombra viene collocata sul lato inferiore del box. Usando valori negativi l’ombra viene collocata sul lato superiore del box. - Il terzo valore (
10px
) definisce il livello di sfocatura (blur radius) dell’ombra: più alto è questo valore, più sfocata apparirà l’ombra. Si usi 0 se si desidera un’ombra netta e senza sfocatura. Non sono permessi valori negativi. - Il quarto valore (
2px
) imposta il livello di diffusione (spread radius) dell’ombra. Più i valori sono alti, più l’ombra tenderà ad espandersi, in tutte le direzioni. Se invece si usano valori negativi, l’ombra tende a contrarsi, fino a scomparire del tutto.
Di questi quattro valori, gli unici obbligatori sono i primi due. I valori della sfocatura e della diffusione, invece, possono essere omessi. Se non specificati, tali valori sono pari per default a 0.
Ultimo è il colore.
da http://www.html.it/pag/19453/box-shadow/
Quindi il primo per me deve essere 0; invece per il secondo ne dovrò fare due inmodo da davere un obra sopra ed una ombra sotto.
Il mio problema è che non sono ombre esterne, ma ombre interne al box..
e qui abbiamo!!
La parola chiave inset
Un ultimo valore possibile per box-shadow è rappresentato dalla parola chiave inset
. Usando questo valore l’ombra non si colloca all’esterno del box, ma al suo interno.
e poi sorge il secondo problema!!
ma io ho bisogno di un’ombra da un lato solo!!! non da tutti e quattro o solo da due lati..
quindi!?!?!
Bisogna mettere innegativo il 4° valore, quello della diffusione dell’ombra..
bisogna stare un po attenti perchè è da calibrare e cmq l’ombra che si desidera da un solo alto non può essere accentuatuìissima altrimenti cominqcia a spuntare anche dagli altri..
Però la riuscita è buone..
Ecco il codice:
html:
<div id=”deco”><div id=”retina”> </div></div>
<span>11</span>
CSS:
#deco
{
margin-left: 15px;
margin-top: 40px;
position: absolute;
width:100px;
height: 630px;
box-shadow: -0px 7px 15px -13px #525252;
}
#retina
{
position: relative;
width:50px;
height:630px;
background:#009CAB;
opacity: 0.15;
margin: 0 auto;
}
però secondo me si vede sempre un pochino.. un difetto..
ecoo un altro metodo senza trick.. diciamo sintatti corretta logicamente:
imposti le tre ombre con colore bianco o quello che hai di sfondo e solo una con il colore scuro:
http://jsfiddle.net/LE6Lz/