2012-07-27 47 views
1

我幾乎可以肯定,它是不可能在CSS3創建這樣的陰影,但我請求,以防萬一有人嘗試,並找到了一個方法:是否可以在CSS3中創建類似的陰影?

enter image description here

我有側邊欄的權利(有限的高度)和更長的內容左邊。陰影在開始時淡入淡出。這個影子可以純粹是程序性的嗎(完全沒有光柵圖像)?

+0

也許你可以通過在加入了白色的影子騙底部和頂部 – BiAiB 2012-07-27 09:56:55

+0

http://www.css3。info/preview/box-shadow/ – SpaceBeers 2012-07-27 09:57:33

+0

@BiAiB這就是我要找的那種技巧。可能有多個漸變或多個陰影。 – Atadj 2012-07-27 10:02:26

回答

5

您可以使用徑向漸變,像這樣:

#leftshadow 
{ 
    margin-left: 10px; 
    height: 200px; 
    width: 20px; 
    border-left:1px solid #ebebeb; 
    border-left:1px solid rgba(0,0,0,0.4); 
    background:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.3)),to(rgba(0,0,0,0))); 
    -webkit-mask-box-image:-webkit-gradient(linear,left top,right bottom,color-stop(0.0,rgba(0,0,0,0)),color-stop(0.5,rgba(0,0,0,.8)),color-stop(1.0,rgba(0,0,0,0))); 
    background-image:-moz-radial-gradient(left,ellipse farthest-side,rgba(0,0,0,.3),rgba(0,0,0,0)); 
}​ 

jsFiddle here

Different tweak is here


原來的答案

如果你需要一個「簡單」的插圖影子你也可以做到這一點,像這樣:

#leftshadow 
{ 
    -webkit-box-shadow: inset 5px 0px 5px -2px rgba(0,0,0,0.4); 
    -moz-box-shadow: inset 5px 0px 5px -2px rgba(0,0,0,0.4); 
    box-shadow: inset inset 5px 0px 5px -2px rgba(0,0,0,0.4); 
}​ 

jsFiddle here

+0

是的,但我最關心的是影子的頂部和底部。有沒有辦法啓動它,因爲它正在消失?軟啓動,而不是硬邊緣。 – Atadj 2012-07-27 10:01:38

+0

編輯完成後:是的,我認爲這是完美或幾乎完美:)我會做一些調整,看看它是否有效。 – Atadj 2012-07-27 10:11:33

+0

調整是偉大的... – 2012-07-27 10:14:05

0
.box { 
    z-index: 100; 
    border: none; 
    padding: 0 0 0 10px;  
    background-image: url("images/topShadow"), url('images/bottomShadow'), url('images/shadow'); 
    background-position: 0 top, left top, 0 bottom; 
    background-repeat: no-repeat, repeat-x, no-repeat; 
} 

確定這是未經測試,但應該有一些調整,我沒有時間工作因爲目前。你有3個圖像,頂部,中部和底部。您可以使用CSS3多個背景圖像將其用作左邊框,只需在框左側添加一些填充。順序非常重要,因爲它處理圖像的分層。第一個將在所有其他人之上。該順序充當圖像的z索引。

+0

謝謝你的回答!這就是我現在使用的解決方案,但是因爲有像Retina顯示器或iPad3的Macbook等設備,而且還有更多 - 光柵圖像不能很好地工作。最好用CSS3來替換所有的東西。再次感謝! :) – Atadj 2012-07-27 10:24:43

0

這是我講的,也就是分層二級分度,一道白影的伎倆:

http://jsfiddle.net/dmezK/

它不是完美的,但你可以調整它來滿足您的需求,我想。

這裏的HTML:

<div id="main"> 
<div id="cheat"></div> 

</div>​ 

這裏的CSS:

#main 
{ 
    width: 100px; 
    height: 300px; 
    -webkit-box-shadow: inset 10px 0px 5px -2px #888 ; 
    position: relative; 
} 

#cheat { 
    width: 300px; 
    height: 300px; 
    -webkit-box-shadow: inset 10px 0px 5px -50px white ; 
    position: absolute; 
    left: -100px; 
} 

注:也許你可以使用多個盒子陰影,但它沒有被廣泛支持。

+0

謝謝你的回答。我主要關心那個影子的頂部和底部。軟啓動,而不是硬邊緣。 – Atadj 2012-07-27 10:21:38

0

這是最接近我可以做:

div { 
    width: 300px; 
    height: 600px; 
    border: solid 1px; 
    box-shadow: 
    inset 0px 10px 10px #fff, 
    inset 0px -10px 10px #fff, 
    inset 10px 0px 20px rgba(0, 0, 0, .3); 
} 

現場演示:Tinkerbin

+1

這是非常接近的... – 2012-07-27 10:06:54

+0

謝謝你的回答!這是非常接近,但仍然有整個容器內的頂部和底部陰影。無論如何,謝謝你:)這個解決方案已經被發現真是太好了。我沒有想到這可以使用純粹的CSS3來完成。 – Atadj 2012-07-27 10:23:12

0

試試這個 http://jsfiddle.net/6QSEc/1/

div{ 
    height:200px; 
    width:100px; 
    background-color:white; 
    border:1px solid #f1f1f2; 
    box-shadow:10px 0px 20px -10px rgba(0,0,0,0.5) inset; 
} 
+0

謝謝你的回答。我主要關心那個影子的頂部和底部。軟啓動,而不是硬邊緣。 – Atadj 2012-07-27 10:25:30