我的ITSM應用程序可以使用模板發送HTML電子郵件,但它使用[keyword1]這樣的關鍵字進行簡單替換,我想濫用其中的(非空)存在來動態顯示或隱藏某些數據。使用CSS隱藏HTML電子郵件模板中的替換值
例如模板可能是:
<body>
<span>some label: [keyword1]</span>
</body>
由於大多數電子郵件客戶端將不能運行任何客戶端腳本和我ITSM替代引擎非常有限不過,我覺得我可以用CSS選擇器與隱藏跨度,如果它有一些(任何)類,並且該類將被設置爲實際替換值。
我想出了CSS:
span {visibility: visible; display: block; }
span[class|=''] {visibility: hidden; display: none; }
然後在HTML模板體:
<table cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td width="200" valign="top"><span class="[something]">[something]</span></td>
<td width="200" valign="top"><span class="">empty class value</span></td>
<td width="200" valign="top"><span>span without class</span></td>
</tr>
</table>
這樣的想法是,如果更換令牌值存在,它會因此被指定爲類跨度保持可見,但如果它不是類名將是空的,因此隱藏跨度。沒有任何課程的跨度也是可見的。 這在測試概念時正常運行,並且隱藏「空白類值」跨度,但在實際的電子郵件客戶端Outlook 2010中不起作用。
除了創建正確模板時這種方法很麻煩這一事實,因爲任何跨度任何類都將隱藏任何人都可以提出如何實現這一目標?
編輯:我已經改變了主題,以更好地反映問題
不幸的是,你必須內聯你所有的樣式 - 這就是如果Outlook支持你正在使用的CSS規則。這是因爲自2007年以來,Outlook使用Word作爲其渲染引擎,而不像以前那樣使用IE。 –