Có ai nhận được email HTML làm việc với Twitter Bootstrap không?


92

Tôi đang sử dụng premailer-rails3gem có chức năng kéo các kiểu nội tuyến cho các email html và tôi đang cố gắng làm cho nó hoạt động với Twitter bootstrap.

https://github.com/fphilipe/premailer-rails3

Có vẻ như một số phong cách xuất hiện chính xác, nhưng không phải tất cả chúng. Tôi tự hỏi liệu có ai có một ví dụ làm việc hay về việc đưa css Twitter Bootstrap của họ (có sửa đổi hoặc không) vào một email html không.

Cảm ơn!


16
Rất khó để tạo kiểu cho khách hàng email. Với tất cả các CSS phức tạp từ bootstrap, tôi không nghĩ nó sẽ hoạt động. Tốt hơn hết bạn nên loại bỏ những gì có thể và sử dụng bảng và các kiểu nội tuyến để đạt được kiểu bạn muốn hoặc đóng lại.
Andres Ilich

Tôi có cùng một vấn đề. Tôi nghĩ những gì tôi sẽ làm cuối cùng là tạo email, chụp ảnh màn hình về cách CSS làm cho nó trông không có văn bản và sau đó trong HTML bằng cách sử dụng hình ảnh chụp màn hình cùng với văn bản. Đó là một giải pháp khó chịu, nhưng nó sẽ hoàn thành công việc.
gsingh2011

2
Tôi phải đồng ký tên ở trên. Email thực sự cụ thể, (trong trường hợp bạn không quen) Hãy thử tải xuống một vài mẫu email miễn phí và chỉnh sửa mã. Hãy thử các liên kết này freemailtemplates.com, www.campaignmonitor.com/css/ & www.sitepoint.com/code-html-email-newsletters/
frontideup

2
-1 để gửi bất kỳ thứ gì khác ngoài email văn bản thuần túy.
Cody Grey

2
Hoàn toàn đồng ý với bạn Brian. Tôi đã làm việc trên các email HTML trong vài ngày qua, và điều đó là không cần thiết và cực kỳ khó khăn. Tôi quan tâm đến việc bắt đầu một kiểu Bootstrap tương đương cho các email HTML; bạn có muốn giúp đỡ không?
NoizWaves

Câu trả lời:


83

Nếu ý của bạn là "Tôi có thể sử dụng cách trình bày theo phong cách của Bootstrap trong email không?" thì bạn có thể, mặc dù tôi chưa biết ai đã làm điều đó. Tuy nhiên, bạn sẽ cần phải mã hóa lại mọi thứ trong bảng.

Nếu bạn đang theo đuổi chức năng, nó phụ thuộc vào nơi email của bạn được xem. Nếu một tỷ lệ đáng kể người dùng của bạn đang sử dụng Outlook, Gmail, Yahoo hoặc Hotmail (và những ứng dụng này thường chiếm khoảng 75% ứng dụng email) thì rất nhiều khả năng của Bootstrap là không thể. Mac Mail, iOS Mail và Gmail trên Android có khả năng hiển thị CSS tốt hơn nhiều, vì vậy nếu bạn đang nhắm mục tiêu chủ yếu đến thiết bị di động thì điều đó không quá tệ.

  • JavaScript - hoàn toàn không có giới hạn. Nếu bạn cố gắng, có thể bạn sẽ đi thẳng đến địa ngục email (hay còn gọi là thư mục thư rác). Điều này có nghĩa là LESS cũng nằm ngoài giới hạn, mặc dù bạn rõ ràng có thể sử dụng các kiểu CSS kết quả nếu bạn muốn.
  • CSS nội tuyến an toàn hơn nhiều để sử dụng so với bất kỳ loại CSS nào khác (có thể nhúng, liên kết là không). Có thể truy vấn phương tiện, vì vậy bạn có thể có một số loại thiết kế đáp ứng. Tuy nhiên, có một danh sách dài các thuộc tính CSS không hoạt động - về cơ bản, mô hình hộp phần lớn không được hỗ trợ trong ứng dụng email. Bạn cần cấu trúc mọi thứ bằng các bảng.
  • font-face- bạn chỉ có thể sử dụng hình ảnh bên ngoài. Tất cả các tài nguyên bên ngoài khác (tệp CSS, phông chữ) đều bị loại trừ.
  • glyphs và sprites - do việc triển khai hình ảnh nền (VML) kỳ lạ của Outlook 2007, bạn không thể sử dụng lặp lại nền hoặc vị trí.
  • pseudo-selectors là không thể - ví dụ :hover, :activecác quốc gia không thể theo kiểu riêng

tải của câu trả lời trên SO, và rất nhiều các liên kết khác trên internet nói chung.


1
Liên kết đầu tiên đã chết.
Houman

45

Tôi xin lỗi vì đã khôi phục chuỗi cũ này, nhưng tôi chỉ muốn cho mọi người biết rằng có một Bootstrap rất gần giống như khung CSS được tạo riêng cho kiểu email, đây là liên kết: http://zurb.com/ink/

Hy vọng nó sẽ giúp một ai đó.

Ninja chỉnh sửa: Nó đã được đổi tên thành Foundation for Emailsvà liên kết mới là: https://foundation.zurb.com/emails.html


1
Tất cả các liên kết bị hỏng.
Houman

16

Dưới đây là một số điều bạn không thể làm với email:

  • Bao gồm một phần với các phong cách . Apple Mail.app hỗ trợ nó, nhưng Gmail và Hotmail thì không, vì vậy nó không phải là không. Hotmail sẽ hỗ trợ một phần kiểu trong nội dung nhưng Gmail vẫn không.
  • Liên kết đến một biểu định kiểu bên ngoài. Không có nhiều ứng dụng email hỗ trợ điều này, tốt nhất hãy quên nó đi.
  • Nền-hình ảnh / Vị trí-nền. Gmail cũng là thủ phạm trong vấn đề này.
  • Xóa phao của bạn . Gmail một lần nữa.
  • Tiền ký quỹ . Vâng, nghiêm túc, Hotmail bỏ qua lợi nhuận. Về cơ bản, mọi định vị CSS đều không hoạt động.
  • Phông chữ-mọi thứ . Rất có thể Eudora sẽ bỏ qua bất cứ điều gì bạn cố gắng khai báo bằng phông chữ.

Nguồn: http://css-tricks.com/using-css-in-html-emails-the-real-story/

Mailchimp có các mẫu email bạn có thể sử dụng - tại đây

Một số tài nguyên khác sẽ giúp bạn


1. Bạn có thể sắp xếp các kiểu sử dụng - bạn không nên đưa nó vào đầu, nhưng bạn có thể đưa nó vào phần thân. 2. Hình nền ổn - sử dụng thuộc tính html nền thay vì CSS. Outlook 2007/2010 yêu cầu giải pháp ('VML') của riêng họ. 3. Bạn hoàn toàn không thể sử dụng phao chứ đừng nói đến việc dọn sạch chúng. 4. Phông chữ-mọi thứ - Eudora là một khách hàng thiểu số. Rõ ràng, phụ thuộc vào khách hàng của bạn (xem phân tích), nhưng font-sizemang lại cho bạn sự linh hoạt hơn với chi phí rất thấp.
Dan Blows


2

Gần đây, tôi đã dành một khoảng thời gian để xem xét việc xây dựng các mẫu email html, giải pháp tốt nhất mà tôi tìm thấy là sử dụng http://htmlemailboilerplate.com/ này . Kể từ đó, tôi đã xây dựng 3 mẫu khá phức tạp và chúng đã hoạt động tốt trong các ứng dụng email khách khác nhau.


1

Xin chào Brian Armstrong, hãy truy cập liên kết này .

Blog này cho bạn biết cách tích hợp Rails với Bootstrap ít hơn (sử dụng premailer-rails).

Nếu bạn đang sử dụng bootstrap sass, bạn có thể làm tương tự:

bắt đầu bằng cách nhập một số tệp sass Bootstrap vào email.css.scss

@import "bootstrap-sprockets";
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/buttons";
@import "bootstrap/alerts";
@import 'bootstrap/normalize';
@import 'bootstrap/tables';
@import 'bootstrap/progress-bars';

và sau đó trong <head>phần xem của bạn, hãy thêm <%= stylesheet_link_tag "email" %>


0

Cách tiếp cận tốt nhất mà tôi đưa ra là sử dụng nhập Sass trên cơ sở đã chọn để kéo các kiểu bootstrap (hoặc bất kỳ kiểu nào khác) của bạn vào email nếu cần.

Đầu tiên, tạo một tệp cha mẹ scss mới giống như email.scsskiểu email của bạn. Điều này có thể trông như thế này:

    // Core variables and mixins
    @import "css/main/ezdia-variables";

    @import "css/bootstrap/mixins";
    @import "css/main/ezdia-mixins";

    // Import base classes
    @import "css/bootstrap/scaffolding";
    @import "css/bootstrap/type";
    @import "css/bootstrap/buttons";
    @import "css/bootstrap/alerts";

    // nest conflicting bootstrap styles
    .bootstrap-style {
        //use single quotes for nested imports
        @import 'css/bootstrap/normalize';
        @import 'css/bootstrap/tables';
    }

    @import "css/main/main";

    // Main email classes
    @import "css/email/zurb";
    @import "css/email/main";

Sau đó, trong các mẫu email của bạn, chỉ tham chiếu tệp email.css đã biên dịch của bạn, tệp này chỉ chứa các kiểu bootstrap đã chọn được tham chiếu và lồng ghép đúng cách trong email.scss của bạn.

Ví dụ: một số kiểu bootstrap nhất định sẽ xung đột với kiểu bảng đáp ứng của Zurb. Để khắc phục điều đó, bạn có thể lồng các kiểu của bootstrap trong một lớp cha hoặc bộ chọn khác để chỉ gọi các kiểu bảng của bootstrap khi cần thiết.

Bằng cách này, bạn có thể linh hoạt chỉ kéo các lớp học khi cần thiết. Bạn sẽ thấy rằng tôi sử dụng http://zurb.com/, đây là một thư viện email đáp ứng tuyệt vời để sử dụng. Xem thêmhttp://zurb.com/ink/

Cuối cùng, sử dụng một premailer như https://github.com/fphilipe/premailer-rails3đã đề cập ở trên để xử lý kiểu thành css nội tuyến, biên dịch các kiểu nội tuyến thành chỉ những gì được sử dụng trong mẫu email cụ thể đó. Ví dụ: đối với premailer, tệp ruby ​​của bạn có thể trông giống như thế này để biên dịch email thành kiểu nội tuyến.

    require 'rubygems' # optional for Ruby 1.9 or above.
    require 'premailer'

    premailer = Premailer.new('http://www.yourdomain.com/TestSnap/view/emailTemplates/DeliveryReport.jsp', :warn_level => Premailer::Warnings::SAFE)

    # Write the HTML output
    File.open("delivery_report.html", "w") do |fout|
      fout.puts premailer.to_inline_css
    end

    # Write the plain-text output
    File.open("output.txt", "w") do |fout|
      fout.puts premailer.to_plain_text
    end

    # Output any CSS warnings
    premailer.warnings.each do |w|
      puts "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
    end

Hi vọng điêu nay co ich! Bạn đang đấu tranh để tìm ra một khuôn khổ tạo mẫu email linh hoạt trên Pardot, Salesforce cũng như các email hàng ngày và tự động trả lời tích hợp trong sản phẩm của chúng tôi.


0

Mẹo ở đây là bạn không muốn bao gồm toàn bộ bootstrap. Vấn đề là các ứng dụng email sẽ bỏ qua các truy vấn phương tiện và xử lý tất cả các kiểu in có rất nhiều câu lệnh quan trọng.

Thay vào đó, bạn chỉ cần bao gồm các phần cụ thể của bootstrap mà bạn cần. Tệp email.css.scss của tôi trông giống như sau:

@import "bootstrap-sprockets";
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/buttons";
@import "bootstrap/alerts";

@import 'bootstrap/normalize';
@import 'bootstrap/tables';

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.