SEO対策になるCSSロールオーバー?

2007年12月16日 00:42

ふと思いついたので書いてみました。
overflow: hidden以外使わない、スパムになりそうもない手法で、さらに無駄なタグを挿入せず、かつCSS OFF、画像OFFでもなんとか情報が消えないように工夫したCSSロールオーバーを作ってみました。

▼サンプルはこちら
「SEO対策になるCSSロールオーバー?」のサンプル

今回のサンプルの肝は、「overflow: hidden」です。

▼EntryMore▼

まずはソースの説明から。

【HTMLソース】

  1. <ul id="rolloverMenu">
  2. <li><a href="#" title="menu"><img src="btn.gif" alt="menu" /></a></li>
  3. </ul>

【CSSソース】

  1. #rolloverMenu li {
  2. margin-bottom: 3px;
  3. }
  4. #rolloverMenu li a {
  5. background: #00f url(btn_over.gif) left top no-repeat;
  6. color: #fff;
  7. display: block;
  8. position: relative;
  9. overflow: hidden;
  10. text-align: center;
  11. width: 88px;
  12. height: 32px;
  13. }
  14. #rolloverMenu li a:hover {
  15. background-color: #f73;
  16. color: #f00;
  17. }
  18. #rolloverMenu li a img {
  19. background-color: #00f;
  20. color: #f00;
  21. }
  22. #rolloverMenu li a:hover img {
  23. position: relative;
  24. top: -32px;
  25. }
概要を説明すると、普通にli要素でメニューを構築し、各メニューにはimg要素で画像を配置します。この際、alt属性にはしっかりとメニューの名前を設定します。(画像OFFの場合の対策)

次に、各メニューのa要素の背景にロールオーバーした際の画像を配置しておきます。
a要素はblock要素にし、画像と同じ幅・高さ、overflow: hiddenを設定します。
そして最後、a:hover imgにposition: relativeと、top: -32px(32pxはサンプルの画像の高さ。画像の高さが変わる場合は適宜変更してください)を設定したら完了です。

こうすることで、ロールオーバー時には画像が上にずれ、a要素の背景が表示されるため、
ロールオーバーの画像が表示されているように見える、というわけです。

検索エンジンスパムになる可能性のある隠し要素は(何もしない状態であれば)設定されておらず、かつロールオーバー用の無駄なタグの挿入もありません。
さらに、この方法はIE6でも問題なく動作します。

トラックバックURL

http://css-eblog.com/cgi-bin/mt/mt-tb.cgi/54

コメントを投稿





承認されるまでコメントは表示されません。しばらくお待まちください。