IE7で表示されない<tr>のborder【メモ】

IE7とtrとborderと
IE7とtrとborderと

もともとやってはダメなのかもしれませんが。IE7のtableに関するバグ(といっていいのかどうか)でハマったのでメモ書きです。

FirefoxやChrome、IE9とIE8では表示に問題がなかったので油断してまい解決に少々手間取った次第です。IE9の開発者モードもFirebugの見え方になれているとやり難いですし、原因の特定に時間がかかりました。
メインがWindowsだともっと早いんだろうなぁとは思うのですが、今さらIEを使う気にもならないので結局同じかもしれません。

前置きが長くなりましたが本題です。

<table>の<tr>にborderが反映されない

<table>で組む際は<tr>で<th>や<td>を囲みます。
そこで、横列全体に簡単にborderで装飾をつけようと考えたので<tr>にborderを設定した訳ですが。

IE7では反映されません。
FirefoxやCromeやIE9やIE8ではちゃんと表示されますが、IE7ではさっぱり。

今後時間がある時に調べようとは思いますが、原因はよくわかりません。そういう物なのか、やってはいけない指定なのか…。<table>でコーディングする事が多くなく、あっても違う方法で指定しているので知識不足が否めません。情けない。

対応策

対応策は非常に簡単かつ手間がかかる方法です。

<tr>ではなく<th>や<td>の一つ一つにborderを指定すれば問題なく表示されます。
単純に全てに同じborderを設定する場合は

  • td { border:1px solid #000 }

ですみますので難しくはありません。が、rowspanなどで込み入った形にした上で列ごとにboderの種類を変えたい場合には、classをちまちまと指定する必要があります。ntc-childなどの属性セレクタを用いれば効率化もできますが…。一部を除いてEI7は対応していませんのでやはりちまちまいく事になるでしょう。

結び

使い慣れていない部分に触れた際に意図しない動作を見ると、無駄に時間がかかります。
自らの未熟とIEの挙動に愕然としつつ、忘れないように努めるのみです。

0人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄