Pixel CSS có thể là một phân số không?


81

CSS pxcó thể là một phân số không? Nó được cho phép bởi các tiêu chuẩn? Và nếu vậy, các trình duyệt chính có hỗ trợ nó không?

Hãy quay lại câu trả lời bằng tài liệu, các bạn.


@MetalFrog câu hỏi này bắt nguồn từ một cuộc thảo luận tại nơi làm việc :-)
Kees C. Bakker

3
Trớ trêu thay, gần đây tôi đã phải sử dụng pixel phân số để có lưới có thể sắp xếp giao diện người dùng jQuery để bố trí đúng cách. Khi lề trên trình giữ chỗ bằng hoặc nhỏ hơn một pixel so với lề trên các mục xung quanh, lưới sẽ dịch chuyển khắp nơi khi kéo. Cách khắc phục duy nhất (và một giải pháp trên nhiều trình duyệt tại thời điểm đó!) Là giảm lợi nhuận của vị trí xuống 0,5px. Sau đó, mọi thứ hoạt động tốt. Cho dù đó là thông số kỹ thuật hay không, chủ yếu là ở mức độ lớn, bạn phải làm những gì bạn phải làm vào cuối ngày.
Chris Pratt,

Có quy tắc nào về cách trình duyệt hiển thị một đường có kích thước nhỏ hơn 1px không? Tôi có nhiều trang (tài liệu Word được chuyển đổi sang HTML) trong đó các đường viền bảng có chiều rộng tương ứng với một phần nhỏ của pixel. Những màn hình như 1px trong IE và firefox nhưng biên giới là không thể nhìn thấy ở tất cả chrome bên trong
Andy

1
Câu hỏi ban đầu của bạn liên quan đến phân số hay số thập phân? Một phân số sẽ là 1/3, trong khi một số thập phân sẽ là .33 (lặp lại). Về mặt toán học, có một sự khác biệt, và nếu bất cứ thứ gì quan tâm đến tính kỹ thuật của toán học, thì đó là máy tính.
Mike

1
Không trùng lặp, nhưng có liên quan - một cuộc thảo luận về pixel phân đoạn được tôn trọng bởi rendering: stackoverflow.com/questions/4308989/...
Sandy Gifford

Câu trả lời:


69

Có, bạn có thể chỉ định pixel phân số. Vì đây là một phần của CSS kể từ phiên bản đầu tiên, nó sẽ được hỗ trợ tốt bởi bất kỳ trình duyệt nào hỗ trợ CSS.

Tham khảo: CSS 2.1: 4.3.2 Độ dài

"Định dạng của giá trị độ dài (được biểu thị bằng <length> trong thông số kỹ thuật này) là <number> (có hoặc không có dấu thập phân) ngay sau đó là số nhận dạng đơn vị (ví dụ: px, em, v.v.)."

Khi các phần tử được hiển thị trên màn hình, hầu hết các trình duyệt sẽ tự nhiên làm tròn vị trí đến pixel gần nhất khi sử dụng mức thu phóng 100%. Ở các mức thu phóng cao hơn, bạn sẽ nhận thấy rằng các giá trị pixel phân số được nhận dạng.


1
@ KeesC.Bakker: Tôi chỉ thêm điều đó. :)
Guffa

6
Vấn đề là, các trình duyệt khác nhau xoay vòng theo cách khác nhau: stackoverflow.com/a/5587820/405015
ba mươi

4
Tìm thấy một blog thú vị về đề tài này: ejohn.org/blog/sub-pixel-problems-in-css
cboler

12
Để làm rõ, một phân số sẽ là 1/3, trong khi một số thập phân sẽ là .33 (lặp lại). Tôi thừa nhận rằng đó là một phần ngữ nghĩa (đối với chuyên ngành toán học thì không), nhưng câu trả lời chính xác là CSS không hỗ trợ phân số hoặc pixel phân số. Tuy nhiên, nó hỗ trợ các giá trị pixel thập phân.
Mike

4
@Mike: Thuật ngữ phân số có thể được sử dụng theo nhiều cách khác nhau, giống như thuật ngữ thập phân có thể chỉ định một số có một phần phân số hoặc một số được biểu thị trong cơ số 10.
Guffa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.