padding=0で枠をつけたい

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: motimoti : 2006/12/15(金) 15:22  ID:k1vEV/6L
黄色のテーブル枠を赤枠で囲いたいのですが。
はじめのtableでcellpadding="0"にしているため赤枠が出ません。
修正量が多いためpaddingをスタイルシートで変更してみましたが、
全ページcellpadding="0"で記述してあり、
スクロールがないページなどは特に位置ずれが激しくはみ出して見えなくなってしまいます。
paddingやmargin-top等を使わずにcssなどで変更したいのですが
IEでみれればいいのですが何かありませんでしょうか。。?

----------------------------------------------------------
<table cellpadding="0" cellspacing="0" border="1">
<td bgcolor="red"><!-- この赤色を出したい -->
<table cellpadding="4" cellspacing="0" bgcolor="yellow">
<tr>
<td><textarea cols="35" rows="3" wrap="hard"></textarea></td>
</tr>
</table>
</td>
</table>

1   名前: Newのり太 : 2006/12/15(金) 15:22  ID:CtxhI6x.
> はじめのtableでcellpadding="0"にしているため赤枠が出ません。

cellpadding="0"であろうがなかろうが、
borderプロパティで枠線をつけることは可能です。
http://www.tagindex.com/stylesheet/box/border.html

2   名前: motimoti : 2006/12/15(金) 15:22  ID:k1vEV/6L
説明不足ですいませんでした。
border-colorも試しましたがstyleseetで記述した場合一つ目のtableにも
赤枠がかかってしまい、個別指定しないといけないため
ほかの個別指定しなくてもいい手段を探していました。
よろしくお願いします。

<table cellpadding="0" cellspacing="0">
<td>test</td>
<td bgcolor="red"><!-- この赤色を出したい -->
<table cellpadding="4" cellspacing="0" bgcolor="yellow">
<tr>
<td><textarea cols="35" rows="3" wrap="hard"></textarea></td>
</tr>
</table>
</td>
</table>

3   名前: mono ◆7YMtX/NYmu : 2006/12/15(金) 15:22  ID:3mXSSG1S
他のソースがないためどのようになるか不明ですけど。

http://www.tagindex.com/stylesheet/basic/format.html#t04
今回の場合は、
table table td{(略)}
でいけませんかしら。

4   名前: motimoti : 2006/12/15(金) 15:22  ID:k1vEV/6L
monoさんありがとうございます
そのような使い方ができるとは知りませんでした
大変勉強になりました。しかし、今回は1ページに80個ほどtableタグがあり
ページによってはバラバラです。
おとなしく個別指定で書いていったほうがいいかもしれません。。
なにかありましたらよろしくお願いいたします。

補足
処理をしたあと、文字数オーバーや間違っているところを赤枠で囲って間違いを知らせます。
今のところ赤枠にしたいところに class="test" を入れcssに記述するのが一番いいかと思っています。

.test{
margin-top:0.2em;
margin-bottom:0.2em;
margin-left:0.2em;
margin-right:0.2em;
}

5   名前: Newのり太 : 2006/12/15(金) 15:22  ID:CtxhI6x.

> .test{
> margin-top:0.2em;
> margin-bottom:0.2em;
> margin-left:0.2em;
> margin-right:0.2em;
> }

# 枠線をつける目的なのに、なぜにマージン?

単純に、枠線が赤いクラスを定義しておき、
該当の要素に適用すればよいのではないでしょうか。

.error{
border: 2px solid red;
}

表を入れ子にしているのが、背景色の赤で枠線を表現しようという意図でしたら、
スタイルシートだけでもっとシンプルかつスマートに出来るのではないかと思います。

6   名前: Newのり太 : 2006/12/15(金) 15:22  ID:CtxhI6x.
>>5

すいません。 { が全角ですた。。

7   名前: motimoti : 2006/12/15(金) 15:22  ID:k1vEV/6L
Newのり太さんありがとうございます。
枠線を使うページ指定で
table{
margin:…
margin:…
}
を先頭に書けばclass指定をしなくても
できますが、多少の位置ずれがありclass指定をしたほうがいいかと思いやってみました。

修正個所が多いためなんとかclass指定を使わずにやりたかったのですが
Newのり太さんの返答が位置ずれ等もなく、一番いいと思い反映させていただきます。

大変ありがとうございました。

質問を終了させていただきます。

8   名前: mono ◆7YMtX/NYmu : 2006/12/15(金) 15:22  ID:3mXSSG1S
あれ?出したい赤枠
<td bgcolor="red">
↑これって現在もこのままになってるんでしょうか?

なら、marginやpaddingを設定せず、
<td bgcolor="red">
を、エディタかなんかで
<td class="miss">
と置換して、
.miss{border:4px solid #ff0000;}
みたいにできませんか?
ページ数が多くとも、複数のファイルを
同時に置換できるソフトもあるようですから、
それを使えばそれほど作業量もないかもしれません。

#最初の設計の大切さが我が身にしみる…

9   名前: モノ ◆7YMtX/NYmu : 2006/12/15(金) 15:22  ID:3mXSSG1S
#終了してたのにすいません。

10   名前: mono : 2006/12/15(金) 15:22  ID:k1vEV/6L
monoさんありがとうございます。
<td bgcolor="red">残っていますので、置換していきます。
最後までありがとうございました。

一覧へ戻る