2013-10-25 18 views
5

我想灰化圖像的一部分(左右兩個條紋)。有沒有辦法只用CSS來做到這一點?用CSS格式化圖像的一部分

我知道我可以使用過濾器(即filter: grayscale(100%)),但是我不想整個圖像是灰色的。

回答

6

,沒有額外的標記純CSS解決方案

JSFIDDLE DEMO

HTML

<div class="image-container"> 
    <img class="image-grey" src="http://placekitten.com/200/150" /> 
</div> 

CSS

.image-container { 
    position:relative; 
    display:inline-block; 
} 

.image-grey { 
    display:block; 
    -webkit-filter: grayscale(100%); 
} 

.image-container:after { 
    position:absolute; 
    content:""; 
    top:0; 
    left:50%; 
     width:50%; 
    height:100%; 
    background-image:url(http://placekitten.com/200/150); 
    background-position:top right; 
} 
+0

這正是我所期待的。 – kunde

+0

當我看到最終效果時,我發表了評論,但這不完全是我需要的(它只是一半)。我需要爲圖像添加兩條灰色條紋,而不僅僅是一條。我用這種技術嘗試不同的東西,但我找不到在右側添加另一條灰色條紋的方法。也許我想要做的事情需要用JavaScript或其他方式完成。 – kunde

+0

快速更新JSFiddle與兩個條紋:http://jsfiddle.net/gmU9y/2/ –

2

把一個div放在它上面。

<div id="wrapper"> 
    <img src="path/to/file.jpg" /> 
    <div id="filter"> 
</div> 
<style> 
#wrapper {position: relative;} 
#filter { 
    position: absolute; 
    top: 123px; 
    left: 123px; 
    width: 42px; 
    height: 42px; 
    background: rgba(255,0,0,0.5); 
} 
</style> 

http://jsfiddle.net/BQ7J3/

+0

+1我只是在製作的jsfiddle這個(僅我用PlaceCage的過程:) http://jsfiddle.net/jM7S6/ –

+0

@JasonSperske: ) – bjb568

+0

當然,這並不會使圖像灰白,它會使那裏的顏色變暗。 http://jsfiddle.net/W4tY6/。但是,它可能就足夠了。 –

2

如果您確實希望使用灰階過濾器,你將需要在彼此的頂部有兩個圖像,一個與灰階過濾器應用,裁剪到你希望的大小。

<div class="image-container"> 
    <img class="image-grey clip" src="http://placekitten.com/200/150" /> 
    <img class="image-coloured" src="http://placekitten.com/200/150" /> 
</div> 

.image-coloured { 
    z-index: 0; 
    position: absolute; 
} 

.image-grey { 
    z-index: 1; 
    position: absolute; 
    -webkit-filter: grayscale(100%); 
} 

.clip { 
    clip: rect(0px,60px,150px,0px) 
} 

Fiddle

+0

OP:「有沒有一種方法可以使用CSS來做到這一點?」 – bjb568

+0

是的,但我不明白你爲什麼向我指出這一點? –

+0

您不只使用CSS。你需要另一張圖片。 – bjb568