我有一個查詢,gmail忽略了「display:none」 - 該怎麼辦?在電子郵件HTML隱藏arow或divGMail忽略「display:none」
回答
如果style =「display:none」在gmail中不起作用,請將style =「display:none!important;」 它在gmail中有效。
只是我的看法:佩卡的答案更有意義。如果你隱藏了這個元素,那就把它們全部清除掉。 – Jasper 2012-10-31 23:07:38
@Jasper您可能正在使用不同的媒體查詢。即使Gmail不支持,其他郵件應用程序也可以這樣做,例如iOS本機應用程序。 – 2013-05-24 22:33:23
這不是一個好的答案。 Gmail不尊重展示:無。這種方法的唯一方法是,如果將聲明顯示:none!重要地嵌入元素中。但是,如果你這樣做,你將無法覆蓋它。 – davidcondrey 2014-01-07 08:32:16
完全從您的源代碼中刪除元素。
電子郵件客戶端對一些CSS規則非常嚴格。另外,看到電子郵件裏面沒有JavaScript可以執行,display: none
無論如何都沒有功能,是嗎?
已經有人說display:none !important;
的作品,但是沒有人說過這個用例,所以當我在SO上發現這個問題和解決方案時,我會給出一個。
我正在用plain/text和html創建一個多部分的電子郵件。在源代碼中,html是從模板文件生成的,而純文本是通過從完整電子郵件中剝離標籤創建的。
若要在純文本中包含未在html中顯示的其他文本,最簡單的方法是將其包裝在<div style="display:none !important>
中,當生成純文本時將剝離該文本。舉例來說,如果這是你的模板:
<p>This is part of an html message template.</p>
<div style="display:none !important">=================================</div>
<div style="border-top:3px solid black;margin-top:1em;">
<p>This is some footer text below a black line</p>
</div>
的HTML將呈現爲預期(沒有一堆='S)和純文本的所有div的剝離將是:
This is part of an html message template.
=========================================
This is some footer text below a black line.
甚至更簡單:如果接收者在其客戶端沒有html支持並且看到一堆不可讀的html。 – user1111929 2012-08-04 16:17:41
使用display:none !important;
解決了Gmail的問題,但Outlook 2007和2010忽略了這個問題。使用display:none; display:none !important;
瞭解了這一點。這樣gmail使用一個版本,Outlook 2007和2010使用另一個版本。
你可以使用'mso-hide:all;'爲Outlook 2007-13 – 2016-04-14 21:21:36
對於那些到達與此類似的問題與Gmail和移動/桌面電子郵件開發有關的問題 - 如果您使用媒體查詢和顯示/隱藏內容,嵌入式CSS將無法覆蓋inline!重要聲明。相反,你可以使用溢出:隱藏,像這樣:
<div class="mobile" style="width:0; overflow:hidden;float:left; display:none"></div>
在嵌入式媒體查詢你自然就會取消這些樣式揭示DIV,然後隱藏內容的桌面版本。
@media only screen and (max-width: 480px) {
.mobile {
display : block !important;
width : auto !important;
overflow : visible !important;
float : none !important;
}
.desktop {
display : none !important;
}
}
不幸的是,height屬性在Gmail中無法正常工作,否則這將是一個更好的解決方案,因爲這造成可見的內容等於div的高度低於空白的部分。
注意上面應該是讀取顯示而不是顯示。我試圖編輯評論,但stackoverflow不會允許少於6個字符的編輯。 – greatwitenorth 2013-04-29 18:48:07
@luke謝謝! 對於任何正在閱讀這篇文章的人,就像我剛纔那樣。如果你想擺脫那個醜陋的空白空間。只是做一個行高:1px;然後在媒體查詢中添加適當的行高。我發現它在TR而不是div或td上效果最好。 – Travis 2013-11-21 21:34:22
只是爲了說明一下,我們發現使用這種方法獲得移動版本的電子郵件並不理想,因爲將Outlook中的電子郵件轉發給其他人將顯示移動和桌面內容。現在我們嘗試使用表格元素(tr,td)上的display:block來創建電子郵件,以適應移動屏幕。 – Luke 2013-11-22 08:07:56
感謝您對我的幫助。
嘗試使用Gmail的最大高度,這個應該選擇它。然後使用max-height:inherit!important;在CSS這應該刪除的間距問題:
<div class="mobile" style="display:none; width:0px; max-height:0px; overflow:hidden;">
@media only screen and (max-width: 480px) {
.mobile {
display:block !important;
margin: 0;
padding:0;
overflow : visible !important;
width:auto !important;
max-height:inherit !important;
}
}
歡迎來到Stack Overflow!請不要添加「謝謝」作爲答案。投入一些時間在網站上,你將獲得足夠的[特權](http://stackoverflow.com/privileges)來滿足你喜歡的答案,這就是堆棧溢出方式表示感謝。 – 2012-12-05 11:40:12
謝謝!該解決方案對我來說效果最好。上面的那些留下了隱藏元素的空白空間。 – Kus 2013-03-26 04:43:50
雖然這已經回答了我想我要湊錢了一個解決方案,真正的情況下,任何人都爲我工作在未來有這個問題。這是上述答案和我在網上找到的其他內容的組合。
我遇到的問題是Gmail和Outlook。根據OP,我所擁有的移動內容不會隱藏在Gmail(資源管理器,Firefox和Chrome)或Outlook(2007,2010 & 2013)中。我通過使用下面的代碼解決了這個問題。
這裏是我的移動內容:
<!--[if !mso 9]><!-->
<tr>
<td style="padding-bottom:20px;" id="mobile">
<div id="gmail" style="display:none;width:0;overflow:hidden;float:left;max-height:0;">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<img src="imageurl" style="border:0;display:block;width:100%;max-height:391px;" />
</td>
</tr>
<tr>
<td style="border-left-style:solid;border-left-width:1px;border-left-color:#d5e1eb;border-right-style:solid;border-right-width:1px;border-right-color:#d5e1eb;background:#f7fafd;padding-top:15px;padding-bottom:15px;font-family:Arial,Helvetica,sans-serif;font-size:22px;color:#1c1651;padding-left:10px;padding-right:10px;text-align:left;" id="mobiletext" align="left">We're now on Twitter</td>
</tr>
<tr>
<td style="border-left-style:solid;border-left-width:1px;border-left-color:#d5e1eb;border-right-style:solid;border-right-width:1px;border-right-color:#d5e1eb;background:#f7fafd;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#585858;padding-left:10px;padding-right:10px;text-align:left;line-height:24px;" id="mobiletext"><a href="#" style="text-decoration:none;color:#0068ca;">Follow us now</a> for some more info.
</td>
</tr>
<tr>
<td>
<img src="imageurl" style="border:0;display:block;width:100%;max-height:37px;" />
</td>
</tr>
</table>
</div>
</td>
</tr>
<!--<![endif]-->
而這裏的CSS:
@media only screen and (min-width:300px) and (max-width: 500px) { /* MOBILE CODE */
*[id=mobile] {
width:300px!important;
height:auto!important;
display:block!important;
overflow:visible!important;
line-height:100%!important;
}
*[id=gmail] {
display:block!important;
width:auto!important;
overflow:visible!important;
float:none !important;
height:inherit!important;
max-height:inherit!important;
}
修復的Outlook
所以你可以從HTML代碼中看到,包裝全部這些標籤中的內容;
<!--[if !mso 9]><!--> <!--<![endif]-->
,
隱藏對於我提到的Outlook版本的內容。對於所有其他電子郵件客戶端,display:none;
工作得很好。我還看到,您也可以使用mso-hide:all
來隱藏Outlook的內容,但我認爲這比將內聯代碼放置起來要容易一些。
修復的Gmail
現在的Gmail,你可以看到,我創建了一個「特別」 id
稱爲gmail
我那麼<td>
內應用到一個div。我嘗試了其他方法使用其他方法,如overflow:hidden
內聯和所有其他組合的方式,但這是爲我工作。
因此,在短期,包裹在<div>
在<td>
內容,然後包含overflow:hidden,width:0
等然後通過這個DIV的id
,在我的情況gmail
覆蓋這些樣式解決了這個問題對我來說。
無論如何,也許有人會在未來發現這有幫助!
爲了隱藏HTML電子郵件中的元素並使其在Gmail中工作,您需要將其清零並調整CSS中的大小(Gmail將忽略)。
像這樣:
<style>
@media only screen and (max-width: 480px) {
*[class~=show_on_mobile] {
display : block !important;
width : auto !important;
max-height: inherit !important;
overflow : visible !important;
float : none !important;
}
</style>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<!--[if !mso]><!-->
<td style="width: 0; max-height: 0; overflow: hidden; float: left;">
</td>
</tr>
<!--<![endif]-->
</table>
此外,增加的條件註釋涵蓋了你的Outlook 07.
您的標記看起來很奇怪,MSO的標記是什麼樣的?當然,你不會重複它。 – crmpicco 2015-09-21 15:10:24
我的標準模板在這裏,如果你想查看它:https://github.com/dcondrey/html-email/blob/master/template/campaign.html它會呈現出可預見的跨越更多的客戶端比任何其他模板你會發現。 – davidcondrey 2015-09-21 17:11:10
您的電子郵件模板中是否有桌面/行的顯示/隱藏表格或行?我有一大堆類似'hide-for-desktop'和'hide-for-small'的類,這是Zurb Ink文檔的一部分。我沒有看到在標準模板中處理Outlook和GMail的這種設置的任何示例。一般來說,我發現我的模板可以在_either_ GMail或Outlook中使用,但不能同時使用這兩種模板。 – crmpicco 2015-09-22 08:43:17
如果您遇到的問題與Gmail的數目爲三個規定的修復工作對我來說也是如此。我使用了一種類似的方法,使用div標籤和覆蓋行,然後在頭文件標籤中定義一個CSS樣式,該標籤專用於gmail。任何時候,我想從Outlook桌面隱藏一些東西,我會做以下事情:if!mso。見下面的例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
So my code looks like this:
@media screen and (max-width : 480px) { div[id=gmail] {display:block!important;
width:100%!important;
overflow:visible!important;
float:none !important;
height:inherit!important;
max-height:inherit!important;}
}
</style>
<title></title>
</head>
<body>
<!--And the in the i have the following setting inline-->
<table>
<tr>
<td>
<div id="gmail" style=
"display:none;width:0;overflow:hidden;float:left;max-height:0;">
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#E9E9E8"
align="center"><![if !mso]>
<tr>
<td valign="top">
<table width="133" bgcolor="#FFFFFF" style=
"border: 1px solid #c6c6c5;" cellpadding="0" cellspacing="0">
<!--My content--></table>
</td>
</tr>
<![endif]></table>
</div>
</td>
<!--This worked for me in Android 4.2 /4.1 /apple iOS
desktop web based: gmail, yahoo, Aol, Outlook.com in IE/FF and Chrome
desktop: outlook 2010--></tr>
</table>
</body>
</html>
我有一種情況,我只是有幾句話。我用font-size:0px ;.
<div style="font-size:0px">foo bar</div>
它爲我工作。
建立在丹S.,我經常使用的另一個例子。
@media only screen and (max-width: 480px) and (min-device-width: 320px) and (max-device-width: 480px) {
p[class="hidden"] { /* I use this format to get past Yahoo Mail */
display: block !important;
visibility: visible !important;
max-height: none !important;
}
}
<td>
<p class="hidden" style="display:none;visibility:hidden;max-height:0px;">You can't see me.</p>
</td>
非常高興,我想與大家分享這個消息,Gmail現在支持「顯示:無」通過EmailMonks上測試CSS屬性。但是你需要在使用'display:none'的時候使用CSS來應用一個類,以便不被內嵌工具修改。
你可以閱讀更多here
- 1. Gmail忽略顯示:無
- 2. GMail似乎忽略回覆到
- 3. 當元素的屬性爲`display:none`時,忽略視圖驗證
- 4. IS忽略被忽略
- 5. bin - 忽略或不忽略
- 6. 忽略映射忽略
- 7. Automapper忽略屬性忽略
- 8. svn:忽略不忽略xcuserdata
- 9. SVN忽略被忽略
- 10. Gmail代理電子郵件中忽略的PHP參數
- 11. Gmail忽略了我的HTML電子郵件
- 12. gmail忽略來自php聯繫表格的電子郵件
- 13. 在GMail應用程序中忽略自定義MIME類型
- 14. Gmail忽略空的高度單元格(HTML電子郵件)
- 15. 忽略
- 16. 忽略
- 17. 忽略
- 18. 忽略
- 19. 忽略
- 20. G ++忽略忽略_Pragma診斷
- 21. vagrant忽略Vagrantfile安裝點忽略
- 22. 忽略未被忽略的文件
- 23. java webstart忽略System.getProperties()或Syste.setProperties()被忽略
- 24. 搖籃忽略守護忽略標誌
- 25. .babelrc忽略場似乎被忽略
- 26. 爲什麼'svn忽略'不能忽略?
- 27. mysqldump忽略表不會忽略視圖
- 28. svn:忽略排除文件被忽略
- 29. 忽略SVN忽略...可能嗎?
- 30. 忽略@RenderBody()
如果你想某些事情被隱藏在電子郵件中,最簡單的方法是不包括它們。 – 2010-10-25 10:32:09
什麼查詢?請解釋更多。 – leppie 2010-10-25 10:32:14
@leppie我認爲他的意思是支持請求 – 2010-10-25 11:04:49