• ベストアンサー

CSSで<td>の背景色を変えたい。

下のようにTable aaa と bbbがあります。それぞれの<td>要素に マウスがHoverしたときに別々の色に変えたいのですが、これを CSS行うことは可能でしょうか? <table class"aaa">   <tr>     <td> </td>     <td> </td>     <td> </td>   </tr> </table> <table class"bbb">   <tr>     <td> </td>     <td> </td>     <td> </td>   </tr> </table> <td>中には <a hrer="・・・が入っているのですが、 次のように行った場合、リンクアドレスが長くなるとうまく機能 しないようなのです。 table.aaa a:hover{   color: #FFFFFF;   background-color: #FF0000;   text-decoration: none;   padding: 5px; } table.bbb a:hover{   color: #FFFFFF;   background-color: #0000FF;   text-decoration: none;   padding: 5px; } よろしくお願いします。

noname#27115
noname#27115

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

  • ベストアンサー
  • shunten
  • ベストアンサー率37% (15/40)
回答No.1

こんばんは。 この問題、私もHPで二種類の意味の違うリンクに違う色をつけたいと思いながら試みたことがありませんでした。 興味を持ったので記述練習をしてみましたが、どうやら以下の記述でどうにかなりそうですよ。 <headの部分> <style type="text/css"> <!-- .blue A:hover{color:blue;} .red A:hover{color:red;} --> </style> </HEAD終わり> <BODY部分>         <table class="blue"><tbody><tr><td> <A href="A1.htm">ABC</A> </td></tr></tbody></table> <table class="red"><tbody><tr><td> <A href="A2.htm">XYZ</A> </td></tr></tbody></table> </BODY終わり> gooの中で通常のHTML記述をしたときにどんな事が起きるか を知らないので4箇所で<>の中を変な書き方にしました。

noname#27115
質問者

お礼

.red A:hover{color:red;} こういう風な書き方があるんですねぇ。 これはこの2行でワンセットという解釈 でよろしいのでしょうか?

その他の回答 (4)

  • shunten
  • ベストアンサー率37% (15/40)
回答No.5

#1です。又出てきました。 CSSでは最初の方で未読・既読のカラーリングを設定しますね。普通、リンク色はページの中で変えませんからクラス分けをしませんが、ご質問ではページの中で別々の色にするわけですからクラスに分けなければなりませんね。「.red」と書いてレッドというクラスについて以下のようにします、と宣言します。そしてご存知のように「{ }」の中でそのクラスではどのような事が起こりますと記述します。この箇所であれこれ考えてやってみた結果は通常の記述とは違うものですが、これで動きましたので権威のない「研究発表」と受け取ってください。 もちろん補足ご質問のようにそれでワンセットです。私もいつかこれを使いましょう。 >こういう風な書き方があるんですねぇ。 本当ですねぇ。無知なままに、気持ち悪いのでここではこの後に続けて色々.redについての記述をしないほうが良いかも。ですから外部CSSにこれだけを記述するとか。

  • shunten
  • ベストアンサー率37% (15/40)
回答No.4

#3の方の回答を読んで気付きましたが、私は後半のご質問をちょっと誤解していたようで・・・ ご質問の意味を少し大きく捉えて#3のご回答以外で数種類の解決策を考えました。 1)paddingの数字をもっと小さくする 2)<TD></TD>だけでなく<TR></TR>で最初から複数行にしてやる 3)CSSの記述でリンクアドレスのフォントを出来るだけ小さく指定してやる 4)画面上でリンクテーブルの位置を考え直す 5)リンクアドレスをアドレスにせず言葉に置き換える、それでは 不十分だとお考えなら リンクの為の場所の下にその言葉の説明を入れる などがあると思います。HPのデザインも含めて色々と工夫するのがHP作成の面白さの大きな部分を占めていると思います。私はそれで楽しんでいます。oshiete_kunさんも色々遊んでみて下さい。

noname#10370
noname#10370
回答No.3

classの後の"="が抜けているのはご愛嬌として、問題ないようですけど・・・。 >次のように行った場合、リンクアドレスが長くなるとうまく機能しないようなのです リンク部分のテキストが複数行になった場合に文字が重なるのことを言われているならpaddingをpadding-leftへ変更することをお試しください。

noname#27115
質問者

お礼

機能しないというのは hoverしたときに、同じように a:hoverを設定しているのに色が変わったり変わらな かったりするリンクがあるのです。 バタバタしていてダメなんですが、一度、設計を 0からやり直してもみたいと思っています。

  • shunten
  • ベストアンサー率37% (15/40)
回答No.2

#1です。書き忘れました。 記述が増えるとうまく機能しないとの事ですね。HTMLでは試していませんが、 <style type="text/css"> <!--@import url(../S.css); --></style> などど記述して外部のスタイルシート「S.css」を参照させ 外部スタイルシートでは .blue{color: #FFFFFF; text-decoration: none;} td{background-color: #FF0000; width:100; height:30; padding: 5px;} という風にどんどん書いてやれば問題はありませんでした。

関連するQ&A

  • tdのクラスの使い方

    <style type="text/css"> <!-- table { border: 1px red solid; padding:30px 30px; } </style> <body> <table border=3> <tr><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td></tr> </table> これだと、赤いテーブルの内側のみしかpaddingが有効にならないのですが、 黒いテーブルの枠もpaddingするには、 td { padding:30px 30px; } とするしかないのでしょうか? クラス名を付けて、やりたいテーブルのtdタグだけ適用させたい場合は、 td.aaa { padding:30px 30px; } として、 <table border=3> <tr><td class="aaa">test</td class="aaa"><td class="aaa">test</td class="aaa"></tr> <tr><td class="aaa">test</td class="aaa"><td class="aaa">test</td class="aaa"></tr> </table> のように、すべてのtdタグにクラス名を付けるしかないのですか?

  • CSSでTRに枠線とTDに背景を指定したい。

    CSSでTRに枠線種を指定、TDで背景色を指定したいのですが、 Firefoxでは思惑通り表示されますが、IEではTRの枠線が表示されません。 何か良い対応策は無いでしょうか? == CSS == TABLE { border-collapse: collapse; } .grid { border: solid 1px; border-color: #888; } .nogrid { border: none; } .title { background-color: #ff7; } .data1 { background-color: #eef; } .data2 { background-color: #fff; } == HTML == <table> <tr class="grid"> <td class="title">項目1</td> <td class="title">項目2</td> <td class="title">項目3</td> </tr> <tr class="nogrid"> <td class="data1">値1</td> <td class="data1">値2</td> <td class="data1">値3</td> </tr> <tr class="nogrid"> <td class="data2">値1</td> <td class="data2">値2</td> <td class="data2">値3</td> </tr> </table>

  • テーブルの背景をマウスオーバーで変える

    お世話になります よろしくお願いします phpMyAdminをみてやってみようと思ったのですが テーブルのセルをマウスオーバーで背景の変更はできないでしょうか? FireFoxだとうまくいくのにIEだとうまくいきません。 IEは未対応と聞いたのですが 実際phpMyAdminでは動いています。 どうやれば一緒のことができるのでしょうか? phpMyAdminからそれっぽいソースは見つけたのですが うまくいきませんでした <style type="text/css"> /* odd table rows 1,3,5,7,... */ table tr.odd th, table tr.odd { background-color: #CCCCCC; } /* even table rows 2,4,6,8,... */ table tr.even th, table tr.even { background-color: #666666; } /* hovered table rows */ table tr.odd:hover, table tr.even:hover, table tr.odd:hover th, table tr.even:hover th, table tr.hover th, table tr.hover { background-color: #FFF000; } --> </style> <body> <table> <tr class="odd"><td>マウスを乗せると背景色が変わる</td><td>マウスを乗せると背景色が変わる</td></tr> <tr class="even"><td>マウスを乗せると背景色が変わる</td><td>マウスを乗せると背景色が変わる</td></tr> </table> 以上よろしくお願いします

    • ベストアンサー
    • HTML
  • 無駄なところ省いてほしいです。

    <html> <head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <title></title> <style type="text/css"> <!-- BODY{ margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; } TD{ font-size : 10pt; } a.menu:link { color: #FFFFFF; font-weight : bold; font-family: 'Comic Sans MS'; text-decoration: none; background-color: #FF99CC; padding: 5px 15px 5px 15px; border-width : 1px 1px 1px 1px; border-style : solid solid solid solid; border-color : #666666 #666666 #666666 #666666; display: block; height: 25px; } a.menu:visited { color: #FFFFFF; font-weight : bold; font-family: 'Comic Sans MS'; text-decoration: none; background-color: #FF99CC; padding: 5px 15px 5px 15px; border-width : 1px 1px 1px 1px; border-style : solid solid solid solid; border-color : #666666 #666666 #666666 #666666; display: block; height: 25px; } a.menu:hover { color: #666666; font-weight : bold; font-family: 'Comic Sans MS'; text-decoration: none; background-color: #FFFFFF; padding: 5px 15px 5px 15px; border-width : 1px 1px 1px 1px; border-style : ridge ridge ridge ridge; border-color : #FFFFFF #FFFFFF #FFFFFF #FFFFFF; display: block; height: 25px; } a.menu:active { color: #666666; font-weight : bold; font-family: 'Comic Sans MS'; text-decoration: none; background-color: #FFFFFF; padding: 5px 15px 5px 15px; border-width : 1px 1px 1px 1px; border-style : groove groove groove groove; border-color : #FFFFFF #FFFFFF #FFFFFF #FFFFFF; display: block; height: 25px; } .pagetitle{ color : #FF6699; padding-bottom : 5px; border-bottom-width : 2px; border-bottom-style : solid; border-bottom-color : #FF6699; } .sub1{ color : #FFFFFF; border-width : 1px 1px 1px 1px; border-style : solid solid solid solid; border-color : #666666 #666666 #666666 #666666; background-color : #FF99CC; } .log{ border-width : 1px 1px 1px 1px; border-style : solid solid solid solid; border-color : #666666 #666666 #666666 #666666; background-color: #FFFFFF; } HR{ color : #999999; height: 1px; } --> </style> </head> <body bgcolor="#ffffff" background="./top_img/1155290302.gif" text="#666666" link="#666666" vlink="#666666" alink="#666666"> <center> <table style="MARGIN-TOP: -2px; FONT-WEIGHT: bold; FONT-FAMILY: 'Comic Sans MS'" cellspacing="3" cellpadding="0" width="166"> <tr> <td style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 15px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 15px; PADDING-BOTTOM: 5px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #666666 1px solid" align="center"><font color="#666666">Top</font></td> </tr> <tr> <td><a class="menu" href="">Profile</a></td> </tr> <tr> <td><a class="menu" href="">Diary</a></td> </tr> <tr> <td><a class="menu" href="">BBS</a></td> </tr> <tr> <td><a class="menu" href="">Chat</a></td> </tr> <tr> <td><a class="menu" href="">Room</a></td> </tr> <tr> <td><a class="menu" href="">Album</a></td> </tr> <tr> <td><a class="menu" href="">Freepage-1</a></td> </tr> <tr> <td><a class="menu" href="">Freepage-2</a></td> </tr> <tr> <td><a class="menu" href="">Freepage-3</a></td> </tr> <tr> <td><a class="menu" href="">Link</a></td> </tr> <tr> <td><a class="menu" href="">Mailbox</a></td> </tr> </table> </center> </body> </html>

  • CSSについて教えて下さい

    CSSについて教えて下さい。 ↓下記はどのような意味になりますでしょうか。 .table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { background-color: #550055; color: #eeeeee; }

    • ベストアンサー
    • CSS
  • TDタグをスタイルシートを使って綺麗に簡単に書きたい。

    二つほど質問があります… 以下のようなcssとhtmlを書きました。 ○stylesheet.css body{background-color:#ffffff} a:hover{color:#ff0000;text-decoration:none;background-color:#ffff00} ○XXX.html <html> <head> <meta http-equiv="text/html" contents="Shift_JIS"/> <link rel="stylesheet" href='../css/stylesheet.css' type="text/css"/> </head> <body> <table border> <tr>  <th>&nbsp;</th>  <th>XXXXXX</th>  <th>XXXXXX</th>  <th>XXXXXX</th> </tr> <tr>  <th>XXXXXX</th>  <td align="right"><a href="###.html">100</a></td>  <td align="right"><a href="###.html">525</a></td>  <td align="right"><a href="###.html">300</a></td> </tr> <tr>  <th>XXXXXX</th>  <td align="right"><a href="###.html">10</a></td>  <td align="right"><a href="###.html">150</a></td>  <td align="right"><a href="###.html">300</a></td> </tr> </table> </body> </html> 質問1 <td>は全て数値で、必ず右寄せ(align="right")なのですが、 stylesheet.cssの中に書いてしまいたいのです…でも td{align:right} と記述しても右寄せしてくれません…どう書くのが正しいのでしょうか? 質問2 マウスカーソルをリンクに合わせると文字が反転するようになっているのですが できる事ならtdタグの空白部分も反転したほうが良いと思うのですが td:hover{color:#ff0000;text-decoration:none;background-color:#ffff00} としても駄目で <a href="###.html"><td align="right">100</td></a> とするとリンクが無くなってしまいました… 上手く実行できるようになりますでしょうか? できればJavaScriptを使いたくないんです… わがままな質問ですが、回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • (;´Д`A ```間隔を詰めるには...?

    今スクリプト勉強しているのですが、↓のようにやってみると、まのびした感じになってしまいます。 それぞれの間隔をくっつけたいのですが、どうしたらいいのでしょうか? どうか教えてください(m。_。)m オネガイシマス <html> <head> <title></title> <style type="text/css"> <!-- A.link2 { font-size:8pt; color: #ff0000; font-family:Impact,Chicago; padding: 0.1em 0.6em 0.1em 0.6em; background-color:#000000; border-top:1px solid #eeeeee; border-left:1px solid #eeeeee; border-bottom:1px solid #666666; border-right:1px solid #666666; text-decoration:none; } a:hover.link2{ color:#ff0000; background-color:#ffffff; border-top:1px solid #eeeeee; border-left:1px solid #eeeeee; border-bottom:1px solid #666666; border-right:1px solid #666666; text-decoration:none; } --> </style> </head> <body> <center> <TABLE BORDER="0" cellpadding="0" cellspacing="0" width="100%" height="100%"> <TR> <TD width="20%" nowrap><a href="aaa.html" class="link2"> AAA </a></TD> <TD width="20%" nowrap><a href="bbb.html" class="link2"> BBB </a></TD> <TD width="20%" nowrap><a href="ccc.html" class="link2"> CCC </a></TD> <TD width="20%" nowrap><a href="ddd.html" class="link2"> DDD </a></TD> <TD width="20%" nowrap><a href="eee.html" class="link2"> EEE </a></TD> </TR> </table> </center> </body> </html>

    • 締切済み
    • CSS
  • 横に並べたテーブル

    200×200px程度のテーブルを複数(行数や列数はバラバラです)横に並べたいのですが、とりあえず、 <html> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>ページのタイトル</title> <style type="text/css"> <!-- body{ color:#330000; background-color:#cc3333; } table.a{ background-color:#ffffff; padding:1px; border:1px solid #000000; display:inline; margin:5px; } td.a{ text-align:center; vertical-align:middle; border:1px solid #000000; font-size:small; padding:1px; background-color:#ffffff; } div.center{ text-align:center; } --> </style> </head> <body> <div class="center"> <table class="a"> <tr><td class="a">AAAAAAAAAA</td></tr> <tr><td class="a">AAAAAAAAAA</td></tr> </table> <table class="a"> <tr><td class="a">BBBBBBBBBB</td></tr> <tr><td class="a">BBBBBBBBBB</td></tr> <tr><td class="a">BBBBBBBBBB</td></tr> </table> </div> </body> </html> という感じでdisplay:inlineで並べました。 これだとIEでは普通に見えるのですが、Ffだと表示が崩れてしまいました。 どこがいけないのかよくわかりません……。FfやNNでもちゃんと見えるようにしたいのですが、どうすればいいでしょうか。 また、スタイルシートでもっといい他の方法があったら教えていただけると助かります。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • 強制的に背景色を指定

    #topics ul li a{ font-size: 14px; padding: 5px; text-decoration: none; background: #FFFFFF; } #topics ul li a:hover{ background: #FF6633; font-size: 14px; padding: 5px; text-decoration: none; color: #FFFFFF; } 以上のようなCSSを定義してリンクのボックスを置いているのですが、 <div id="topics"> <ul> <li><a href="~">~~</a> この場合マウスを置いたときに背景色反転するのですが、 何もしないときにも強制的に背景色反転させるにはどうすればいいのか なかなか実現できなくて悩んでおります、いい定義方法はないでしょうか。

  • CSS セルごとリンクにする際、リンク文字を上下中央寄せにしたい

    セルごとリンクにしたくて、以下の記述をしました。 【CSS】 ------------------------------------------------------------------ a.widelink{ vertical-align:middle; display:block; // display:inline-block; width: 100%; height:100%; // line-height:100%; color: #000000; text-decoration:none } a.widelink:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; text-decoration:none } td.bgchng{ align: center; vertical-align: middle; color: #000000; margin: 0px; padding: 0px; } td.bgchng:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; margin: 0px; padding: 0px; } ------------------------------------------------------------------ 【HTML】 ------------------------------------------------------------------ <TABLE border="1" bordercolor="#6666CC" cellspacing="0"> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test01.html" CLASS="widelink"> テスト<BR>(その1) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その1)の説明文<BR> &nbsp;二行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test02.html" CLASS="widelink"> テスト(その2) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その2)の説明文<BR> &nbsp;二行目<BR> &nbsp;三行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test03.html" CLASS="widelink"> テスト(その3) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その3)の説明文<BR> &nbsp;二行目 </TD> </TR> </TABLE> ------------------------------------------------------------------ この記述だとリンク文字がセルのTOPに来てしまい、中央寄せになりません。 思いつく限りの場所にvertical-alignやvalignを仕込んでみましたがダメでした。 line-heightであわせる方法もやってみましたが、<BR>を含むリンク文字の表示が二行揃ってくれず、ダメでした。 セル自体をリンクにして、さらにリンク文字を上下中央寄せにしたいのですが、やり方をご存知の方、教えてください。

専門家に質問してみよう