2012-06-08 64 views
15

好的,這是可能的。HTML/CSS:「透視背景」文本?

我有一個背景圖片。最重要的是,我有一個內容透明的灰色框。我想在文字頂部有標題,那基本上是這個字母暴露了的背景。因此,文本將刪除灰色框並讓背景顯示。

我能看到的唯一方法就是用背景上的字母透明地創建一個圖像,並使用相同的灰色,然後嘗試以某種方式將其與灰色框對齊。

有沒有另一種 - 更好的方式?

+1

它可能有助於使用CSS 3不透明屬性。 http://www.w3schools.com/css/css_image_transparency.asp – Celeritas

+1

這是爲什麼「哈克」?這是一個具有透明度的圖層。 –

+1

我能想到的唯一方法是WebKit-only。可以嗎? – Ryan

回答

17

一種方法是使用-webkit-background-clip: text;demo here(webkit只有很明顯)。

使用位置,我們可以同步兩個背景:

#container, #container h1 { 
    background: url(bg.png) 
} 

#container { 
    position: relative; 
} 

#container #gray { 
    background: rgba(0,0,0,.8); 
    padding-top: 8em; 
} 

#container h1 { 
    font-size: 8em; 
    padding-top: /* padding + border of div */; 
    position: absolute; 
    -webkit-text-fill-color: transparent; 
    -webkit-background-clip: text; 
}​ 

或者你可以使用相同的方法和應用svg mask,將在所有現代瀏覽器。

+2

這在Chrome中非常漂亮。 –

+0

在Webkit中看起來很完美 - 您能否詳細說明如何將CVG用於非webkit? – mtyson

+1

@mtyson http://jsfiddle.net/NT7z7/12/您應該使用一些js來生成SVG,以保持源代碼的乾淨。 – jasssonpet