HONEY CANDY



Tips:CSSで表示テキストを切り替える

何の役に立つのかまったくもって不明ですが、CSSだけでできます。
動作可能環境:IE6以上、Firefox、Opera。試していませんがChrome、Safariも動くと思います。
つまりほぼ全てのPCブラウザで動作します。
スマホはそもそも「ロールオーバー」というのがないっぽいので、動かすことができません。(iPhoneではタップ直後、ページ移動する前の一瞬だけ表示されるかも)

サンプル
(Firefox,Chrome,Safari,Operaで見ると無駄にボタンっぽくなっています)



解説っぽいもの…
特に難しいことをしているわけではなく、display:none と display:inlineを切り替えているだけ。
横に並べたときに文字数によって隣がずれるので、幅を指定したブロックをfloatなどで並べた方が綺麗です。
そして、テキストの長さによってクリックできる領域が違うので、長いテキスト→短いテキストと表示すると右端にカーソルを乗せた時クリックできなくなります。
ですのでリンク(a要素)をブロックレベルにしておくと良いと思います。

CSSを無効にするとテキストが両方表示されてしまうのが弱点。
PCでしか動かないものなので、ナノでこれを使ってページを作るとしたら、どちらかのテキストをpc_onlyで囲っておくと良いのではないかなと思います(ドコモ対策)。

ソースはこちら

HTML
<div class="textchange">
  <a href="#"><span class="text1">りんご</span><span class="text2">apple</span></a>
  <a href="#"><span class="text1">みかん</span><span class="text2">orange</span></a>
  <a href="#"><span class="text1">もも</span><span class="text2">peach</span></a>
</div>

CSS
.text2 {
  display:none;
}

a:hover span.text1 {
  display:none;
}
a:hover span.text2 {
  display:inline;
}

/* -- ↓ 装飾用 -- */
.textchange a {
  display:block;
  float:left;
  margin:0.2em;
  padding:0.5em 0;
  width:6em;
  box-shadow:2px 2px 2px #cccccc;
  border:1px solid #003355;
  border-radius:1.2em;
  background:-moz-linear-gradient(top, #ccddff, #6688bb);
  background:-webkit-linear-gradient(top, #ccddff, #6688bb);
  background:-o-linear-gradient(top, #ccddff, #6688bb);
  background:linear-gradient(top, #ccddff, #6688bb);
  text-align:center;
  text-shadow:1px 1px 0 #ccddee;
  color:#003355;
}

.textchange a:hover {
  margin:0.2em;
  padding:0.5em 0;
  border:1px solid #666666;
  background:-moz-linear-gradient(top, #f8f8f8, #aaaaaa);
  background:-webkit-linear-gradient(top, #f8f8f8, #aaaaaa);
  background:-o-linear-gradient(top, #f8f8f8, #aaaaaa);
  background:linear-gradient(top, #f8f8f8, #aaaaaa);
  text-shadow:1px 1px 0 #ffffff;
  color:#000000;
}

装飾のところがなんかすごい多いですね。グラデーションのせいですけど。
a:hoverにもmarginとpaddingの指定があるのは、IE6と7で指定がないと0になってしまうことがある…ような気がしたからです。
floatしてますので、clearを忘れずに(このページはhrでクリアしています)。

「#エロ」のBL小説を読む
BL小説 BLove
- ナノ -