みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CSSを適用…させない!

ちは!
さてさて~スタイルシートで、たとえばページ内のtableすべてにスタイルシートを適用させるため書くのは
TABLE{
うんぬん
}
ですが!この状態で、ページ内の数個のtableにはこの「うんぬん」を適用させたくない!
だからって、適用させたいtableにclassを設定しテクノは面倒だ!
そこで!、適用させたくない数個のtableに、「TABLE」に対してのstyleは適用させない!っていうclassを書く。
そんなCSSありますか?(わかりにく・・・い・・・)
とりあえず、「ここは適用しなくていいよ」っていうCSSありませんかね?探してもないものはないんでしょうか・・・

投稿日時 - 2003-03-16 21:11:05

QNo.499757

暇なときに回答ください

質問者が選んだベストアンサー

inputにborderなんかを適応させようとすると
checkboxに余計な線が・・・。
という似たような経験があります。

私の場合は、適応したくないinputにclass付けをし
もともとに適応させていたスタイルを無効にするような
記述をして対処しました。

具体的にはこうです。
input{
 border:solid 1px #000;
 /*全てのinput要素に1px、黒の罫線で囲む*/
}
input.nostyle{
 border:0px;
 /*罫線をなくす*/
}

<input type="checkbox" name="use_cookie" value="on" class="nostyle">
<input type="submit" value="SUBMIT" name="submit">

ちなみにCSSを弾くCSSというのは残念ながらないです。
そのかわりに、font-styleやline-heightなど多くの
プロパティにnormalやnoneなどの値が用意されています。

つまり、弾くという発想ではなくて標準の状態をCSSで指定する
という発想でしょうか。

投稿日時 - 2003-03-17 02:05:47

お礼

そうなんです!チェックボックスとかに余計な線が(ノ_・。)
あれが気に食わなくて(笑)
nostyleですか!
>つまり、弾くという発想ではなくて標準の状態をCSSで指定する
でしたm(__)m
とてつもなくすっきりしました☆
ありがとうございました

投稿日時 - 2003-03-17 12:31:09

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

d-3

適用させたくないtableがほんの数個なら、そちらにclass="nostyle"などと割り当てて、スタイルシートでうんぬんをしない設定をすると早いと思います。

適用させたくないtableがある程度連続してあるのなら、

<div class="nostyle">

<table>....</table>

<table>....</table>

<table>....</table>

</div>

という具合に適当なdivで囲んで、スタイルシートを

div.nostyle table {

}
(↑classがnostyleのdivの中に存在するtableのスタイルを設定)
としてうんぬんをしない設定を施すといいのでは?

ページごとで分けるなら、bodyにクラスを振るといいと思います。

#"「ここは適用しなくていいよ」っていうCSS"はちょっと聞いたことないですね。No.2の方の

>つまり、弾くという発想ではなくて標準の状態をCSSで指定する
という発想でしょうか。

で正解だと思います。標準というのはあくまでブラウザの解釈で、変化するわけですから、むしろこちらで指定していたほうが安全かもしれません。

投稿日時 - 2003-03-17 09:16:23

補足

あ、nostyleって自分で考えたクラス名なんですかね(笑)
まい~や。補足でごめんなさい。本当はお礼なんですが・・・

投稿日時 - 2003-03-17 12:36:30

お礼

ありがとうございます!nostyleですなぁ~しらなかったぁ~そのまんまでしたね(笑)
しかも、クラスをそこまで指定できるとはしりませんでした、DIVのnostyleをtableだなんて・・・こまか(笑)
またここでは2つも勉強させていただきました。。
ありがとうございます

投稿日時 - 2003-03-17 12:35:30

ANo.1

全体の定義に、
TABLE{
を使うと、すべての<table>が対象になりますので、ある一部の<table>だけを対象外にすることは出来ないですね。区別がつきませんから。
ですから、区別をしてやる必要があります。
IDを振ったらダメなんですか?↓こんな感じ。
#id名 { プロパティ: 値 };
要素名#id名 { プロパティ: 値 };

もうひとつの方法は、対象外の<table>だけ別の定義をすることしか思いつきません。
定義を有効にしたい<table>としたくない<table>が比較的片間ってあるなら、<div>で有効範囲を限定する方法もあります。

投稿日時 - 2003-03-16 21:34:53

補足

TABLE全体に対してのにstyleふって、一部のTABLEにclass指定すればclassのほうが有効になりますよね?で、classよりIDが有効。こういった解釈で行きますが、
じゃ、TABLE{
つかっても一部にクラス指定すればTABLE{
ははじけるんですよね・・・
でも本題は全体に定義されたTABLE{
をはじくCSSがあるかってことだから、それがないならしょうがないです・・・レイアウトコンテナしかないんですね、
実際はTABLEでなくINPUTに対してなんですよね、
今外部CSSですべてのページのINPUTにたいしてCSS適応されてるんですが
INPUTに対してCSSを適用する必要があるものとCSSを適用したくないINPUTが混在したページができちゃって…
だからCSSを適用したくないINPUTをdefaultに表示したくて、CSSを弾く?CSS(矛盾といえば矛盾のCSS)があればclassでしていしてデフォルトの表示にできればなって、
そういうしこうでした(+_+)わかりにくいですね・・・
わかってください

投稿日時 - 2003-03-16 21:37:52

お礼

!!!!!!!!!!!!!!
IDがあった・・・わすれてました・・・
あ、でも・・・(補足に記入)
ありがとうございますた

投稿日時 - 2003-03-16 21:37:33

あなたにオススメの質問