2012-06-08 42 views
15

Ok, điều này có thể thực hiện được không.HTML/CSS: Văn bản "Xem qua nền"?

Tôi có hình nền. Trên hết, tôi có một hộp màu xám trong suốt cho nội dung. Tôi muốn có tiêu đề ở trên cùng trong văn bản, về cơ bản là các chữ cái phơi bày nền. Vì vậy, văn bản sẽ xóa hộp màu xám và cho phép nền hiển thị qua.

Cách hacky duy nhất tôi có thể thấy là tạo một hình ảnh với các chữ cái trong suốt trên nền có cùng màu xám, và sau đó cố gắng căn chỉnh bằng cách nào đó với hộp màu xám.

Có cách nào khác - tốt hơn không?

+1

Có thể giúp sử dụng thuộc tính độ mờ CSS 3. http://www.w3schools.com/css/css_image_transparency.asp – Celeritas

+1

Tại sao là "hacky"? Đó là một lớp với độ trong suốt. –

+1

Cách duy nhất tôi có thể nghĩ là WebKit-only. Có được không? – Ryan

Trả lời

17

Một cách là sử dụng -webkit-background-clip: text;: demo here (chỉ webkit rõ ràng).

Sử dụng vị trí, chúng ta có thể đồng bộ hóa cả hai nền tảng:

#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; 
}​ 

Hoặc bạn có thể sử dụng phương pháp tương tự và áp dụng một svg mask, mà sẽ làm việc trong tất cả các trình duyệt hiện đại.

+2

Điều đó thực sự khá tiện lợi trong Chrome. –

+0

Điều đó có vẻ hoàn hảo trong Webkit - bạn có thể giải thích cách sử dụng CVG cho phi webkit không? – mtyson

+1

@mtyson http://jsfiddle.net/NT7z7/12/ Bạn nên sử dụng một số js để tạo SVG, để giữ cho nguồn sạch. – jasssonpet

Các vấn đề liên quan