2015-02-14 13 views
6

Tôi muốn biết lý do tại sao webkit-backface-visibility giống như aspirin tất cả các mục đích giải quyết hoặc làm tồi tệ hơn tất cả các loại vấn đề không đồng nhất, chủ yếu liên quan đến hiện vật và nhấp nháy.Phép thuật cơ bản của -webkit-backface-visibility

Tôi đã đọc và hiểu những gì thực sự backface-visibility là dành cho: Kiểm soát đối tượng xoay vòng 3D có thể hiển thị khi không nhìn vào màn hình. Có một tốt đẹp, straighforward bản demo here

Nhưng tôi tò mò tại sao, mỗi lần tôi có trục trặc kỳ lạ trong thế giới CSS, hoàn toàn không liên quan đến 3D quay và backfaces ẩn của họ, áp dụng backface-visibility đến lớp có vấn đề hoặc một trong của nó tổ tiên thường giúp hoặc làm mọi thứ tồi tệ hơn, nhưng hiếm khi không làm gì cả. Tôi đang nói về những thứ như

  • Animations nhấp nháy
  • lớp Cố định vấn đề Z-Index
  • Display: none <> nhấp nháy có thể nhìn thấy và hiện vật
  • cuộn nhấp nháy

Điều thú vị và luôn luôn trong kinh nghiệm khiêm nhường của tôi, backface-visibility:hidden có xu hướng giải quyết các nội dung liên quan đến vị trí cố định và backface-visibility:visible là "tốt nhất" để nhấp nháy. Cũng thú vị, trong Chrome và Safari các tác dụng phụ là khác nhau, nhưng cậu bé có!

Tôi đang làm việc trong trình tạo HTML trực quan, do đó, tình huống tôi đã có hiện tượng nhấp nháy/tạo hình khá phức tạp (ví dụ: hoạt ảnh trên nhiều lớp, div cuộn đằng sau các phần tử cố định, tuyệt đối cố định với chỉ mục z .. ..)

Mọi người đều có thể khai sáng cho tôi?

+1

https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE Tôi tìm thấy bài đăng này trên các nhóm của Google nơi kỹ sư đồ họa của Chrome Nat Duca nói rằng khả năng hiển thị ngược có một số điều kỳ quặc thực hiện, nếu điều này vẫn còn thú vị với bạn. – Ogalb

Trả lời

4

Tôi không chắc chắn những gì loại ma thuật bạn đang nói về, nhưng có một số trường hợp CSSbackface-visibility tài sản có thể giúp thúc đẩy DOM yếu tố để một lớp để trình duyệt có thể mất adventage của GPU trong khi hiển thị phần tử đó.

LƯU Ý: chỉ hidden giá trị sẽ thăng cấp lên một lớp không visible.

Cũng có những trường hợp thuộc tính này có thể sửa các cạnh lởm chởm xung quanh các phần tử. Tất cả đều nhờ vào hình ảnh GPU.

Có một số khác CSS thuộc tính hoạt động tương tự như translateZ(0) hoặc translate3d(0,0,0). Đây là tất cả các hack, và sẽ được thay thế bằng thuộc tính CSS mới will-change.

Nếu bạn đang làm hình ảnh động với CSS, lựa chọn tốt nhất về hiệu suất là thay đổi chỉ những CSS tính: transformsopacity. Nhưng đây là chủ đề thay đổi và các trình duyệt liên tục thay đổi để điều này cũng có thể thay đổi trong tương lai. Mục đích là làm cho mọi thuộc tính CSS trở nên mượt mà nhất có thể (lý tưởng ở 60FPS) trong khi hoạt ảnh.Tôi biết rằng nhóm Chrome đang làm việc rất chăm chỉ, nhưng không chắc chắn về các nhà cung cấp khác.

+0

bài đăng trên blog đẹp ... trong thời gian này tôi đã phát hiện ra nhiều hơn "ảo thuật backface visiblity" ma thuật, ví dụ như nền đính kèm: cố định dừng làm việc nếu cha mẹ có wbkv: ẩn .. Tôi hiểu bây giờ những gì đang xảy ra, nhưng nó tuyệt vời của hàng trăm tác dụng phụ của thẻ này, và chúng khác nhau trong safari vs chrome, thậm chí đôi khi một yêu cầu backface ẩn, và backface khác: vis ... điều này luôn luôn nói về các trang rất phức tạp ... sẽ thay đổi dường như giúp đỡ một chút. – rupps

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