2013-10-03 120 views
1

我想知道是否有人提出了針對瀏覽器上的Yahoo Mail CSS的黑客攻擊。 具體而言,不是內聯CSS,而是電子郵件中標籤內的雅虎創建的類。我正面臨的問題是:我爲一個活動編寫了一個響應模板,雖然所有東西在iOS和每個主要郵件客戶端都能正常工作,但雅虎有一個我在其他地方找不到的問題:它讀取標籤,因爲它會讀取常規標籤,完全跳過媒體查詢(實際上,它改變了所有被視爲樣式的代碼)。我的意思是這樣的:它會從底部到頂部讀取樣式,因此即使在大型設備(如計算機屏幕)上閱讀,也可以將較小的屏幕樣式應用於電子郵件。針對雅虎郵件瀏覽器CSS

這裏是什麼樣子的雅虎郵件處理後:

<style type="text/css"> 

_filtered #yiv6637726198 { 
text-align:left;} 
#yiv6637726198 .yiv6637726198row-center {display:table-row;text-align:center;vertical- align:middle !important;height:20px !important;} 
#yiv6637726198 

_filtered #yiv6637726198 { 
} 
#yiv6637726198 .yiv6637726198main {width:100%;} 
#yiv6637726198 .yiv6637726198header {width:100%;} 
#yiv6637726198 .yiv6637726198header-img {width:100%;height:auto;} 
#yiv6637726198 .yiv6637726198logo-img {width:75px;height:30px;} 
#yiv6637726198 .yiv6637726198icon-img {width:19px;height:18px;} 
#yiv6637726198 .yiv6637726198icon-wrap {width:19px;} 
#yiv6637726198 .yiv6637726198button {width:100%;height:auto;} 
#yiv6637726198 .yiv6637726198footer {display:none;} 
#yiv6637726198 .yiv6637726198footer-size {width:100%;} 
#yiv6637726198 .yiv6637726198btn {width:100px !important;height:auto !important;} 
#yiv6637726198 .yiv6637726198text {font-size:9px !important;text-align:center;} 
#yiv6637726198 .yiv6637726198smaller {width:5px !important;height:5px !important;} 
#yiv6637726198 .yiv6637726198show {display:block;} 
#yiv6637726198 .yiv6637726198title {font-size:12px !important;} 
#yiv6637726198 .yiv6637726198date {font-size:9px !important;line-height:14px !important;} 
#yiv6637726198 .yiv6637726198smaller {width:10px !important;} 
#yiv6637726198 .yiv6637726198small-hide {display:none;} 
#yiv6637726198 .yiv6637726198row {display:table-row;text-align:left;} 
#yiv6637726198 .yiv6637726198row-center {display:table-row;text-align:center;vertical- align:middle !important;height:20px !important;} 
#yiv6637726198 

</style> 

這裏是我的代碼,寫在我的HTML和其他支持響應電子郵件客戶端了解:

<style type="text/css"> 

@media (max-width:321px) { 
    .row { display:table-row !important; text-align:left !important; } 
    .row-center { display:table-row !important; text-align:center !important; vertical-align:middle !important; height:20px !important; } 
    } 

    @media (max-width:241px) { 
    .hide { display:none !important; } 
    .main { width:100% } 
    .header { width:100%; } 
    .header-img { width:100%; height:auto; } 
    .logo-img { width:75px; height:30px; } 
    .icon-img { width:19px; height:18px; } 
    .icon-wrap { width:19px; } 
    .button { width:100%; height:auto; } 
    .footer { display:none !important; } 
    .footer-size { width:100% } 
    .btn { width:100px !important; height:auto !important } 
    .text { font-size:9px !important; text-align:center !important; } 
    .smaller { width:5px !important; height:5px !important; } 
    .show { display:block; } 
    .title { font-size:12px !important; } 
    .date { font-size:9px !important; line-height:14px !important; } 
    .smaller { width:10px !important } 
    .small-hide { display:none !important; } 
    .row { display:table-row !important; text-align:left !important; } 
    .row-center { display:table-row !important; text-align:center !important; vertical-align:middle !important; height:20px !important; } 
    } 

    </style> 

(你會明白這是整個事情的一小部分,因爲顯示完整的代碼將需要太多的地方)。

此外,我的內聯CSS是根據需要爲HTML電子郵件正確完成。

那麼,你們有什麼想法有點黑客? 這裏有一個小問題,內聯!重要的優先於媒體查詢激活!重要嗎?

感謝您的幫助。

// UPDATE 1 //

對於一些測試,我發現,通過指定一個「全寬」媒體查詢(最大寬度:900px)或類似的東西,並通過造型每個元素相同作爲它們的重要內聯樣式,並且通過顛倒我的媒體查詢中的順序(向訂單翻轉後的那些添加最小寬度),Yahoo Mail會選擇最底層的樣式來整個電子郵件。它消除了每一個響應,但至少它不會破壞整個佈局或將其延伸到月球和背部......

+0

雅虎郵件只是修復了他們的CSS解析器(真實的)。我會更新我的答案。 –

回答

1

這是一個已知的問題,雖然有混合的報告說它已被雅虎解決。我想不是...

這裏有一些方法來解決Yahoo media queries bug

下面是一個responsive template with the fix in action

+0

所以真的沒有辦法讓Yahoo Mail與Media Queries一起工作。非常感謝,幫助,這些小技巧比我想出的方法更清潔! :) 我會給你一個答案,但我會等待,看看是否有其他人在接受它之前有其他解決方案。 再次感謝 –

2

正如約翰提到一個例子,這是一個衆所周知的問題,即雅虎郵件「公開」僅用於移動設備的媒體查詢。

您發現的一種策略是在移動媒體查詢後添加另一個媒體查詢塊,並將其定位到更大的瀏覽器寬度,但由John鏈接的策略使其無需這樣做。

我寫了一篇文章,分析究竟是什麼雅虎!郵件似乎與您的媒體查詢有關 - 儘管它本身並沒有給你任何新的策略。

http://freshinbox.com/blog/how-yahoo-mails-mangling-of-media-queries-affects-your-css/

UPDATE作爲雅虎的2015年3月2日郵件終於修復了他們的CSS解析器。所以你面臨的問題將不再顯現。

參見: http://freshinbox.com/blog/yahoo-mail-fixes-media-query-bug-yahoo

+0

謝謝,這是你寫在那裏的一篇很好的小文章。 :) –

+0

感謝您的讚美! –