テーブルのサイズが大きくなるにつれてグラデーションを垂直方向にスケーリングする必要がなければ、CSS はそのようなことを非常に簡単に行うことができます。以下は、上で示した効果を得るために使用できる例です。
更新:どういうわけかベベルが見えませんでした (夜が遅すぎて視界がぼやけすぎたせいだと思います)。それらを実際に見るにはズームインする必要がありましたが、それに合うようにソリューションを更新しました。このソリューションを機能させるには、追加の「div」タグを追加する必要がありますが、可能ですが、画像が示す範囲では機能しないと思います. それはかなりまともに動作します。<div />
以下に、余分なタグを不要にする jQuery スクリプトをいくつか示します。
マークアップには、次のようなものを使用します。
<table cellspacing="0">
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
</table>
スタイルシートでは、次のようなものを使用します。
td {
border: 1px solid #777;
}
.bevel {
background: url('img.png') top left repeat-x;
margin: -1px;
border-top: 1px solid #fbfbfb;
border-left: 1px solid #fbfbfb;
border-right: 1px solid #bfbfbf;
border-bottom: 1px solid #e8e8e8;
}
.side {
width: 30px;
}
.main {
width: 170px;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
画像の幅は 1px にします。セルの幅に合わせて繰り返します。グラデーションを垂直に伸ばしたい場合は、運が悪いです。CSS は画像を拡大縮小できず、繰り返すだけです。垂直方向にスケーリングされた背景画像を作成するには、悪夢のようなマークアップを作成するか、それを機能させる何らかの JavaScript が必要です。
タグ スープをなくすには、<div />
jQuery を使用してタグを挿入し、ソースがごちゃごちゃにならないようにします。outerBevel
代わりに ' ' クラスをタグに追加し、<td />
この jQuery スクリプトを呼び出すだけです (jQuery を使用している場合。他の JavaScript API でも同様のことができると確信しています)。
$('.outerBevel').wrapInner('<div class="bevel"></div>');