※ ChatGPTを利用し、要約された質問です(原文:ie8のcssでcol要素のwidthがきかない)
IE8でcol要素のwidthが効かない
このQ&Aのポイント
IE7で正常に表示されているソースコードをIE8にアップグレードした結果、col要素の幅の設定が正常に動作せず、全てのセルの幅が同じになってしまいました。
初めてCSSを勉強し始めたばかりで、詳しい知識はありません。ただ、cell11とcell12の中にwidthを指定すれば幅が有効になるようです。
どこを修正すれば問題が解消するかわかる方、教えてください。以下がHTMLとCSSのソースコードです。
ie7でうまく表示しているソースで、先日ie8にアップグレードし表示を確認しましたら、セルの幅の設定がうまくいかず、すべてのセルの幅が同じ長さ(省略値?)になっていました。
いろいろと確認して行くと、どうもcol要素のcssのwidthが無視されているようでした。
cssはまだ勉強し始めたばかりで詳しくありません。cell11,cell12の中にwidthを指定すればwidthは有効のようです。
どなたか、どこを修正すれば直るか教えてください。ソースは以下の通りです。
-------------------------------------------
htmlのソース
<table class="table2">
<col class="col41">
<col class="col42">
<col class="col51">
<col class="col52">
<col class="col41">
<col class="col42">
<col class="col51">
<col class="col52">
<tr>
<th class="cell12" colspan="2" align="center" nowrap>3月</th>
<th class="cell12" colspan="2" align="center" nowrap>4月</th>
<th class="cell12" colspan="2" align="center" nowrap>5月</th>
<th class="cell12" colspan="2" align="center" nowrap>6月</th>
</tr>
<tr>
<th class="cell11" nowrap>点数</th>
<th class="cell11" nowrap>金額</th>
<th class="cell11" nowrap>点数</th>
<th class="cell11" nowrap>金額</th>
<th class="cell11" nowrap>点数</th>
<th class="cell11" nowrap>金額</th>
<th class="cell11" nowrap>点数</th>
<th class="cell11" nowrap>金額</th>
</tr>
<tr>
<td class="cell12" nowrap>100</td>
<td class="cell12" nowrap>200,000</td>
<td class="cell12" nowrap>50</td>
<td class="cell12" nowrap>100,000</td>
<td class="cell12" nowrap></td>
<td class="cell12" nowrap></td>
<td class="cell12" nowrap></td>
<td class="cell12" nowrap></td>
</tr>
</table>
-----------------------------------------
cssのソース
.table2 {
border : 0px solid black ;
border-collapse: collapse ;
margin: 0px;
padding: 0px;
}
.col41 { /* 緑 各月 点数 */
text-align: right;
width: 50px;
background-color: #e0ffff ;
}
.col42 { /* 緑 各月 金額 */
text-align: right;
width: 80px;
background-color: #e0ffff ;
}
.col51 { /* 白 各月 点数 */
text-align: right;
width: 50px;
background-color: #ffffff ;
}
.col52 { /* 白 各月 金額 */
text-align: right;
width: 80px;
background-color: #ffffff ;
}
.cell11 {
border-right : 1px solid silver ;
border-bottom: 1px solid black ;
}
.cell12 {
border-right : 1px solid silver ;
border-bottom: 1px solid silver ;
}
よろしくお願いします。
お礼
詳しい解説ありがとうございました。やはりセル1つ1つについてclassを設定するしかないのですね。 セル幅に関しては大きな幅を指定しても表示は変わらず、参考URL内で解説してあるように、「colでは、width,backgroud-*のみ有効」というようには行かなかった(私の解釈が悪い?)のです。 ただ、この参考URLではcol,colgroupについての解説しっかりしてありよくわかりました。 ありがとうございました。