生成しているWebページがあり、テーブルにラベルを付ける緑色の背景を持つh2があります。テーブルには任意の数の列を含めることができます。ユーザーがスクロールできる範囲でh2要素を水平方向に拡張して、テーブルの上に常に緑色のバーが表示されるようにします。私が達成しようとしている効果は、少なくともテーブルの幅にまたがる緑色のバーです。そのため、ユーザーがどれだけスクロールしても、常にテーブルの真上にあります。
現在の外観は次のとおりです(赤いアウトラインは、含まれているhtml、body、およびdiv要素のおおよそのエッジを示しています): そして、関連するコードは次のとおりです。
css:
h2 {
font-family:Arial;
font-size:20pt;
color:#FFFFFF;
text-align:left;
font-weight:normal;
background-color:#00693C;
clear: both;
padding:2px;
margin: 0px;
}
table.response {
border:1px outset;
border-collapse: separate;
}
table.response td {
font-size: 14px;
padding: 3px;
border:1px inset;
}
html:
<h2>[snip]</h2>
<table class="response">
<tbody>
<tr>
<td>[snip]</td>
[...]
</tr>
[...]
</tbody>
</table>
私がすでに試したがうまくいかなかったこと:
- 単一の<tr>と単一の<th>を含む<thead>要素。ここで、<th>のcolspanは、テーブルの列数に設定されます。これは列の数が少ない場合に機能しますが、テーブルが大きい場合(たとえば、colspan = "6000"の場合)、一部のブラウザー(具体的には、Firefox 11)は、セル(およびその背景)を1つの列のみを占めるものとしてレンダリングします。
- colspan="2"と<tr>要素に設定されたbackground-colorCSSプロパティを持つ単一の<tr>と1つの<th>を含む<thead>要素。Firefoxの要素の検査機能を使用すると、<tr>がテーブルの幅全体に広がっていることがわかりましたが、背景は1つのセルにのみ適用されていました。
- テーブルの残りの列ごとに、単一の<tr>と1つの<th>を含み、colspan="2"と別の<th>を持つ<thead>要素。<thead>のセル間の分離を削除しようとしましたが、できませんでした。
私の質問はこれです:緑色のバーを少なくともテーブルの幅全体に伸ばす効果を達成する方法はありますか?もしそうなら、それは何ですか?テーブルのHTMLを生成するときに、JavaScriptを使用しないか、スタイルコードを生成する必要があります。