Mẹo nhỏ: Fix lỗi Safari iOS tự động zoom khi nhập liệu form

03 tháng 10
Tips
Mục lục

Nếu anh em khó tính mà để ý thì sẽ gặp tình huống: trên iPhone/iPad, khi người dùng chạm vào ô nhập liệu (input, textarea, select) có font-size < 16px, Safari sẽ tự động phóng to (zoom in).

👉 Điều này gây khó chịu vì layout bị vỡ, người dùng phải zoom out lại để xem trang.

Thường thì trên blogspot chúng ta hay thấy nó bị ở khung tìm kiếm tùy vào 1 số template. Anh em có thể xem ảnh minh họa dưới đây:

Fix lỗi Safari iOS tự động zoom khi nhập liệu form
Fix lỗi Safari iOS tự động zoom khi nhập liệu form

Giải pháp: Ép font-size ≥ 16px chỉ cho iOS Safari

Không cần tăng font-size trên toàn bộ web, chúng ta có thể target riêng Safari iOS nhờ @supports (-webkit-touch-callout: none).

Code CSS đầy đủ:

/* Chỉ target Safari iOS */ @supports (-webkit-touch-callout: none) { input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="password"], input[type="number"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="datetime-local"], textarea, select { font-size: 16px !important; } }

📌 Giải thích:

  • @supports (-webkit-touch-callout: none) → chỉ Safari trên iOS nhận.
  • Liệt kê đầy đủ các loại input thường gặp + textarea, select.
  • Ép font-size: 16px để tránh bị zoom.

Android và Desktop thì sao?

  • Android (Chrome, Firefox, Samsung Internet...): không bị ảnh hưởng, font nhỏ vẫn nhập bình thường.
  • Desktop browsers: cũng không bị tác động vì đoạn CSS này chỉ áp dụng cho Safari iOS.

Kết luận

Chỉ cần thêm vài dòng CSS là anh em có thể fix được lỗi Safari iOS tự zoom input mà không phá vỡ thiết kế trên Android hay desktop. Đây là mẹo nhỏ nhưng cực kỳ hữu ích khi làm web responsive.

Chia sẻ:
Đã sao chép link!
0.0/5
0 ratings
Đánh giá của bạn:
Thank you for your rating!

Bài viết liên quan

Nhận xét (6)

HƯỚNG DẪN BÌNH LUẬN

Chèn link

Sử dụng công cụ Tạo link

Chèn hình ảnh

LINK_ANH - sử dụng công cụ upload ảnh. Và chỉ cần lấy link ảnh chèn vào bình luận là ảnh tự động hiển thị.

Định dạng chữ

<b>Chữ in đậm</b>
<i>Chữ in nghiêng</i>
<u>Chữ gạch chân</u>
<strike>Chữ gạch ngang</strike>

Chèn một đoạn Code

Đầu tiên sử dụng công cụ này để mã hóa đoạn code muốn chèn.
Sau đó dùng thẻ [code] CODE_ĐÃ_MÃ_HÓA [/code]

Khác

👉 Nhập Email bạn hay dùng để nhận thông báo khi mình trả lời bình luận của bạn.
👉 Vui lòng không nhập bất kỳ Liên kết Spam nào trong hộp nhận xét.
👉 Tích vào ô "Thông báo cho tôi" để nhận thông báo nội dung phản hồi của bình luận.
Chèn emoji: Nhấn tổ hợp phím “Windows + . (dấu chấm)”

Đã hiểu ✅
Hiển thị
  1. Hay đấy, mình cũng vừa áp dụng, iOS nó có "luật ngầm" input mà size dưới 16px thì bị zoom ra. Trước dùng thẻ meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" thì nó cảnh báo không thân thiện vì hạn chế truy cập của người thị lực kém 😁👍

    Trả lờiXóa
    Trả lời
    1. đúng rồi, meta content="width=device-width... này google ko thích nên mới chơi giải pháp đó á

      Xóa
  2. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  3. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  4. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa

Đăng nhận xét