Có phải vẫn còn liên quan?


16

Sự hiểu biết của tôi từ việc đọc các chủ đề như thế này là điểm của EMS là xác định tất cả các phép đo trong trang web của bạn, theo kích thước phông chữ cơ bản , có thể được đặt bởi trình duyệt của bạn.

Ví dụ: trong Chrome, bạn có thể thực hiện việc này bằng cách đi settings -> show advanced settings -> web content -> font size: very large. Tôi có thể làm điều này nếu tôi đang sử dụng một màn hình lớn, độ phân giải cao, ở rất xa.

Tôi đã tạo ra một plunker thể hiện sự khác biệt giữa ems và px trong kích thước.

#div1 {
  width: 320px
}

#div2 {

  width: 20em;
}

Nếu trong trình duyệt của tôi, tôi đặt kích thước phông chữ ở mức trung bình, các div này sẽ có cùng kích thước, kích thước phông chữ cơ bản là 16px, vì vậy 20em = 320px.

nhập mô tả hình ảnh ở đây

Tuy nhiên, khi tôi thay đổi kích thước phông chữ trình duyệt của mình lên rất lớn, chúng ta có thể thấy rằng div được đo trong ems có kích thước tăng lên.

nhập mô tả hình ảnh ở đây

Tuy nhiên, hiệu ứng này sẽ bị phủ nhận nếu tôi xác định kích thước phông chữ trong thẻ body chẳng hạn.

body {
  font-size: 16px;
}

Bởi vì bây giờ css của tôi đang ghi đè kích thước phông chữ được đặt bởi trình duyệt.

Tôi nhận ra rằng, EMS sẽ rất quan trọng trong thời của các trình duyệt cũ hơn, trong đó việc phóng to trang sẽ chỉ mở rộng phông chữ. Nhưng ngày nay các trình duyệt hiện đại mở rộng cả pixel và phông chữ, khiến vấn đề phóng to thu nhỏ.

Nhìn khắp nơi trên web - rất nhiều trang web làm bộ kích thước phông chữ trong thẻ cơ thể của họ.

Ví dụ như Stack Overflow, đặt kích thước phông chữ thành 13px trong thẻ body. Đặt kích thước phông chữ trong trình duyệt của tôi không ảnh hưởng đến bố cục của Stack Overflow một chút.

nhập mô tả hình ảnh ở đây

Kết quả tìm kiếm của Google không làm điều này.

nhập mô tả hình ảnh ở đây

(cả hai ảnh chụp màn hình này được chụp với kích thước phông chữ chrome được đặt ở mức rất lớn và thu phóng 100%).

Vì vậy, có lẽ bạn có thể lập luận rằng cài đặt kích thước phông chữ trong thẻ body, là một ý tưởng tồi vì nó ngăn chặn cài đặt trợ năng của chính người dùng. Nhưng do người dùng có thể phóng to để tăng kích thước (cũng sẽ tăng tỷ lệ tương ứng cho tất cả các pixel) - đây dường như không phải là vấn đề thực sự.


Người dùng vẫn có thể ghi đè body { font-size: XYZ; }bằng cách sử dụng biểu định kiểu người dùng vớibody { font-size: ZYX !important; }
Peter Taylor

Câu trả lời:


25

Tuy nhiên, hiệu ứng này sẽ bị phủ nhận nếu tôi xác định kích thước phông chữ trong thẻ body chẳng hạn.

body {
  font-size: 16px;
}

Bởi vì bây giờ css của tôi đang ghi đè kích thước phông chữ được đặt bởi trình duyệt.

Bạn đang quên về khả năng tiếp cận .

Xem C14: Sử dụng đơn vị em cho kích thước phông chữ từ Nguyên tắc truy cập nội dung web (WCAG 2.0).

Đặt tùy chọn kích thước phông chữ của trình duyệt của bạn thành Rất lớn . Bây giờ hãy vào một trang web như W3C . Văn bản trông như thế nào?

Đây là những gì tùy chọn này là về. Các nhà phát triển của StackExchange và rất nhiều trang web khác quyết định rằng lựa chọn của họ quan trọng hơn là lựa chọn của người dùng có thể bị khiếm thị. Cho dù lựa chọn này là đúng hay sai nằm ngoài phạm vi của câu hỏi này, và câu trả lời là không cần thiết.

Tuy nhiên, bạn có thể bị buộc (bao gồm cả pháp luật đối với một số trang web) để đưa ra các quyết định khác nhau và để cho phép người dùng chọn kích thước phông chữ của họ. Từ đó, bạn có một lựa chọn: bạn chỉ định kích thước của hình ảnh và các vùng khác nhau của trang bằng pixel, trong trường hợp đó, tùy chọn kích thước phông chữ của trình duyệt sẽ có các hiệu ứng thú vị trên bố cục hoặc bạn sử dụng emcho các yếu tố đó như tốt.

Cũng lưu ý rằng nếu bạn không chỉ định kích thước phông chữ bằng pixel ở cấp độ cơ thể, thì hãy gắn với emít nhất là kích thước phông chữ ở mọi nơi. Chẳng hạn, Google chỉ định kích thước phông chữ không nhất quán và trang tìm kiếm của họ trông lạ, đặc biệt là với các tiêu đề xuất hiện nhỏ hơn văn bản thông thường. Wikipedia, mặt khác, đã làm một công việc tuyệt vời bằng cách sử dụng embất cứ khi nào kích thước phông chữ được chỉ định. Dưới đây là ảnh chụp màn hình của cả hai trang web được Chromium hiển thị với tùy chọn kích thước phông chữ được đặt thành Rất lớn :

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Vì vậy, có lẽ bạn có thể lập luận rằng cài đặt kích thước phông chữ trong thẻ body, là một ý tưởng tồi vì nó ngăn chặn cài đặt trợ năng của chính người dùng. Nhưng do người dùng có thể phóng to để tăng kích thước (cũng sẽ tăng tỷ lệ tương ứng cho tất cả các pixel) - đây dường như không phải là vấn đề thực sự.

Đây là một vấn đề thực sự vì hai lý do.

Đầu tiên, hầu hết các trình duyệt lưu trữ trang web hệ số thu phóng theo trang web. Nếu bạn bị khiếm thị, bạn sẽ buộc phải phóng to, lặp đi lặp lại, trên mọi trang web bạn truy cập. Đó là hút. Với sự thờ ơ hiện tại của các nhà thiết kế và phát triển web đối với khả năng truy cập, những người khiếm thị phải làm điều đó bằng mọi cách, nhưng điều này không có nghĩa là nó nên giữ nguyên như vậy.

Thứ hai, quá nhiều trang web sẽ không hoạt động tốt khi được phóng to. Các trang web đáp ứng hoạt động tốt, nhưng các trang web không phản hồi sẽ hiển thị cuộn ngang hoặc một số loại màn hình của bạn quá nhỏ.

Ngoài ra còn có một sự khác biệt cơ bản giữa thu phóng và tỷ lệ văn bản cho một nhà phát triển. Mặc dù emcó nghĩa là điều chỉnh điều đó theo sở thích kích thước văn bản của người dùng, nhưng thu phóng là về việc thu nhỏ toàn bộ trang lên hoặc xuống, không chỉ văn bản.

Lấy một ví dụ về menu trang web (ở đầu trang, với các liên kết được định vị trong một dòng). Với thu phóng, bạn biết rằng chiều cao của menu sẽ thay đổi tỷ lệ với các yếu tố khác. Với tùy chọn kích thước văn bản, tùy thuộc vào bạn để xác định hành vi. Bạn có thể cho rằng một người khiếm thị sẽ có thể nhìn thấy 50pxmenu của bạn trong mọi trường hợp: không ai sẽ bỏ lỡ menu đen trên nền trắng. Hoặc bạn có thể quyết định rằng chiều cao của nó sẽ tỷ lệ thuận với văn bản, ví dụ 1.5em.


13

điểm của EMS là xác định tất cả các phép đo trong trang web của bạn, theo kích thước phông chữ cơ sở

Đây có thể là một sự hiểu lầm về các thuật ngữ của tôi, nhưng để làm rõ: emcó liên quan đến kích thước phông chữ của "phần tử hiện tại". remlà tương đối với kích thước phông chữ gốc.

Tôi nhận ra rằng, EMS sẽ rất quan trọng trong thời của các trình duyệt cũ hơn, trong đó việc phóng to trang sẽ chỉ mở rộng phông chữ.

Đó không phải là lý do tại sao tôi sử dụng em. Trong thực tế, trải nghiệm phóng to của bạn là điều cuối cùng trong tâm trí của tôi khi tôi sử dụng các đơn vị đo lường tương đối. Mối quan tâm của tôi là hai lần.

Đầu tiên, tôi thường quan tâm đến việc chỉ cần xác định bố cục của mình theo nghĩa tương đối. Mối quan tâm của tôi là các thùng chứa của tôi trông tốt trong mối quan hệ với nhau và văn bản bên trong chúng. Và khi tôi thay đổi phông chữ hoặc chỉnh sửa mọi thứ trong chuỗi, tôi không muốn tính toán lại và cập nhật mọi thứ bằng tay để duy trì tỷ lệ tôi đang chụp. Hãy để trình duyệt làm toán ...

Thứ hai, tôi chỉ muốn thể hiện kích thước phông chữ bằng các thuật ngữ đơn giản mà tôi có thể hiểu. Nếu tôi thể hiện phông chữ cơ bản của mình bằng ptvà mọi thứ khác bằng remhoặc em, nó sẽ dễ dàng hơn cho tôi. Tôi không cần phải biết độ phân giải của thiết bị và bạn không phải phóng to. Trình duyệt của bạn biết có bao nhiêu pixel để sử dụng; không ai trong chúng ta phải nghĩ về nó

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.