2012-10-21 37 views
13

Tôi đã thử nghiệm hiệu ứng bóng đổ trong cả Chrome và Firefox và tôi đã rất ngạc nhiên khi thấy sự khác biệt rõ rệt về hiển thị giữa hai trình duyệt. Đáng chú ý, kết xuất của Firefox là nhiều hơn tối hơn. Dưới đây là hai hình ảnh tham khảo:Firefox và Chrome dường như hiển thị hộp bóng hoàn toàn khác nhau

ChromeFirefox

Những hình ảnh đầu tiên được kết xuất trong Chrome 22, và sau này trong Firefox 16, cả hai đều chạy trên Mac OS 10.8.2. Tôi không biết tại sao hai hình ảnh lại hiển thị khác nhau. Đây là chính hộp bóng, giống với cả hai trình duyệt:

box-shadow: 0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 200px -100px rgba(0,0,0,0.5); 

Để có bản trình diễn trực tiếp, bạn có thể xem here. Di chuột qua hộp để có hiệu ứng.

Có cách nào tôi có thể khắc phục sự khác biệt quyết liệt này trong hiển thị không?

+2

Đây là một vấn đề trong một thời gian dài. Tôi vẫn không biết nguyên nhân gây ra nó: http://stackoverflow.com/questions/11167516/different-output-for-same-box-shadow-size-in-chrome-and-firefox – BoltClock

+0

Tôi đoán là, điều này là một thành phần mà trình duyệt thiết kế. Ví dụ: Cửa sổ bật lên cảnh báo trông rất khác trong các trình duyệt khác nhau. Nếu bạn muốn có cùng một cái nhìn, tôi nghĩ bạn phải vẽ và tự viết mã. – user1894606

Trả lời

4

Bạn có thể tạo bộ chọn phương tiện cho Firefox sẽ sử dụng một kiểu khác. Bạn sẽ phải chơi đùa với nó. Ví dụ, tôi làm giảm độ mờ, sự lan tỏa và tăng độ mờ đục của hộp bóng tối bên trong. Vì vậy, các CSS cho .box: hover có lẽ nên nhìn một cái gì đó như thế này:

.box:hover { 
    box-shadow(0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 200px -100px rgba(0,0,0,0.5)); 
} 

@-moz-document url-prefix() { 
.box:hover { 
    box-shadow(0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 130px -120px rgba(0,0,0,0.9)); 
} 
} 

Để biết thêm phương tiện truyền thông selectors và trình duyệt khác hacks bạn có thể truy cập BrowserHacks.com

+0

Tôi cho rằng việc sử dụng các tiền tố của mỗi trình duyệt sẽ đủ để không có lý do gì để sử dụng hack cho điều này. – xpy

+0

@ xpy Bạn có thể cho tôi một ví dụ, bởi vì tôi không thể hiểu bạn? – thexpand

+2

Tôi đã thực hiện một ví dụ: http://jsfiddle.net/pavloschris/hkJkG/ ngay cả khi có phiên bản không được cố định của thuộc tính, chrome sử dụng thuộc tính có tiền tố, các trình duyệt khác sẽ sử dụng tính năng không được cố định. – xpy

1

Đó là bởi vì Chrome và Firefox sử dụng kết xuất đồ họa html khác nhau . Tôi nghĩ rằng sự khác biệt quyết liệt là do màu sắc raga, thay vào đó hãy thử làm mờ dần bóng tối.

1

Có thể đặt lại css sẽ giúp:

http://codepen.io/anon/pen/IteyC

+1

Vui lòng thử đọc http://stackoverflow.com/help/deleted-answers này để hiểu thêm về cách ** không ** trả lời. Cụ thể: "Câu trả lời không trả lời về cơ bản câu hỏi": ** hầu như không chỉ liên kết đến một trang web bên ngoài ** –

1

Bạn đang sử dụng nhiều bóng hộp vì vậy hãy thử làm điều này (cũng loại bỏ alpha từ bóng hộp Tôi đã làm điều này dưới đây để bạn có thể thử)

box-shadow: 0px 1px 3px rgba(0,0,0), 
      inset 0px 4px 2px -2px rgba(255,255,255), 
      inset 0px -3px 1px -2px rgba(0,0,0), 
      inset 0px -20px 200px -100px rgba(0,0,0); 

-moz-box-shadow: 0px 1px 3px rgba(0,0,0), 
       inset 0px 4px 2px -2px rgba(255,255,255), 
       inset 0px -3px 1px -2px rgba(0,0,0), 
       inset 0px -20px 200px -100px rgba(0,0,0); 

-ms-box-shadow: 0px 1px 3px rgba(0,0,0), 
       inset 0px 4px 2px -2px rgba(255,255,255), 
       inset 0px -3px 1px -2px rgba(0,0,0), 
       inset 0px -20px 200px -100px rgba(0,0,0); 

-webki-box-shadow: 0px 1px 3px rgba(0,0,0), 
        inset 0px 4px 2px -2px rgba(255,255,255), 
        inset 0px -3px 1px -2px rgba(0,0,0), 
        inset 0px -20px 200px -100px rgba(0,0,0); 

Nếu bạn vẫn có vấn đề gì đó, bạn có thể kiểm tra chính xác

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