2

これはかなり奇妙です。私が受け取ったメールには、css の次の定義が含まれています。

<style type="text/css">
...NL-default {
    font-family: "Arial";
    font-size: 12px;
    color: #000000;
}
...style1 {
    font-family: "Arial";
    font-size: 12px;
    color: #0000FF;
}
...style4 {
    text-align: center;
    background-color: #F3F3F3;
    font-family: "Arial";
    font-size: 12px;
    color: #000000;
}
...style7 {
    text-align: center;
    color: #FFFFFF;
    background-color: #000080;
    font-family: "Arial";
    font-size: 12px;
    font-weight: bold;
}
...style14 {
    font-family: "Arial";
    font-size: 14px;
    color: #FF3300;
    font-weight: bold;
}

基本的に、すべてのスタイルの前に 3 つのピリオドがあります。

そして、それは次のような問題に適用されます:

    <table style="width: 100%;" class="style41" cellSpacing="1" cellPadding="3">

        <tbody><tr>
            <td style="width: 233px;" class="style34" strong=""><strong>Notification</strong></td>

ほとんどの人の最初の直感は.. これはうまくいかず、あなたは正しいだろう. Chrome、Firefox、IE9 では、CSS はメール本文にまったく適用されません。

ただし、IE8 では完全に適用され、かなり当惑します。CSS 定義の前に 3 つのピリオドを置く目的は何ですか? これが IE8 でのみ機能するのはなぜですか?

4

1 に答える 1

2

IEは、クラスセレクターの先頭のドットを通常のクラスセレクターとして扱うことが知られています。これは、複数のクラスセレクターを、クォークモードでチェーンの最後のものとしてのみ扱うのとよく似ています。

そうは言っても...これは本当に醜いハックのようです。コードがIE専用に意図されたようには見えないため、IEハックとして意図されたものかどうかさえわかりません。その場合、そのようなメールスタイルに先頭のピリオドを追加することが本当の目的であるかどうかはわかりません。

また、コードがIE9で機能しない理由はわかりません。クァークズ・モードでも機能しません。次のテストケースでは、9までのすべてのIEバージョンでテキストが確実に赤になります。

<html>
  <head>
    <style type="text/css">
    ...foo {
        color: #FF0000;
    }
    </style>
  </head>
  <body>
    <p class="foo">This text should not be red.</p>
  </body>
</html>

ご想像のとおり、これは有効なCSSではありません。そのため、他のブラウザでは機能せず、癖のあるモードでも機能しません。

于 2013-01-11T07:34:33.667 に答える