트위터 부트 스트랩으로 작업하는 HTML 이메일을받은 사람이 있습니까?


92

premailer-rails3html 이메일을 위해 스타일을 인라인으로 가져 오는 gem을 사용 하고 있으며 Twitter 부트 스트랩과 함께 작동하도록 노력하고 있습니다.

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

일부 스타일이 올바르게 입력 된 것 같지만 모두가 아닙니다. 나는 누군가가 자신의 Twitter Bootstrap CSS (수정 여부)를 html 이메일로 가져 오는 멋진 작업 예를 가지고 있는지 궁금합니다.

감사!


16
이메일 클라이언트는 스타일링하기가 매우 어렵습니다. 부트 스트랩의 모든 복잡한 CSS를 사용하면 작동하지 않을 것이라고 생각합니다. 할 수있는 것을 제거하고 표와 인라인 스타일을 사용하여 원하는 스타일을 얻거나 닫는 것이 좋습니다.
Andres Ilich 2012 년

나는 같은 문제가 있습니다. 결국 제가 할 일은 이메일을 만들고 CSS가 텍스트없이 어떻게 보이는지 스크린 샷을 찍은 다음 텍스트와 함께 스크린 샷 이미지를 사용하여 HTML로 만드는 것입니다. 끔찍한 솔루션이지만 작업을 완료해야합니다.
gsingh2011

2
위의 내용에 공동 서명해야합니다. 이메일은 정말 구체적입니다. (익숙하지 않은 경우) 무료 이메일 템플릿 몇 개를 다운로드하고 코드를 수정 해보세요. freemailtemplates.com, www.campaignmonitor.com/css/ & www.sitepoint.com/code-html-email-newsletters/ 링크를 사용해보십시오
frontsideup

2
-1은 일반 텍스트 이메일 이외의 것을 보내는 경우입니다.
Cody Gray

2
브라이언에게 전적으로 동의합니다. 지난 며칠 동안 HTML 이메일 작업을 해왔는데 불필요하고 극도로 고통 스럽습니다. HTML 이메일에 상응하는 부트 스트랩 스타일을 시작하는 데 관심이 있습니다. 도와 주시겠습니까?
NoizWaves

답변:


83

"이메일에서 Bootstrap의 스타일 표현을 사용할 수 있습니까?"를 의미하는 경우 아직 그 일을 한 사람은 아무도 모르지만 당신은 할 수 있습니다. 하지만 테이블의 모든 것을 다시 코딩해야합니다.

기능을 사용하는 경우 이메일을 보는 위치에 따라 다릅니다. 상당한 비율의 사용자가 Outlook, Gmail, Yahoo 또는 Hotmail (일반적으로 이메일 클라이언트의 약 75 %를 추가 함)을 사용하는 경우 Bootstrap의 장점을 많이 사용할 수 없습니다. Android의 Mac Mail, iOS Mail 및 Gmail은 CSS 렌더링에 훨씬 더 뛰어나므로 대부분 모바일 장치를 대상으로하는 경우 그렇게 나쁘지 않습니다.

  • JavaScript-완전히 제한이 없습니다. 시도하면 곧바로 이메일 지옥 (스팸 폴더라고도 함)으로 이동할 수 있습니다. 이는 원하는 경우 결과 CSS 스타일을 분명히 사용할 수 있지만 LESS도 범위를 벗어남을 의미합니다.
  • 인라인 CSS는 다른 유형의 CSS보다 사용하기에 훨씬 안전합니다 (임베디드 가능, 링크는 확실한 아니오). 미디어 쿼리가 가능하므로 일종의 반응 형 디자인을 가질 수 있습니다. 그러나 작동하지 않는 CSS 속성의 긴 목록이 있습니다. 기본적으로 상자 모델은 이메일 클라이언트에서 대부분 지원되지 않습니다. 모든 것을 테이블로 구성해야합니다.
  • font-face-외부 이미지 만 사용할 수 있습니다. 다른 모든 외부 리소스 (CSS 파일, 글꼴)는 제외됩니다.
  • 글리프 및 스프라이트-Outlook 2007의 이상한 배경 이미지 (VML) 구현으로 인해 배경 반복 또는 위치를 사용할 수 없습니다.
  • 의사 선택기가 불가능합니다 - 예를 들어 :hover, :active상태는 개별적으로 스타일 수 없습니다

있는 부하 대답 SO, 큰에서 인터넷에 다른 링크가 많이.


1
첫 번째 링크가 끊어졌습니다.
Houman

45

이 오래된 스레드를 복구 한 것에 대해 사과드립니다. 이메일 스타일링을 위해 특별히 만들어진 CSS 프레임 워크와 같은 매우 가까운 부트 스트랩이 있다는 것을 모두에게 알리고 싶었습니다. 링크는 다음과 같습니다. http://zurb.com/ink/

누군가에게 도움이되기를 바랍니다.

닌자 편집 : 이후로 이름이 변경되었으며 Foundation for Emails새 링크는 다음과 같습니다. https://foundation.zurb.com/emails.html


1
모든 링크가 끊어졌습니다.
Houman

16

다음은 이메일로 할 수없는 몇 가지 작업입니다.

  • 스타일이있는 섹션 포함 . Apple Mail.app에서 지원하지만 Gmail과 Hotmail은 지원하지 않으므로 아니요. Hotmail은 본문의 스타일 섹션을 지원하지만 Gmail은 여전히 ​​지원하지 않습니다.
  • 외부 스타일 시트에 연결합니다.이를 지원하는 이메일 클라이언트는 많지 않으며 잊어 버리는 것이 가장 좋습니다.
  • 배경 이미지 / 배경 위치.Gmail도이 문제의 범인입니다.
  • 수레를 치우십시오 . 다시 Gmail.
  • 여백 . 네, 진지하게 Hotmail은 여백을 무시합니다. 기본적으로 CSS 포지셔닝은 전혀 작동하지 않습니다.
  • Font-anything . Eudora는 글꼴로 선언하려는 모든 것을 무시할 가능성이 있습니다.

출처 : http://css-tricks.com/using-css-in-html-emails-the-real-story/

Mailchimp에는 사용할 수있는 이메일 템플릿이 있습니다- 여기

도움이 될 몇 가지 추가 리소스


1. 당신은 스타일을 사용할 수 있습니다-당신은 그것을 머리에 넣어서는 안되지만, 그것을 본문에 포함시킬 수 있습니다. 2. 배경은 괜찮습니다-CSS 대신 background html 속성을 사용하십시오. Outlook 2007/2010에는 자체 ( 'VML') 솔루션이 필요합니다. 3. 플로트를 지우는 것은 고사하고 전혀 사용할 수 없습니다. 4. Font-anything-Eudora는 소수 클라이언트입니다. 분명히 클라이언트에 따라 다르지만 (분석 참조) font-size적은 비용으로 더 큰 유연성을 제공합니다.
Dan Blows


2

최근에 html 이메일 템플릿을 작성하는 데 시간을 보냈는데 가장 좋은 해결책은 http://htmlemailboilerplate.com/ 을 사용하는 것이 었습니다 . 나는 그 이후로 3 개의 매우 복잡한 템플릿을 구축했으며 다양한 이메일 클라이언트에서 잘 작동했습니다.


1

안녕하세요 Brian Armstrong 님, 이 링크를 방문하십시오 .

이 블로그는 RailsBootstrap 과 통합하는 방법을 알려줍니다. less (premailer-rails 사용) .

부트 스트랩 sass를 사용하는 경우 동일한 작업을 수행 할 수 있습니다.

일부 Bootstrap sass 파일을 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';

그런 다음보기 <head>섹션에서 <%= stylesheet_link_tag "email" %>


0

내가 생각 해낸 가장 좋은 방법은 필요한 경우 부트 스트랩 (또는 기타) 스타일을 이메일로 가져 오기 위해 선택한 기준으로 Sass 가져 오기를 사용하는 것입니다.

먼저 email.scss이메일 스타일 과 같은 새로운 scss 상위 파일을 만듭니다 . 다음과 같이 보일 수 있습니다.

    // 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";

그런 다음 이메일 템플릿에서 컴파일 된 email.css 파일 만 참조합니다. 여기에는 email.scss에서 올바르게 참조되고 중첩 된 선택된 부트 스트랩 스타일 만 포함됩니다.

예를 들어 특정 부트 스트랩 스타일은 Zurb의 반응 형 테이블 스타일과 충돌합니다. 이를 수정하려면 필요한 경우에만 부트 스트랩의 테이블 스타일을 호출하기 위해 부트 스트랩의 스타일을 상위 클래스 또는 다른 선택기에 중첩 할 수 있습니다.

이렇게하면 필요할 때만 클래스를 가져올 수있는 유연성이 있습니다. 사용할 http://zurb.com/수있는 훌륭한 반응 형 이메일 라이브러리를 사용하는 것을 볼 수 있습니다. 또한보십시오http://zurb.com/ink/

마지막으로, https://github.com/fphilipe/premailer-rails3위에서 언급 한 것과 같은 프리 메일러를 사용 하여 스타일을 인라인 CSS로 처리하고 인라인 스타일을 특정 이메일 템플릿에서 사용되는 것만으로 컴파일합니다. 예를 들어, 프리 메일러의 경우 루비 파일은 이메일을 인라인 스타일로 컴파일하기 위해 다음과 같이 보일 수 있습니다.

    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

도움이 되었기를 바랍니다! Pardot, Salesforce 및 당사 제품에 내장 된 자동 응답 및 일일 이메일 전반에 걸쳐 유연한 이메일 템플릿 프레임 워크를 찾는 데 어려움을 겪었습니다.


0

여기서 트릭은 전체 부트 스트랩을 포함하지 않으려는 것입니다. 문제는 이메일 클라이언트가 미디어 쿼리를 무시하고! important 문장이 많은 모든 인쇄 스타일을 처리한다는 것입니다.

대신 필요한 부트 스트랩의 특정 부분 만 포함하면됩니다. 내 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';

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.