2014-04-28 26 views
21

bất cứ ai có thể giải thích như thế nào fallbacks làm việc trong CSS? Tôi cố gắng để thiết lập nó cho vh và vw và rõ ràng tôi không nhận được nó ...Làm thế nào để viết fallbacks css cho vh vw

Đây là giải pháp cố gắng của tôi, mà không hoạt động. Thuộc tính chiều cao được lấy mỗi lần.

CSS:

-webkit-height: 5.2vh; 
-moz-height: 5.2vh; 
-ms-height: 5.2vh; 
-o-height: 5.2vh; 
height: 41px; /* The Fallback */ 

Trả lời

55

Mã của bạn (và tại sao nó không hoạt động)

Nhìn vào mã ban đầu của bạn, tôi có một vài ý kiến:

-webkit-height: 5.2vh; 
-moz-height: 5.2vh; 
-ms-height: 5.2vh; 
-o-height: 5.2vh; 
height: 41px; /* The Fallback */ 

Các tiền tố, các bit -webkit-, chỉ áp dụng nếu có một thuộc tính tiền tố theo tên đó. Chiều cao không có thuộc tính tiền tố, do đó các trình duyệt chỉ bỏ qua các khai báo đó.

(Mẹo: Bạn có thể kiểm tra một cái gì đó giống như MDN để xem những gì thuộc tính tồn tại.)

Giải pháp:

Trong trường hợp này, chúng ta có thể tận dụng lợi thế của một thực tế rằng, nếu trình duyệt gặp phải một tài sản hoặc một giá trị mà họ không hiểu, họ bỏ qua nó và tiếp tục. Vì vậy, những gì bạn đang muốn tìm một cái gì đó như:

height: 41px; 
height: 5.2vh; 

Trình duyệt thấy height: 41px, như mong đợi. Nó phân tích cú pháp đó và biết phải làm gì với nó. Sau đó, nó sẽ thấy height: 5.2vh. Nếu trình duyệt hiểu được đơn vị vh, nó sẽ sử dụng thay vì 41px, giống như color: blue; color: red; sẽ kết thúc là màu đỏ. Nếu nó không hiểu đơn vị vh, nó sẽ bỏ qua nó, và, bởi vì chúng tôi đã xác định dự phòng đầu tiên, thực tế là trình duyệt bỏ qua các đơn vị vh không quan trọng.

Make ý nghĩa?

+14

Hãy loại bỏ phần đầu của câu trả lời của bạn, hoặc tiền tố nó với "Code của bạn" vì nó trông thoạt nhìn giống như đoạn mã đầu tiên là chấp nhận trả lời. Mà nhầm lẫn tôi như px "The Fallback" nên được trước khi vh, như bạn mô tả sau này trong câu trả lời của bạn. – redfox05

+0

Tôi thích chỉnh sửa của bạn; ngay sau khi tôi có thể tìm ra cách sử dụng nó, hoặc nó được xem xét bởi đủ người, tôi ổn với nó. –

+2

Tôi chỉ mới nhận ra sau khi xem qua số liệu thống kê tiểu sử của mình rằng mặc dù bạn thích chỉnh sửa, nó hoàn toàn bị từ chối bởi những người khác như 'Chỉnh sửa này không làm cho bài đăng dễ đọc hơn, dễ tìm hơn, chính xác hơn hoặc Dễ tiếp cận hơn. Các thay đổi hoàn toàn không cần thiết hoặc gây tổn hại tích cực đến khả năng đọc.' và 'bản chỉnh sửa của anh ta nhằm mục đích giải quyết tác giả của bài đăng và không có ý nghĩa như một bản chỉnh sửa. Nó phải được viết dưới dạng bình luận hoặc câu trả lời'. Sigh, không thể giành chiến thắng chúng ta có thể: P Chúc mừng cho cuộc bỏ phiếu của sự tự tin tho. – redfox05

13

Nơi mùa thu của bạn trở lại trên bạn giá trị khác. Nếu giá trị ghi đè không hoạt động trên trình duyệt, giá trị đầu tiên sẽ được sử dụng.

height: 41px; /* The Fallback */ 
height: 5.2vh; 
5

Các thuộc tính -moz-height, -webkit-height, -o-height, và -ms-height không tính phần mở rộng hợp lệ, họ không xác định bởi bất kỳ việc triển khai UA.

Bạn nhận được height: 41px làm giá trị chiến thắng vì -webkit-height (trong Chrome hoặc Safari) không được công nhận, nhưng height: 41px là.

Bạn sẽ muốn sử dụng này:

height: 41px;  
height: 5.2vh; 

... với mã này, trình duyệt đầu tiên sẽ nhận height: 41px, sau đó nếu họ nhận ra height: 52.vh sẽ được áp dụng, nếu không họ sẽ trở lại cuối cùng Giá trị "tốt": 41px.

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