CSS: tạo ánh sáng trắng xung quanh hình ảnh


79

Làm cách nào để tạo một vệt sáng trắng làm viền của một hình ảnh có kích thước không xác định?

Câu trả lời:


138

Sử dụng CSS3 đơn giản (không được hỗ trợ trong IE <9)

img
{
    box-shadow: 0px 0px 5px #fff;
}

Thao tác này sẽ tạo ánh sáng trắng xung quanh mọi hình ảnh trong tài liệu của bạn, hãy sử dụng các bộ chọn cụ thể hơn để chọn hình ảnh bạn muốn có ánh sáng xung quanh. Tất nhiên bạn có thể thay đổi màu sắc :)

Nếu bạn lo lắng về những người dùng không có phiên bản trình duyệt mới nhất của họ, hãy sử dụng cách này:

img
{
-moz-box-shadow: 0 0 5px #fff;
-webkit-box-shadow: 0 0 5px #fff;
box-shadow: 0px 0px 5px #fff;
}

Đối với IE, bạn có thể sử dụng bộ lọc phát sáng (không chắc chắn trình duyệt nào hỗ trợ nó)

img
{
    filter:progid:DXImageTransform.Microsoft.Glow(Color=white,Strength=5);
}

Chơi với các cài đặt để xem những gì phù hợp với bạn :)


Tôi nghĩ rằng sự hỗ trợ này chỉ IE 9+, chỉ cần thêm: <meta http-equiv="X-UA-Compatible" content="IE=9" />để render các trang trong IE9 và IE10 như phiên bản IE9
Christian Đánh dấu

5
Lưu ý rằng bộ lọc có hành vi không mong muốn trong một số phần tử. Áp dụng nó vào một bộ trường và ngạc nhiên. Ngoài ra, nó có thể bị rò rỉ đến các phần tử con. Và nó sẽ hiển thị cảnh báo ActiveX cho trang có thanh màu vàng đáng sợ. Chỉ cần tránh nó. thêm một bóng màu xám nhạt phẳng cho IE và được thực hiện với.
gcb

Không hoạt động với hình ảnh trong suốt. Giống như một logo png tròn.
Santosh Kumar

@SantoshKumar, không, không, bởi vì box-shadow không thể biết các pixel không trong suốt của png ở đâu. Nó chỉ ảnh hưởng đến các phần tử HTML, bản thân phần tử <img>, không ảnh hưởng đến nội dung.
Kyle

1
@ Kyle thả bóng có thể mặc dù :)
Brandito

9

@tamir; bạn cna làm điều đó với thuộc tính css3.

img{
-webkit-box-shadow: 0px 0px 3px 5px #f2e1f2;
-moz-box-shadow: 0px 0px 3px 5px #f2e1f2;
box-shadow: 0px 0px 3px 5px #f2e1f2; 
}

kiểm tra fiddle http://jsfiddle.net/XUC5q/1/ & của bạn có thể tạo từ đây http://css3generator.com/

Nếu bạn cần nó hoạt động trong các phiên bản IE cũ hơn, bạn có thể sử dụng CSS3 PIE để mô phỏng box-shadow trong các trình duyệt đó và bạn có thể sử dụng filternhư kyle đã nói như thế này

filter:progid:DXImageTransform.Microsoft.Glow(color='red', Strength='5')

bạn có thể tạo bộ lọc của mình từ đây http://samples.msdn.microsoft.com/workshop/samples/author/filter/Glow.htm


Bạn không cần MOZ và webkit tiền tố nữa, phiên bản mới nhất của những trình duyệt hỗ trợ box-shadownhư là :)
Kyle

@kyle; tôi biết nhưng nó không hoạt động trên phiên bản trước trước khi Mozilla beta.
sandeep vào

2
@Kyle - và nếu bạn muốn hỗ trợ người dùng phiên bản cũ hơn? (vẫn còn một số trên mạng)
Spudley

1
@kyle; Có thể bạn phải cập nhật câu trả lời của mình vì có rất nhiều người đã không cập nhật mozilla ở đó.
sandeep

7

Hoạt động như một sự quyến rũ!

.imageClass {
  -webkit-filter: drop-shadow(12px 12px 7px rgba(0,0,0,0.5));
}

Thì đấy! Đó là nó! Rõ ràng là điều này sẽ không hoạt động, nhưng ai quan tâm ...


2
Bị phản đối; -webkit-filter không phải là một thuộc tính CSS và trong mọi trường hợp sẽ chỉ hỗ trợ các trình duyệt webkit - tốt hơn hết là bạn nên thêm phiên bản không có tiền tố và có thể là các tiền tố -moz-, -ms- và -o-, nên mozilla, Microsoft hay Opera (trong khi Opera 12 vẫn đang được lưu hành ...)
Algy Taylor

Đã ủng hộ. Là một tài sản không tiêu chuẩn không làm cho nó trở nên vô dụng. Có những trường hợp sử dụng mà bạn không cần hỗ trợ bất cứ thứ gì ngoại trừ webkit. Câu trả lời này đã giúp tôi và hiệu ứng -webkit-filter có vẻ phù hợp trong trường hợp của tôi hơn là box-shadow.
Anton Jebrak,

Đây là câu trả lời tốt nhất, bởi vì nó sẽ DropShadow các nội dung và không container
smedasn

3

Phụ thuộc vào trình duyệt mục tiêu của bạn là gì. Trong những cái mới hơn, nó đơn giản như :

   -moz-box-shadow: 0 0 5px #fff;
-webkit-box-shadow: 0 0 5px #fff;
        box-shadow: 0 0 5px #fff;

Đối với các trình duyệt cũ hơn, bạn phải triển khai các giải pháp thay thế, ví dụ: dựa trên ví dụ này , nhưng hầu hết bạn sẽ cần thêm đánh dấu.


2

đến muộn bữa tiệc ở đây; tuy nhiên chỉ muốn thêm một chút thú vị ..

box-shadow: 0px 0px 5px rgba(0,0,0,.3);
padding:7px;

sẽ cung cấp cho bạn một hình ảnh đệm đẹp mắt. Phần đệm sẽ cung cấp cho bạn một đường viền trắng mô phỏng (hoặc bất kỳ đường viền nào bạn đã thiết lập). rgba chỉ cho phép bạn tạo opicity trên một màu cụ thể; 0,0,0 là màu đen. Bạn có thể dễ dàng sử dụng bất kỳ màu RGB nào khác.

Hy vọng điều này sẽ giúp ai đó!


0

Bạn có thể sử dụng CSS3 để tạo hiệu ứng như vậy, nhưng sau đó bạn sẽ chỉ thấy nó trong các trình duyệt hiện đại hỗ trợ box shadow, trừ khi bạn sử dụng polyfill như CSS3PIE . Vì vậy, ví dụ, bạn có thể làm điều gì đó như sau: http://jsfiddle.net/cany2/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.