1

毎週の食事の注文についてメールを送っています。これは実際には1、2、または3つのテーブルを意味します。帯域幅を節約するために、ソースから不要なHTMLを削除しようとしています。残っていることが1つあり ます。クライアントが1日に何も注文していない場合、6バイトかかります。

を単純なスペースに変更する と、テーブルが壊れます。

テーブルセルを折りたたむことなく、改行しないスペースを捨てる効果的な解決策はありますか?

アップデート:

答えてくれてありがとう、結局、Joeriの答えを受け入れる必要があります。一部の電子メールクライアント(Mozilla Thunderbird、Windowsなど)は、以下の解決策を完全に台無しにしたからです。

4

5 に答える 5

3

これを行う際の問題は、電子メールクライアントが大きく異なることです。HTMLメールを送信するときは、ほとんどのクライアントが理解できるものを常に使用する必要があります。nbsp(ノーブレークスペース)はそのようなものです。css属性は、かなりの数のクライアントによって認識されない可能性があり、Unicodeはおそらくサポートされません。

したがって、この場合、あなたはnbspで立ち往生していると思います。

直接入力することについて:多くの古いシステムは7ビットASCIIしかサポートしていないため、エンティティ(このようなエンティティ)が存在します。ノーブレークスペース(コードポイント160)はそれを超えています。それをサポートしていないシステムに遭遇する可能性もありますが、それは彼らが使用しているコードページに関係していると思います。

于 2010-08-26T09:17:29.743 に答える
2

これを試すことはできますが、すべてのブラウザ/電子メールクライアントで機能するとは限りません。

<table style="empty-cells: show">
于 2010-08-26T08:36:04.913 に答える
1

&nbsp;文字通り、で表される文字を追加できます。これはUnicodeコードポイントU+00A0です。入力方法:

  • vi:<C-k>NB
  • ウィンドウズ:ALT+0160
  • ウィキペディア
  • Perl:

    perl -i -n -p 's/&nbsp;/\x{A0}/g' email.html
    

ただし、Joeri Hendrickxが彼の回答で指摘しているように、ASCIIを超える文字を文字通り入力すると、送信者のクライアントから始めて、電子メールツールチェーンのすべての位置で問題が発生する可能性があります(たとえば、HTMLをテンプレートとして使用する場合、Outlookユーザー)、受信者の受信トレイサーバーとクライアントで終了し、それを処理します。

Joeriのアドバイスに参加して、&nbsp;変更せずに残し、余分なバイトを使用して生きたいと思います。それらがたくさんある場合は、代わりにHTMLをリファクタリングしてみてください。

于 2010-08-26T08:40:21.467 に答える
0

Alt + 0160は、空白のノーブレークスペース文字を生成します。 

于 2010-08-26T08:37:43.120 に答える
-2

同じ行に&nbspを指定してTABLEDATAを保持してみてください。それがうまくいくと私を信じてください!

`

 <tr>

       <td width="50">&nbsp;</td>

 </tr>

`

于 2012-06-12T16:58:32.043 に答える