Nút bị mất, chữ vỡ bố cục? Vì sao email hiển thị sai và cách khắc phục nhanh
Bạn thiết kế email trong công cụ dựng template, xem preview thấy đẹp: nút CTA nổi bật, hình ảnh sắc nét, typography chuẩn. Thế nhưng khi người nhận mở trên Gmail, Outlook, hoặc app Mail trên iPhone thì mọi thứ “đổi tính”: nút bấm biến mất, chữ chạy lệch, ảnh không hiện, khoảng cách bị co giãn kỳ lạ, màu sắc đảo ngược do dark mode.
Đây không phải bạn “thiết kế dở”, mà là đặc thù của thế giới email: mỗi email client có một bộ quy tắc render khác nhau. Email không giống web. Bạn không thể kỳ vọng CSS hiện đại, script, hay layout linh hoạt sẽ được hỗ trợ đồng đều. Bài viết này sẽ đi thẳng vào các nguyên nhân thường gặp nhất khiến email bị thiếu nút/định dạng, kèm checklist thực dụng để sửa.
1) Email không phải trình duyệt web: vì sao “cùng một HTML” lại hiển thị khác nhau?
Nếu web là “đường cao tốc” của HTML/CSS hiện đại, thì email là “đường làng” với vô số luật lệ riêng. Nhiều ứng dụng email ưu tiên bảo mật và khả năng tương thích, nên họ:
- Chặn hoặc cắt bớt CSS (đặc biệt là CSS trong <style> hoặc CSS nâng cao).
- Không hỗ trợ flexbox/grid, position, background-image, pseudo-element… tùy client.
- Chặn hình ảnh theo mặc định hoặc yêu cầu người dùng “Load images”.
- Loại bỏ JavaScript gần như tuyệt đối.
- Can thiệp dark mode để đổi màu nền/chữ, làm vỡ tương phản hoặc biến nút thành “tàng hình”.
Kết quả là: cùng một template, mở ở các nơi khác nhau sẽ cho ra các “phiên bản” khác nhau. Để email ổn định, bạn cần thiết kế theo tư duy “email-safe”, tối ưu cho các client khó tính.
2) Nguyên nhân phổ biến #1: Nút CTA “mất tích” vì dùng button/CSS không được hỗ trợ
Nút bấm trong email thường bị lỗi khi bạn dùng <button>, hoặc dùng thẻ <a> nhưng tạo nút bằng CSS hiện đại. Một số client (đặc biệt là Outlook desktop) xử lý HTML/CSS theo cách riêng, dễ làm nút biến mất hoặc không còn click được.
Dấu hiệu nhận biết
- Trong preview của builder thì có nút, nhưng mở ở Outlook thì nút không còn.
- Nút vẫn thấy nhưng không click được, hoặc vùng click bị lệch.
- Nút mất nền màu, chỉ còn chữ (như một link bình thường).
Cách khắc phục thực dụng
- Dùng “bulletproof button”: tạo nút bằng bảng (table) + thẻ <a> có padding/ background-color inline. Email client thường hỗ trợ table tốt hơn mọi layout hiện đại.
- Tránh phụ thuộc vào border-radius quá mức; nếu có, hãy chấp nhận một số client sẽ hiển thị vuông.
- Đảm bảo nút là một link thật sự (URL đầy đủ, có https://), tránh onclick hoặc script.
Tư duy ở đây là: nút trong email không phải “component web”, mà là một khối layout cổ điển, ưu tiên click chắc chắn.
3) Nguyên nhân phổ biến #2: CSS bị chặn hoặc bị “strip” khi đi qua hệ thống gửi
Nhiều người thiết kế email dùng CSS trong <style> hoặc dùng class rồi hy vọng client hiểu. Nhưng một số hệ thống gửi email hoặc client sẽ loại bỏ phần CSS đó, khiến layout vỡ.
Vì sao CSS bị loại bỏ?
- Client chặn CSS để giảm rủi ro bảo mật hoặc tránh CSS “lạ” gây lỗi hiển thị.
- Một số trình gửi “sanitize” HTML, làm mất class/ID hoặc xóa một số thuộc tính.
- Forward email qua nhiều lớp có thể làm markup bị biến dạng.
Cách khắc phục
- Inline CSS: đưa style trực tiếp vào từng thẻ (style="..."). Đây là cách “sống lâu” nhất trong email.
- Hạn chế CSS nâng cao: flex, grid, position fixed, animation… nếu target nhiều client.
- Giữ cấu trúc đơn giản: table-based layout vẫn là “chuẩn vàng” cho email marketing.
- Tránh reset CSS quá mạnh, vì có thể khiến spacing và font bị lạ trên từng client.
4) Nguyên nhân phổ biến #3: Ảnh không hiển thị làm email trông “trống trơn”, tưởng như mất nút
Rất nhiều người nhận email để chế độ không tự tải ảnh. Khi ảnh bị chặn: banner không hiện, icon không hiện, thậm chí nút CTA nếu bạn làm bằng ảnh cũng biến mất luôn.
Dấu hiệu
- Email trông như “không có gì”, chỉ còn vài dòng chữ.
- Nút CTA biến mất vì thực tế nút là một ảnh PNG/JPG.
- Khoảng trống lớn, bố cục bị lệch vì ảnh không tải nhưng vẫn giữ chiều cao.
Cách khắc phục
- Không làm nút bằng ảnh. Nút nên là text + background màu, để dù ảnh bị chặn vẫn click được.
- Thêm alt text có ý nghĩa cho ảnh. Khi ảnh bị chặn, người dùng vẫn hiểu nội dung và có thể bật tải ảnh.
- Host ảnh ổn định qua HTTPS, tránh domain lạ dễ bị chặn. Ảnh quá nặng cũng làm tải chậm, gây “trắng” lâu.
- Đặt kích thước width/height hợp lý để hạn chế layout nhảy khi ảnh tải xong.
Mẹo nhỏ: hãy đảm bảo email vẫn “đọc được” và vẫn có CTA ngay cả khi toàn bộ ảnh không hiển thị.
5) Nguyên nhân phổ biến #4: Dark mode làm đảo màu, nút thành “tàng hình”
Dark mode là “kẻ phá layout” âm thầm. Nhiều client tự động đổi nền trắng thành nền tối, đổi chữ tối thành chữ sáng. Nhưng họ không luôn hiểu ý bạn, nên có thể xảy ra cảnh: nền nút đổi màu, chữ nút đổi màu, tương phản biến mất, nhìn như nút bị mất.
Dấu hiệu
- Nút màu đậm trên nền đậm, chữ không còn thấy rõ.
- Icon/logo nền trong suốt bị “đổi màu” khiến xấu hoặc khó nhìn.
- Divider/line nhạt quá, biến mất trong dark mode.
Cách giảm thiểu
- Dùng màu nút có độ tương phản mạnh và test trên dark mode.
- Tránh text màu “xám nhạt” trên nền trắng vì dark mode có thể đảo khiến chữ mờ.
- Logo nên có phiên bản phù hợp nền tối (hoặc dùng viền/đệm nền trắng mỏng quanh logo).
- Không quá phụ thuộc vào background-image làm nền nút/section.
Bạn không thể kiểm soát dark mode 100% trên mọi client, nhưng có thể thiết kế “chịu đòn” bằng tương phản và cấu trúc đơn giản.
6) Nguyên nhân phổ biến #5: Font chữ bị đổi, chữ tràn dòng, spacing sai
Email client không đảm bảo font bạn chọn sẽ tồn tại trên máy người dùng. Nếu bạn dùng font tùy chỉnh, nhiều client sẽ thay bằng font mặc định, làm độ rộng chữ khác đi, dẫn tới tràn dòng và vỡ bố cục.
Dấu hiệu
- Tiêu đề bị xuống dòng bất thường trên iPhone.
- Chữ tràn khỏi nút hoặc tràn khỏi khung.
- Khoảng cách dòng nhìn khác nhau giữa Gmail và Outlook.
Cách khắc phục
- Dùng font stack an toàn (system fonts) thay vì chỉ định 1 font duy nhất.
- Không “khóa cứng” chiều cao khối chữ; ưu tiên padding và line-height hợp lý.
- Hạn chế dùng chữ in hoa toàn bộ với letter-spacing lớn, vì dễ bị client xử lý khác nhau.
- Test trên màn hình nhỏ: nếu title dài, hãy chấp nhận xuống dòng đẹp thay vì ép một dòng.
7) Nguyên nhân phổ biến #6: Outlook desktop là “thế lực riêng”
Outlook desktop (đặc biệt bản Windows) nổi tiếng khó chiều vì engine render không giống web. Nhiều thuộc tính CSS hoạt động bình thường trên Gmail lại lỗi ở Outlook: padding, margin, background, và cả nút.
Nếu audience của bạn có tỷ lệ người dùng Outlook cao (B2B, công ty), hãy ưu tiên thiết kế theo “Outlook-first”. Điều đó thường đồng nghĩa: table layout, inline CSS, tránh các kỹ thuật hiện đại.
Checklist tối ưu cho Outlook
- Layout dựa trên bảng: chia cột bằng <table> thay vì flex.
- Hạn chế margin; dùng padding trong table cell.
- CTA dùng bulletproof button.
- Tránh background-image cho section quan trọng; nếu dùng, cần có fallback nền màu.
8) Nguyên nhân phổ biến #7: Link tracking, redirect và cơ chế bảo mật làm nút “hỏng”
Nhiều nền tảng email marketing sẽ bọc link bằng tracking (redirect) để đo click. Một số client hoặc hệ thống bảo mật của doanh nghiệp có thể chặn hoặc viết lại link, khiến: nút click không đi đâu, hoặc người dùng bị đưa qua trang cảnh báo.
Dấu hiệu
- Nút vẫn hiển thị nhưng click không mở được trên một số mạng công ty.
- Link chuyển qua nhiều bước, chậm, hoặc bị cảnh báo “unsafe”.
- Outlook/Defender rewrite link làm URL dài bất thường.
Cách khắc phục
- Dùng domain tracking uy tín, cấu hình DNS chuẩn (SPF/DKIM/DMARC) để giảm nghi ngờ.
- Tránh các URL quá “đáng ngờ”: nhiều tham số lạ, ký tự đặc biệt dày đặc.
- Luôn dùng HTTPS, tránh chuyển hướng vòng vo không cần thiết.
- Nếu có thể, thêm một link text phụ bên dưới nút (fallback) để người dùng vẫn có đường đi.
9) Nguyên nhân phổ biến #8: Sai cấu trúc HTML, thiếu closing tag, hoặc nesting không hợp lệ
Trình duyệt web có khả năng “đoán” và tự sửa HTML lỗi. Email client thì không. Chỉ cần thiếu một thẻ đóng, hoặc lồng sai, layout có thể bung toàn bộ, nhất là khi dùng nhiều cột.
Dấu hiệu
- Email bị dồn về một cột, hoặc các block nhảy vị trí kỳ lạ.
- Nút/ảnh chạy lên đầu hoặc xuống cuối.
- Khoảng cách giữa các phần tự dưng biến mất.
Cách khắc phục
- Giữ HTML gọn, tránh lồng quá sâu.
- Không trộn quá nhiều kỹ thuật layout cùng lúc.
- Validate HTML trước khi gửi; đặc biệt chú ý các thẻ <table>, <tr>, <td> phải đúng thứ tự.
- Tránh copy/paste từ editor giàu định dạng vì dễ sinh markup rác.
10) Checklist “cứu nhanh” trước khi bấm Send
Nếu bạn đang cần sửa gấp vì email sắp gửi, hãy đi theo checklist này theo thứ tự ưu tiên. Nó giúp bạn xử lý hầu hết các lỗi mất nút và vỡ định dạng trong thực tế.
- CTA: nút phải là <a> + background-color inline, đặt trong table cell, có padding rõ ràng.
- CSS: inline càng nhiều càng tốt; hạn chế flex/grid; tránh position/animation.
- Ảnh: không dùng ảnh làm nút; thêm alt text; host ảnh HTTPS; tối ưu dung lượng.
- Typography: dùng font stack an toàn; line-height hợp lý; không khóa cứng height cho khối chữ.
- Dark mode: test tối/sáng; đảm bảo tương phản nút và chữ; logo có giải pháp cho nền tối.
- Link: kiểm tra tracking; tránh redirect phức tạp; thêm link dự phòng dạng text.
- HTML: rà soát thẻ đóng/mở; table nesting đúng; tránh markup thừa.
- Test đa thiết bị: ít nhất Gmail web, Gmail app, iPhone Mail và Outlook (nếu audience có).
11) Cách thiết kế email để “đỡ đau” về lâu dài
Nếu bạn làm email thường xuyên, đừng chỉ chữa cháy từng chiến dịch. Hãy xây một hệ thống template email ổn định. Một template tốt sẽ:
- Ưu tiên cấu trúc đơn giản, có thể mở rộng mà không phá layout.
- Có sẵn các block chuẩn: header, hero, content, CTA, footer.
- Có CTA dạng bulletproof, link dự phòng, và phiên bản hiển thị tốt khi ảnh bị chặn.
- Được test định kỳ trên các client chính trước khi dùng lại.
Khi đã có “xương sống” tốt, mỗi lần thay nội dung bạn sẽ ít gặp cảnh nút biến mất hoặc định dạng vỡ. Email marketing hiệu quả không chỉ ở nội dung hay, mà còn ở việc người nhận nhìn thấy đúng những gì bạn muốn họ thấy.
12) Kết luận
Email bị mất nút hoặc vỡ định dạng thường đến từ ba nhóm nguyên nhân: hạn chế của email client, CSS/HTML không “email-safe”, và yếu tố bên ngoài như chặn ảnh, tracking, dark mode. Tin tốt là bạn không cần biến email thành web để đẹp. Chỉ cần đi theo nguyên tắc: đơn giản, chắc chắn, có fallback.
Nếu bạn muốn chiến dịch email ổn định hơn, hãy bắt đầu từ CTA bulletproof, inline CSS, và kiểm tra trong vài client phổ biến. Những điều này nghe có vẻ “cũ”, nhưng lại là con đường nhanh nhất để email hiển thị đúng, click được, và mang về chuyển đổi.