this code:
<table cellspacing="0" cellpadding="0" border="0" style="width:415px">
<tbody>
<tr valign="top">
<td style="font-family:Arial;min-height:60px;font-size:12px;line-height:14px;">
This is my text that I need in 2 lines
</td>
</tr>
<tr valign="top">
<td style="font-size:12px;line-height:14px">
Second Line
</td>
</tr>
</tbody>
</table>
ご覧のとおり、最初のtr/tdは高さ60px(min-height:60px
)しかし実際にはそうではありません。
多くの理由から、身長を直接使用することはできません(このコードは、ニュースレターで書式設定されたトローバックオフィスシステムです)。
だから、どうすればtd trought min-heightで全体の高さを取ることができますか?
また、min-height:60px;
はtrですが、何も変わりません...
min-height
テーブル要素では機能しません:
CSS 2.1では、表、インライン表、表のセル、表の列、および列グループに対する「最小幅」および「最大幅」の影響は定義されていません。
これはtd
とtr
にも当てはまると推測できます。
常に機能するはずは、コンテンツをdivにラップし、min-height
に、 this JSFiddle: に示すように
<td style="font-family:Arial;min-height:60px;font-size:12px;line-height:14px;">
<div style="min-height: 60px; background-color: green">
This is my text that I need in 2 lines
</div>
</td>
編集:これはOutlookでは機能しないと言います。
別のアイデア:td
に高さ60ピクセルの画像を配置し、float: left
:
<td>
<img src="..." style="float: left">
</td>
<td height="60">
CSSの高さまたは最小高さではないHTMLメールの場合、テーブルセルを<td height="60">
そして、それを最小高さとして扱います。コンテンツが60ピクセルを超える場合、それに応じて拡大します。
セルにDIVを配置し、代わりにDIVをスタイルします。
最小高さはテーブルでは機能しません。
要素の高さを特定の範囲に制限すると便利な場合があります。 2つのプロパティがこの機能を提供します。min-height
&max-height
ただし、これらは非置換インライン要素、テーブル列、および列グループでは使用できません。
HTML
<table></table>
CSS
table{
height:0px; /*Set any facultative length value to Height (percentage value doesn't work)*/
min-height:100vh;
}
それは私が常にこの問題を解決する方法です...
min-heightおよびmin-widthを設定することはできませんが、この同じ効果を達成するためにCSS3を使用できます。
HTML:
<div class="default-table">
<table>
<tbody>
<tr>
<td>Steve</td>
<td>Smith</td>
<td>[email protected]</td>
</tr>
<tr>
<td>Jone</td>
<td>Polanski</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</div>
CSS:
.default-table table {
border-collapse: collapse;
}
.default-table table td {
padding: 0;
}
.default-table tr:before {
width: 0px;
content: '';
float: left;
overflow: hidden;
height: 28px;
font-size: 0;
}
.default-table {
overflow:hidden;
}
しかし、tdに崩壊またはパディングがある場合。 .default-tableテーブルからmargin-leftを引いた値を指定する必要があります。
表示ブロックを追加
<td style="font-family:Arial;min-height:60px;font-size:12px;line-height:14px;display:block;">
display:block;
をそのスタイルに追加することにより、この問題を解決しました。
<td style="display:block; min-height:200px;">
私のようなこの投稿を検索して見つけた人のために、2012年の投稿を復活させるかもしれません:
table tr:first-child td:before {
min-height: 100px;
display: block;
content: ""
}
<table border="1">
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
以下は、ピクセル単位の高さに依存しないソリューションです。すべてのメールクライアントで機能します。
<table cellspacing="0" cellpadding="0" border="0" style="width:415px">
<tbody>
<tr valign="top">
<td style="font-family:Arial;font-size:12px;line-height:14px;">
This is my text that I need in 2 lines
</td>
<td style="font-family:Arial;font-size:12px;line-height:14px;">
<br/><br/>
</td>
</tr>
<tr valign="top">
<td style="font-size:12px;line-height:14px">
Second Line
</td>
</tr>
</tbody>
このソリューションは、最初の行の右側に2行の幅ゼロの列を追加することで機能します。 #xfeffを使用します。文字。これは、改行なしのゼロ幅スペースです。