2012-03-16 32 views
5

Có ai biết nếu Firebug làm tròn phần trên cùng và trái khi chúng cho chúng ta bảng bên dưới?Tính toán Bọ Rác và Bù Đắp

Lý do tôi hỏi là vì tôi đang gặp khó khăn khi sử dụng bù đắp có vị trí thập phân và tôi tự hỏi liệu Firebug có làm tròn hoặc sàn các giá trị này hay không.

Tôi đã cố gắng xem xét mã nguồn nhưng không thể xác định nơi tính toán bù trừ đã được thực hiện.

Bất kỳ trợ giúp đánh giá cao.

enter image description here

Trả lời

5

Theo firebug source on SVN, các giá trị bù đắp được phân tích cú pháp như số nguyên. Ngoài ra, hãy xem this.

Tôi không phải là 100% những gì Firebug thực hiện nhưng khi tôi xử lý giá trị thập phân cho pixel, tôi luôn sàn vì làm tròn lên có thể làm vỡ bố cục.

Câu hỏi này cũng có thể giúp: Are the decimal places in a CSS width respected?

+0

chúng là gì? 'parseInt' chỉ được sử dụng trên chiều rộng đường viền, không được nhỏ hơn pixel. Các offsets dường như còn lại một mình. –

+0

@TJ - cảm ơn bạn rất nhiều vì sự giúp đỡ và thông tin chi tiết. Chúng tôi đã quyết định sàn. Chúng tôi đã làm việc cơ bản nếu các yếu tố nhất định chồng lên nhau. – Abs

+0

@Abs: Bạn được chào đón. –

2

Tôi không chắc chắn về mặc dù điều này. Nhưng tôi nghĩ khi bạn thiết lập một kiểu có dấu thập phân. Nó là trình duyệt xác định nếu số thập phân đó phải được làm tròn hoặc sàn. Vì lý do thực tế, số thập phân làm tròn là lựa chọn tốt nhất. Đó là lựa chọn tốt nhất bởi vì các phần tử nổi có xác suất thay đổi bố cục cao hơn đáng kể. Ví dụ, nếu bạn có một wrapper với ba hình chữ nhật trên đó. Trình bao bọc dài 60 pixel và bạn đặt chiều rộng hình chữ nhật thành 20,5px. Nếu trình duyệt làm tròn dấu thập phân thì hình chữ nhật cuối cùng sẽ nhảy sang hàng tiếp theo.

Dưới đây là một số JS fiddle nơi bạn có thể thử nghiệm nhiều dấu thập phân khác nhau cho các trình duyệt khác nhau. Và nếu tôi sửa thì giá trị offset bên trái và trên cùng luôn có cùng giá trị với các phương thức JS gốc offsetLeftoffsetTop. Ít nhất là trong các thử nghiệm của tôi.

  • Firefox vòng
  • Google Chrome & Safari tầng
+0

Ví dụ hay! Tuy nhiên các thử nghiệm của tôi cho thấy kết quả ngược lại. Tôi đang sử dụng Mac OS X và nhận được các kết quả sau: - Firefox 11: vòng, vì vậy 20.4 ==> 20 và 20.5 => 21. - Safari 5.1.2 & Chrome 17: floor, mặc dù 20.99 được làm tròn thành 21, trong khi 20,90 được chia thành 20. Tôi không hiểu cách [sàn] (http://vi.wikipedia.org/wiki/Floor_and_ceiling_functions) ba phần tử có chiều rộng 20,5px sẽ không vừa với nhau trong 60px thùng đựng hàng. Chiều rộng sàn sẽ là 20px và vừa vặn hoàn hảo. Làm tròn tới 21px sẽ yêu cầu thêm ba pixel để buộc phần tử cuối cùng di chuyển xuống. –

+0

Xin lỗi TJ của tôi sai. Tôi đến từ Thụy Điển nên tôi trộn chúng lại. Tôi sẽ thay đổi câu trả lời của tôi. – einstein

+0

Tôi có thể hỏi tại sao bạn cần thông tin này? – einstein

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