2011-10-05 12 views
12

Nói, tôi đã quy tắc CSS sau định nghĩa:Sử dụng phân đoạn em là tài sản font-size CSS của

.className { 
font-size:0.89em; 
} 

Câu hỏi của tôi là, làm thế nào "sâu" vào các phần phân đoạn tôi có thể đi khi xác định 'em là cho các trình duyệt thực sự để hỗ trợ nó và cho kích thước phông chữ được hiển thị khác nhau cho một sự thay đổi nhỏ trong giá trị của em?

+1

Chúng dường như khá sâu, tôi không có bất kỳ số vững chắc nào mà tôi có thể cung cấp, nhưng thanh toán một số thứ như http://pxtoem.com/ và chỉ phát xung quanh. Bạn sẽ thấy họ có thể làm bất cứ điều gì. Tôi đã nhìn thấy ems thiết lập trước như 0.631111111111111em và họ đã làm việc. Có hay không điều đó sẽ rõ ràng khác với 0,63em là không chắc chắn mặc dù. –

+0

Rất tốt. Và có vẻ như hầu hết các trình duyệt chính đều hiển thị ngay cả một biến thể nhỏ nhất về giá trị của em với các kích thước phông chữ khác nhau. Tại sao bạn không đăng nó như là một câu trả lời và tôi sẽ kiểm tra nó như là một câu trả lời đúng. – ahmd0

+0

Cuối cùng, đơn vị quy mô nhỏ nhất là 1px, phải không? – JohnB

Trả lời

6

JohnB là đúng. Chúng tôi vẫn hiển thị bằng pixel bất kể đơn vị kích thước chúng tôi sử dụng và thay đổi nhỏ về ems sẽ không thay đổi kích thước được hiển thị:

Ví dụ: đối với văn bản hiển thị ở độ cao 20px *, chúng ta có thể thấy rằng không có sự thay đổi có hiệu lực khi một quy tắc được thêm vào để làm cho nó .99em chiều cao ban đầu của nó:

20 * 0.99 = 19.8 

Trình duyệt không thể hiển thị 0,8 của một điểm ảnh, vì vậy (giả sử nó sẽ làm tròn lên) nó vẫn sẽ hiển thị nó cao 20px.

Mặc dù có vẻ như trình duyệt không luôn luôn làm tròn như mong đợi:

http://meyerweb.com/eric/thoughts/2010/02/10/rounding-off/

http://ejohn.org/blog/sub-pixel-problems-in-css/

* Đúng, tôi biết một font-size của 20px không nhất luôn có nghĩa là nó được trưng bày tại 20px!

+0

Rất tốt, cảm ơn bạn. – ahmd0