2012-09-16 47 views
11

OK, tôi đã tìm kiếm rất xa và không có gì khác với bằng chứng giai thoại để đề xuất rằng có không có hành vi chuẩn được đề xuất trong đặc tả CSS cho độ chính xác của số dấu phẩy động.Vị trí thập phân trong tỷ lệ phần trăm CSS

N.B. Tôi không hỏi về well known sub-pixel rounding problem.

Lý do tôi yêu cầu là IE dường như làm tròn các giá trị dấu phẩy động dựa trên phần trăm xuống 2 chữ số thập phân, trong khi Webkit và Gecko cho phép ít nhất 3 hoặc thậm chí nhiều hơn (tôi chưa thử nghiệm).

Ví dụ:

li { 
    width: 14.768%; 
} 

Khi kiểm tra trong Inspector Chrome trực tuyến hoặc Firebug, các <li> s được hiển thị một cách chính xác để có chiều rộng 14,768%. Tuy nhiên, trong các công cụ phát triển IE (chế độ IE9/8/7), chúng có chiều rộng 14,76%. Điều này cũng làm cho các giá trị dựa trên pixel thực tế hoàn toàn bị loại bỏ.

Ai có thể làm sáng tỏ hành vi này hoặc cung cấp giải pháp phù hợp không? Tôi không muốn phải sử dụng các giá trị dựa trên pixel nếu có thể, vì nội dung cần phải có chiều rộng chất lỏng.

Tôi biết nó khá gnarly đối phó với nhiều nơi thập phân này, nhưng tôi muốn rất quan tâm để biết được, nếu có, của các trình duyệt này là "chính xác"?

EDIT

Firefox dường như sử dụng các giá trị tỷ lệ chính xác khi hiển thị trong thanh tra (không làm tròn đến 2 chữ số thập phân), nhưng được hiển thị hành vi tương tự như IE về vị trí điểm ảnh thực tế.

+3

Tại sao bạn cần độ chính xác ba thập phân? –

+0

Tôi đã viết một plugin cho băng chuyền đáp ứng rộng, chất lỏng. Tất cả độ rộng và độ lệch đều được thực hiện bằng cách chia số lượng băng chuyền cho tổng số, v.v. Thật không may này có thể kết thúc với chiều rộng 3 chữ số thập phân. :/ –

+1

Nếu bạn thấy mình cần 3 độ chính xác thập phân trong CSS, bạn đang làm điều gì đó sai. – AntonNiklasson

Trả lời

4

Có lẽ nhiều giải pháp cho vấn đề của bạn, tôi sẽ đề nghị sau đây:

  1. Round trên 2 thập phân của mình cho tất cả nhưng một, hơn giảm từ tổng chiều rộng cho người cuối cùng.
  2. Sử dụng table hoặc display: table, so với trình duyệt sẽ tự khắc phục độ rộng.
Các vấn đề liên quan