Đây là cách thử tốt nhất của tôi:
.inner_shadow {
color:transparent;
background-color:white;
text-shadow: 0 0 20px rgba(198,28,39,0.8), 0 0 0 black;
font-family:'ProclamateHeavy'; // Or whatever floats your boat
font-size:150px;
}
<span class="inner_shadow">Inner Shadow</span>
Vấn đề là làm sao để kẹp cái bóng chảy ra xung quanh viền !!! Tôi đã thử trong webkit bằng cách sử dụng background-clip: text, nhưng webkit hiển thị bóng trên nền nên nó không hoạt động.
Tạo Mặt nạ văn bản bằng CSS?
Nếu không có lớp mặt nạ trên cùng thì không thể tạo bóng bên trong thực sự trên văn bản.
Có lẽ ai đó nên khuyên W3C thêm background-clip: reverse-text , điều này sẽ cắt một mặt nạ xuyên qua nền thay vì cắt nền để vừa với bên trong văn bản.
Hoặc hiển thị bóng chữ như một phần của nền và cắt nó bằng background-clip: text.
Tôi đã cố gắng định vị tuyệt đối một phần tử văn bản giống hệt phía trên nó, nhưng vấn đề là background-clip: văn bản cắt nền để vừa với bên trong văn bản, nhưng chúng tôi cần điều đó ngược lại.
Tôi đã thử sử dụng text-stroke: 20px white; trên cả phần tử này và phần tử phía trên nó, nhưng nét chữ đi vào cũng như ra ngoài.
Phương pháp thay thế
Vì hiện tại không có cách nào để tạo mặt nạ văn bản ngược trong CSS, bạn có thể chuyển sang SVG hoặc Canvas và tạo hình ảnh thay thế văn bản với ba lớp để có được hiệu ứng của bạn.
Vì SVG là một tập hợp con của XML, văn bản SVG vẫn có thể lựa chọn và có thể tìm kiếm được, và hiệu ứng có thể được tạo ra với ít mã hơn Canvas.
Sẽ khó hơn để đạt được điều này với Canvas vì nó không có dom với các lớp như SVG.
Bạn có thể tạo SVG phía máy chủ hoặc dưới dạng phương pháp thay thế văn bản javascript trong trình duyệt.
Đọc thêm:
SVG so với Canvas:
http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Cắt và tạo mặt nạ với Văn bản SVG:
http://www.w3.org/TR/SVG/text.html#TextElement