2011-06-07 26 views
14

Một thời gian dài trở lại, tôi đọc a great article mô tả cách thức thân thiện với trình duyệt chéo với kích thước văn bản bằng cách sử dụng CSS. Chiến lược được mô tả là như vậy:Nhận kích thước phông chữ iPhone giống với các trình duyệt khác

body { 
    font-size:100%; 
    line-height:1.125em; /* 16×1.125=18 */ 
} 
.bodytext p { 
    font-size:0.875em; /* 16x.875=14 */ 
} 
.sidenote { 
    font-size:0.75em; /* 16x0.75=12 */ 
} 

Chiến lược này hoạt động tốt trên mọi trình duyệt trừ Safari trên iPhone, mà luôn luôn có vẻ để phóng to bit nhất định của văn bản. Có chiến lược nào để ngăn chặn điều này xảy ra không?

Thông thường giải pháp của tôi là thêm -webkit-text-size-adjust: none; để ngăn iPhone mở rộng kích thước văn bản, nhưng gần đây tôi đã truy cập this article, mô tả rằng nó không cho phép người dùng phóng to văn bản trên BẤT K Safari trình duyệt Safari - rõ ràng là một vấn đề. Tôi biết rằng có một giải pháp CSS chỉ có ở đó, nhưng tôi không thể tìm thấy nó. Tôi chỉ muốn biết làm thế nào tôi nên đi về thiết lập kích thước phông chữ để họ hiển thị như nhau trên tất cả các trình duyệt, bao gồm cả iPhone.

Cập nhật: Để hiển thị ví dụ, nếu bạn xem this trên iPhone, bạn sẽ nhận thấy rằng văn bản trong đoạn lớn hơn đáng kể so với phần còn lại của văn bản xung quanh trang web. Tại sao văn bản này được tách ra, và có cách nào mà tôi có thể nói chỉ bằng cách nhìn vào mã mà điều đó sẽ xảy ra?

+1

Hãy nhớ rằng các tiêu chuẩn trợ năng có thể ngăn bạn hoàn toàn đạt được những gì bạn đang yêu cầu. Các kích thước phông chữ cố định là một cơn ác mộng đối với những người khiếm thị. – Rippo

+0

Tôi không muốn kích thước phông chữ nhất thiết phải là "cố định", tôi chỉ muốn chúng hiển thị cùng kích thước theo mặc định. – Wex

+0

Trong trường hợp đó, giải pháp duy nhất của bạn là sử dụng hình ảnh thay vì văn bản. Tôi nghĩ bạn đang hỏi điều không thể ở đây. – Rippo

Trả lời

12

Bạn có một kỹ thuật bạn hài lòng với, nhưng với một nhược điểm:

Chiến lược này hoạt động tốt trên tất cả các trình duyệt trừ Safari trên iPhone, mà luôn luôn có vẻ để phóng to một số bit của văn bản . Có bất kỳ chiến lược nào để ngăn điều này xảy ra không?

..

Thông thường giải pháp của tôi sẽ có thêm -webkit-text-size-điều chỉnh: none; để ngăn chặn iPhone từ mở rộng kích thước của văn bản, nhưng gần đây tôi đi qua this article, trong đó mô tả rằng nó không cho phép người dùng phóng to vào văn bản trên bất kỳ trình duyệt Safari - rõ một vấn đề. Tôi biết rằng có là giải pháp chỉ hỗ trợ CSS, nhưng Tôi không thể tìm thấy giải pháp đó.

Nhìn vào style.css từ http://html5boilerplate.com/mobile/

/* Prevent mobile zooming while remain desktop zooming. 
    github.com/shichuan/mobile-html5-boilerplate/issues/closed#issue/14 
*/ 
body { 
    -webkit-text-size-adjust: 100%; 
     -ms-text-size-adjust: none; 
} 

Có vẻ như chính xác những gì bạn đang sau, đặc biệt là khi bạn đọc the comment in the link:

Chỉ cần một gợi ý, nó có vẻ như một tốt ý tưởng để đặt -webkit-text-size-adjust thành 100% thay vì none. Đặt nó thành none ngăn việc phóng to phông chữ trên màn hình nền Trình duyệt WebKit, có vẻ như vấn đề về khả năng truy cập . giá trị mặc định Mobile Safari là trên 100%, đó là lý do tại sao văn bản lớn - vì vậy nếu bạn đặt nó để 100% thay vì none, phông chữ ở kích thước chính xác trên điện thoại di động nhưng có thể vẫn được thu nhỏ trên máy tính để bàn.

+0

Cảm ơn bạn vì câu trả lời rất có nhiều thông tin. Tôi sẽ kiểm tra nó và cho bạn biết những gì tôi nhìn thấy. – Wex

+0

Điều này chỉ dẫn đến mối quan tâm tiếp theo của tôi về CSS "hợp lệ". Tôi vẫn muốn được quan tâm khi thấy có một bản sửa lỗi không yêu cầu CSS dành riêng cho trình duyệt. – Wex

+2

@Wex: Bạn đã có cơ hội thử điều này chưa? Về CSS "hợp lệ" - CSS là "hợp lệ", theo mọi nghĩa là quan trọng. [Đây là "tính năng"] (http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/AdjustingtheTextSize/AdjustingtheTextSize.html) cụ thể cho một trình duyệt (Mobile Safari), vì vậy sẽ tự nhiên bạn sẽ cần "CSS dành riêng cho trình duyệt". Tôi không thể nhìn thấy bất kỳ cách nào xung quanh đó .. – thirtydot

0

Từ kinh nghiệm của tôi, pixel sử dụng và không điểm, điểm máy Mac và PC màn hình khác nhau, trong khi pixel là nhiều hay ít cùng (phải trung thực luôn luôn có một sự khác biệt, nhưng với pixel đó là ít chú ý) .

Ngoài ra, line-height, không may luôn luôn có một sự khác biệt, (thậm chí giữa Safari và Firefox trên mac), nhưng bạn luôn có thể sử dụng phong cách có điều kiện cho Internet Explorer, và nếu cần thiết, sử dụng javascript giải pháp cho Firefox line-height.

Cuối cùng, một số phông chữ có thể hiển thị trình duyệt chéo khác nhau, đó là vấn đề thử nghiệm.

+0

Tôi hiểu rằng chúng hiển thị khác nhau - câu hỏi của tôi là cách khắc phục những khác biệt này – Wex

+0

@Wex Ngay cả khi sử dụng pixel? và sử dụng phông chữ * được hỗ trợ * bởi hầu hết các trình duyệt? đó là hai giải pháp chính của tôi. – jackJoe

+0

@Wex - Tóm lại, điều mà JackJoe đang nói là nếu bạn đang sử dụng pixel và phông chữ được hỗ trợ bởi mọi trình duyệt (trình duyệt vẫn không thể thực hiện được, thậm chí với phông chữ "web an toàn"), bạn không thể sửa sự khác biệt. Nói một cách đơn giản, mọi thứ sẽ khác nhau trên mọi trình duyệt, và đối với một số thứ, bạn không thể làm gì với nó. Đây không phải là thiết kế giấy, và không nên được đối xử như vậy. Tốt hơn là nên nắm lấy, hoặc ít nhất là vì những khác biệt không thể thay đổi được. Nếu không, bạn sẽ đi hạt cố gắng để có được tất cả mọi thứ giống hệt nhau trong mọi trình duyệt có thể tưởng tượng. – Shauna

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