• ベストアンサー

CSSを適用…させない!

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

  • t-d-s
  • お礼率60% (102/170)
  • CSS
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
回答No.2

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で指定する という発想でしょうか。

t-d-s
質問者

お礼

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

その他の回答 (2)

  • d-3
  • ベストアンサー率42% (16/38)
回答No.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で指定する という発想でしょうか。 で正解だと思います。標準というのはあくまでブラウザの解釈で、変化するわけですから、むしろこちらで指定していたほうが安全かもしれません。

t-d-s
質問者

お礼

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

t-d-s
質問者

補足

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

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

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

t-d-s
質問者

お礼

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

t-d-s
質問者

補足

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でしていしてデフォルトの表示にできればなって、 そういうしこうでした(+_+)わかりにくいですね・・・ わかってください

関連するQ&A

  • thのスタイルを適用するにはどうすればいいでしょう

    <table border=1 class="test1"> の部分にclassを設定するだけで thのスタイルを適用するにはどうすればいいでしょうか? 理想としては添付画像の下のテーブルの様に thの部分だけスタイルを適用したいのですが 実際はテーブルのレコード数が多い為、 <th class="test2">を全てのthにつけるのを省略したいです。 なので、<table border=1 class="test1">の部分にthのスタイルを設定したいのですが table.test1 {font-size: 5em;} の部分はどのように記述すればいいでしょうか? 現在の table.test1 {font-size: 5em;} だとテーブルすべてに適用されてしまいます。 理想の表示は下のテーブルで 理想のソースは上のテーブルです。 ------------------ 以下ソース <html> <head> <style type="text/css"> table.test1 {font-size: 5em;} th.test2 {font-size: 5em;} </style> </head> <body> <table border=1 class="test1"> <tr><th>No</th><td>a</td></tr> <tr><th>No</th><td>a</td></tr> </table> <br> <table border=1> <tr><th class="test2">No</th><td>a</td></tr> <tr><th class="test2">No</th><td>a</td></tr> </table> </body> </html>

    • ベストアンサー
    • CSS
  • かなり困ってます!CSSが適用されません…

    WindowsXPでDreamweaverMXを使っています。 body {font-size: 12px;} .px10 {font-size: 10px;} という内容の外部スタイル「css.css」を作り、テンプレートに「css.css」を適用しました テンプレートを元にページをつくり、部分的に <td class="px10">文字列</td> といった感じで適用しました。 Dreamweaver上ではちゃんと適用されているのですが、ブラウザでみてみると文字が小さくなっていません。 bodyの12pxはブラウザ上でもちゃんと適用されています。 何がいけないのか、わかりません。どなたか解かるかたがいたらお知恵をかしてください。

    • ベストアンサー
    • HTML
  • テーブルの幅をデフォルトに戻すcssがわかりま

    <html> <head> <title>test</title> <style type="text/css"> table { width: 100%; } </style> </head> <body> <table border=1> <tr><td>No</td><td>table1</td></tr> </table> <table border=1> <tr><td>No</td><td>table2</td></tr> </table> </body> </html> このようなソースで二つ目のテーブルだけ table { width: 100%; } を適用しない方法はありますか? 実際はテーブルが複数あり 基本的には table { width: 100%; } をテーブルに設定したいのですが とあるテーブルのみテーブルの幅をデフォルトのサイズにしたいのです。 table { width: 100%; } で全てのテーブルに適用した後に クラスを使って該当のテーブルのみ デフォルトの値に戻す方法は有りますか? <table border=1 class="デフォルトに戻す"> <tr><td>No</td><td>table2</td></tr> </table> としたいのですが テーブルの幅をデフォルトに戻すcssがわかりません。 2つのテーブルの幅は指定したくありません。

    • ベストアンサー
    • HTML
  • [Dreamweaver8]テンプレートに外部CSSを適用→HTMLドキュメントにCSSが適用されないのは何故?

    Dreamweaver8初心者で、現在勉強中の者です。 Dreamweaverのテンプレート機能を使った、外部CSSの設定方法についてお尋ねします。 ディレクトリは現在、以下のような状態です。 [サイト -SampleWebSiteFolder-]    |―[Templates]    |   |―[style.css]    |    L―[template.dwt]    |     L[index.html] ※拡張子の無いものはフォルダを表します。 index.htmlファイルへCSSを適用させたいのですが、適用されないで困っています。 cssは、外部スタイルシートファイルを用意(style.css)し、テンプレート(template.dwt)に対して、CSSスタイルパネルの[スタイルシートを添付]ボタンより設定しています。 結果、テンプレート(template.dwt)に対してはCSSが適用されるのですが、HTMLドキュメント(index.html)にはCSSが適用されていない状態です。 テンプレートを用いて外部スタイルシートにてサイトを管理する場合、上記のケースにおける問題の原因は何でしょうか。 ちなみに、テンプレート[template.dwt]及び、HTMLドキュメント[index.html]の<head></head>内には、以下のソースが記述されています。 <link href="style.css" rel="stylesheet" type="text/css" />

  • CSSのスタイルシート適用について

    <link href="/○○○.css" rel="stylesheet" type="text/css"> としてスタイルシートを呼び出した後に、再び <style type="text/css"> と記述してスタイルのいくつかを再設定することはできるんでしょうか?その場合はその宣言したものだけが変わって、LINKされたほうのスタイルシートデータも他の内容は生き残って適用されますか?

    • ベストアンサー
    • HTML
  • CSS idとclassをtableでつかうとき

    内部cssで テーブルに装飾をしようとしていたのですが、 <style type="text/css"> <!-- table.sample td {font-size:12px;} --> </style> <table class="sample">・・・ これは有効でした <style type="text/css"> <!-- table#sample td {font-size:12px;} --> </style> <table id="sample">・・・ これは無効でした なぜでしょう?classとidはそのユニーク性のみの違いかと思っていましたが。 このような機能的な違いもあるのでしょうか。 それとも単に記述ミスですかね。。。

    • ベストアンサー
    • CSS
  • 一部ページのtableのボーダーをCSSで消す方法。

    一部ページのtableのボーダーをCSSで消す方法。 あるページのtableだけボーダーを消したいと思い、 そのページの<table></table> を <div class="item"></div> で囲い以下のようにCSS側に書き込みました。 .item table,th,td{ border:none } が、この命令が<div class="item"></div>で囲まれていない全ページに適応されてしまい、全てのtable要素のボーダーが消えてしまいます。。 所定のページのtable要素のボーダーのみの消し方を教えて頂けないでしょうか? CSS側の記述する順番にも影響があるのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 2列目のみcssを適用させるには?

    <html> <head> <title>test</title> <style type="text/css"> table.test td+td { padding-left:1em; } </style> </head> <body> <table class="test" border=1> <tr><th>No</th><th>タイトル(この列だけ左からの距離を指定する)</th><th>その他</th></tr> <tr><td>1</td><td>bbb</td><td>1</td></tr> <tr><td>2</td><td>ccc</td><td>2</td></tr> </table> </body> </html> このソースだと2列目と3列目にcssが適用されてしまいます。 table.test td+td の部分は、okwaveからのコピペで見よう見まねでやってみたのですが どうすれば「2列目だけ」を指定できますか? このソースでの表示結果は画像の通りです。

    • ベストアンサー
    • HTML
  • Firefoxのスタイルシートで複数のクラスが適用できません。

    Firefoxのスタイルシートで複数のクラスが適用できません。 恐らく質問としては初歩の初歩だと思われます。 最近IEのみで動作確認していたHPをFirefoxにも適用させようと思い立ちました。 ところが、TABLEにスタイルシートが上手く適用されないのです。 実際にはいろいろ要素を入れてますが、検証用として簡略化し、下記のクラスで実行。 TABLE.a { margin: 0px auto; } TABLE.b { margin: 0px auto; } <TABLE CLASS="a">だとセンタリングされるが<TABLE CLASS="b">ではされないといった具合です。 記述が誤っているのかとTABLE.aの要素をコピペしてTABLE.bに書き換えても駄目でした。 IEだと普通に適用されるので、何が悪いのかさっぱりです。 検索して調べてみても該当しそうな回答を見つけられず難儀しています。 こうすれば良いのでは、と思い当たる節がありましたら教えていただけないでしょうか。

    • ベストアンサー
    • HTML
  • cssで一個のテーブルだけにデザインを反映したい

    cssの編集で、テーブルすべてに反映されてしまって困っています。 下記は書籍のサンプルを抜粋したものですが、 /*--------------------------- ▼テーブル -------------------------- */ table { background-color:#000033;} th { background-color:#005890; color:#ffffff; } td { background-color:#ffffff; color:#333333; } /*--------------------------- ▲テーブル -------------------------- */ という設定にしたら、すべてのテーブルに反映されました。 このテーブルだけ、という風にしたいのですが、スタイルシート側を どうしたらいいのでしょうか? ちなみに反映したいhtmlファイルのテーブルのソースは下記の感じなのですが、 div とか postとかをtableの前に持っていけばいい?みたいなところまで 調べてわかっているのですが、まったくの初心者でなかなかうまくいきません。 <div class="post"> <table width="400" border="0" cellspacing="1"> ・・・略・・・ </table> </div>

    • ベストアンサー
    • HTML

専門家に質問してみよう