2012-06-08 13 views
15

ठीक है, यह संभव है।एचटीएमएल/सीएसएस: "पृष्ठभूमि के माध्यम से देखें" पाठ?

मेरे पास पृष्ठभूमि छवि है। उस पर, मेरे पास सामग्री के लिए एक पारदर्शी ग्रे बॉक्स है। मैं टेक्स्ट में शीर्ष पर शीर्षक रखना चाहता हूं, मूल रूप से अक्षरों को पृष्ठभूमि को उजागर करना है। तो, पाठ ग्रे बॉक्स को हटा देता है और पृष्ठभूमि को दिखाता है।

एकमात्र हैकी तरीका मैं देख सकता हूं कि एक ही ग्रे रंग की पृष्ठभूमि पर पारदर्शी अक्षरों के साथ एक छवि बनाई गई है, और उसके बाद ग्रे बॉक्स के साथ किसी भी तरह संरेखित करने का प्रयास करें।

क्या कोई और बेहतर तरीका है?

+1

यह सीएसएस 3 अस्पष्टता संपत्ति का उपयोग करने में मदद कर सकता है। http://www.w3schools.com/css/css_image_transparency.asp – Celeritas

+1

वह "हैकी" क्यों है? यह एक पारदर्शिता के साथ एक परत है। –

+1

एकमात्र तरीका जिसे मैं सोच सकता हूं वह केवल वेबकिट है। क्या ये ठीक है? – Ryan

उत्तर

17

एक तरीका -webkit-background-clip: text; का उपयोग करना है: demo here (वेबकिट केवल स्पष्ट रूप से)।

स्थिति का उपयोग करना, हम दोनों पृष्ठभूमि सिंक कर सकते हैं:

#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

यह वास्तव में क्रोम में सुंदर निफ्टी है। –

+0

यह वेबकिट में सही दिखता है - क्या आप गैर वेबकिट के लिए सीवीजी का उपयोग करने के बारे में विस्तार से बता सकते हैं? – mtyson

+1

@mtyson http://jsfiddle.net/NT7z7/12/ स्रोत को साफ रखने के लिए आपको एसवीजी उत्पन्न करने के लिए कुछ जेएस का उपयोग करना चाहिए। – jasssonpet

संबंधित मुद्दे