テーブル要素の任意の行にマウスカーソルを合わせたとき、他の行がボカされて、フォーカスした部分が目立つように切り替わるCSSのテクニックを紹介します。
サンプルは下記のURLより。
HTML
まずはhtmlの記述ですが、こちらは通常どおり、特に変わったことはしません。
<table> <thead> <tr> <th>Title</th> <th>Size</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Sample Title</td> <td>123</td> <td>sample Text/td> </tr> …… </tbody> </table>
CSS
続いてはキモとなるスタイルシートの記述です。
table { background: #f5f5f5; border-collapse: collapse; color: #555; } th { background: #444; color: #fff; padding: 12px 16px; } td { padding:12px 16px; transition: all 0.3s; } tbody:hover td { /* マウスホバーで全ての行をボカす */ color: transparent; text-shadow: 0 0 3px #aaa; } tbody:hover tr:hover td { /* フォーカスしている行だけ通常表示に戻す */ color: #555; text-shadow: 0 1px 0 #fff; }
上記コード内に記述しているとおり、ポイントはテーブル要素にマウスオーバーしたときに、一旦すべての行をボカしてしまう点です。
そして tbody:hover tr:hover td {}
で任意の行にフォーカスしたときに元の表示に戻す処理を記述しています。
また今回はボカし効果を加える際に filter: blur;
を使わずに text-shadow
で実装しました。
ちょっとしたテクニックですが、任意の要素をハイライトさせたいときなど、応用も利くので覚えておくと便利ですよ!