ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:choei スタイルシートとページ内の指定矛盾について
困り度:
  • すぐに回答を!
tableタグのborderについてなのですが、

基本的にはborderを表示したくないので全ページ共通のスタイルシートで
border: none;
にしているのですが、あるページの一部分だけtableでborder="1"にしたい箇所があり当該ページ内のそのtableだけborder="1"と付け加えたのですがIE6で見たところ上と左だけ表示されていて右と下は表示されていませんでした
また、Firefoxでは全て非表示でした

CSSよりもその箇所の指定の方が優先されるのかなと思ったのですが、うまく表示されません
どう対処すればいいでしょうか
質問投稿日時:09/11/08 20:23
質問番号:5432101
この質問に対する回答は締め切られました。

回答

良回答20pt

回答者:4017B それはcss設定の仕様ですね。

table { border:none; }

〜と一括で指定して置いて。
必要な部分にだけ個別に、

<table border="1"><tr><td>あああ</td><td>いいい</td></tr></table>

〜みたいにしたいと言う欲求、良く分かります(笑)。
この原因はHTMLタグの要素である「border="1"」と、cssの設定で行う「border:〜;」は似て非なる物だからです。

とりあえずの解決方法は…

table#Border1 {
 padding: 0;
 border-collapse: collapse;
 border: 1px solid #000;
}
table#Border1 td, table#Border1 th {
 border:1px solid #000;
}

〜の様な新たなid属性を指定して置き、

<table id="Border1"><tr><td>あああ</td><td>いいい</td></tr></table>

〜と言う風にHTMLを記述すれば。
線無しをDefaultのままに、必要な箇所のみ表線を入れる事が出来ます。


P.S.
>IE6で見たところ上と左だけ表示されていて右と下は表示されていません〜
恐らくソレはちゃんと表示されてるんですけども、IEのDefaultの設定だとtableタグ用の線の色が薄いので、右と下の部分がモニタ環境などによっては良く見えなかったのではないのかと…??

FireFoxの方は持ってないので良く分りませんが。
自分の所の最新版のMozillerとTridentエンジン、およびwebkitでは問題無く表線は表示されます。ブラウザが単純に古いだけなのかも??
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:09/11/09 05:25
回答番号:No.1
この回答へのお礼ちょ〜感動です(T T)
そのものズバリの回答ありがとうございます。
御指南いただいた方法でさくっとうまくいきました

<「border="1"」と、cssの設定で行う「border:〜;」は似て非なる物
これが同じものだと思っていたので、「なぜだろう、なぜだろう」、きっとスペルミスとか変なところが抜けているだけのはずと思いこんで、ずっと困っておりました
HTMLタグのborderと同一ものもがなく、idで回避する方法にはただただ感激しております
本当にありがとうございましたm(_ _)m