CSSの効率良い使い方

[上に] [前に] [次に]
もんじゃ 1999/12/04(土) 22:15:42
ページ途中の Aタグに特定の CSS を使いたいのですが、
そこはテーブル内に 10ケ程リンクしています。
現状は Aタグそれぞれにクラス指定しているのですが、
同じクラス指定を繰り返さずもっとスマートに書けない
でしょうか?よろしくお願いします。

■現状■
<HTML>
<HEAD>
<STYLE TYPE="text/css">
<!--
A:link.abc { color: #FFFFFF; text-decoration: none; }
A:visited.abc{ color: #8470FF; text-decoration: none; }
A:active.abc { color: #DAA520; text-decoration: underline; }
A:hover.abc { color: #FFD700; text-decorathion: underline; }
-->
</STYLE>
</HEAD>
<BODY>
〜〜〜ここにも Aタグが 10ケほど〜〜〜
〜〜〜ここのリンクは無指定ですので、〜〜〜
〜〜〜色はディフォルトの下線付きですネ。〜〜〜
<TABLE>
  <TR>
    <TD><A HREF="def.html" CLASS="abc">あああ</A></TD>
    <TD><A HREF="ghi.html" CLASS="abc">あああ</A></TD>
 〜このようなクラス指定が 10ケほど〜
    <TD><A HREF="jkl.html" CLASS="abc">あああ</A></TD>
    <TD><A HREF="mno.html" CLASS="abc">あああ</A></TD>
  </TR>
</TABLE>
</BODY>
</HTML>

うそっち 1999/12/04(土) 22:46:52
TD A:link { color: #FFFFFF; text-decoration: none; }
TD A:visited { color: #8470FF; text-decoration: none; }
TD A:active { color: #DAA520; text-decoration: underline; }
TD A:hover { color: #FFD700; text-decorathion: underline; }

こんな風にするとクラス指定が無くてもテーブル・セルの中のリンクアンカーだけにCSSが効くようになりますがいかがでしょう。

もんじゃ 1999/12/04(土) 23:04:47
うそっちさん、ありがとうございます。
説明不足でしたが、他の箇所にもテーブルを
使っているため厳しいです。
でも、無意味にテーブルを入れ子にしたりす
ると、とりあえずは出来そうですね。
そこだけテーブルを 2重にして、
TABLE TABLE A:link { 〜 } みたいに。。。

イメージとしては、そこだけに外部リンクを
適用させたい感じなのですが。

他にもスマートな方法をお伺いしたいので、
解決マークはまだにさせて下さい。

seea 1999/12/05(日) 00:00:05
TDごとに指定するのも大変なのでTRにしてみます?
本当は、こういう用途はCOLGROUPなんですが
MSIE5.0でもCOLGROUPのCLASSは未対応みたい。
(BCGOLOR、ALIGN等の古い属性は効くようです)

 …
.abc A:link { color: #FFFFFF; text-decoration: none; }
 …
<TR CLASS=abc>
<TD><A HREF="def.html">あああ</A></TD>
 …
</TR>
 …

seea 1999/12/05(日) 00:01:34
あっ! スペルが…

うそっち 1999/12/05(日) 00:24:27
もういっちょ噛ませて
TD P A { text-decoration: none; }
という風にして
<TD><P><A HREF="abc.html">なんとかかんとか</A></P></TD>
という手もあります。
CSSを掛けたく無いところは
<TD><A HREF="abc.html">なんとかかんとか</A></TD>
という具合に。
HTMLの仕様書的にはどちらの文法も間違ってないはずですし、<P>を入れることでレイアウトがおかしくなることも無いと思います。
(<TD>の中の<P>については、一応MacのIE4とNN4、Win95のIE3とNN4で確認したことがあります)

うそっち 1999/12/05(日) 00:46:15
すいません、上の方法だとクラス指定と同じくらい面倒ですネ。
seeaさんの方法がスマートだと思いますが、生理的にクラス指定が嫌な場合はということで。

もうひとつ、「空 DIV」もいいかもしれません。
DIV A { text-decoration: none; }
としておいて目的のテーブルを<DIV>〜</DIV>で囲む。

この場合IEでは<DIV>〜</DIV>で囲まなかった時より上下のマージンが少し大きくなると思います。

すっこんドレ 1999/12/05(日) 00:52:44
class指定って簡単ですけどねぇ・・・
私の場合、「りんく」と文字入力して変換すると
<a href="" class="hogehoge"></a>と出すようにしてるので。

もんじゃ 1999/12/05(日) 01:41:50
[[解決]]
皆さん、ありがとうございます。
seeaさんの方法でやろうと思います。
また、うそっちさんの DIV案もいいですね。
そういう発想が思い付かなかったから、皆さんの
方法が参考になりました。

[上に] [前に] [次に]