こんばんは!今日はCSS3のスーパー便利だと思う擬似クラスをおさらいも兼ねてご紹介!

擬似クラスってなんだ?

はい。恐らくCSSを学び始めたら、かなり初期段階で学ぶであろう、有名な擬似クラスを一つ。

:link,
:visited,
:hover,
:active

一つじゃなく四つも出てしまいましたが、恐らくこれが一番有名でしょう!実際メッチャ使うしね…上記のようなヤツを擬似クラスと呼びますっ!

でも今日は擬似クラス中級者部門!と勝手に名付けまして、ちょっと便利な擬似クラスを紹介しますっ!

まずは…

:not()

これ最近メッチャ使ってます。
要は()の中を除いて処理を行うっていう擬似クラスです!

例えばなんですが、グローバルナビとかで横並びになっていて、両端以外にボーダーをつけたい!って時とかありますよね?いや、あるはず!

そんな時は多分

li{
    border-left: 1px solid gray;
}
li:first-child{
    border-left: none;
}

/*もしくは*/

li{
    border-right:1px solid gray;
}
li:last-child{
    border-right:none;
}

こんな感じで書きますよね?いや、書くはず!ボクもずっとこう書いてました。とゆーかこの:first-childとかも擬似クラスなんだけどね…まぁ、それはさておき…

実は:notを使うとこんな感じで書けますっ!

li:not(:first-child){
    border-left: 1px solid gray;
}

/*もしくは*/

li:not(:last-child){
    border-right: 1px solid gray;
}

な、な、なんと!6行かかってたのが、3行に早変わり!最初はちょっと見にくかったのですが、慣れれば完全にこれで問題なし!ちなみにIE8には対応しておりません!

他にも:not(.hoge)のような形で特定のクラスを外したり、:not(:nth-child(odd))といったように奇数(偶数)だけを外したりすることも出来ますっ!

一度使うと癖になる!!カッパえびせん的なヤツですっ!

:focus

うーん、:notに比べるとあんまり使わない感じではあるのですが、覚えておくと使う時は必ずくるぞっ!って感じのヤツですね!読んで字のごとく、フォーカスがあたった時に処理をするって擬似クラスですっ!

どんな時に使うの??

完全に特定されるのですが、恐らく99%はinputの時に使うかと思います!
こんな感じ

/*inputを選択したら文字が赤くなる*/
input[type = "text"]:focus{
    color: red;
}

うーん、実際ボクも使うことはあるのですが、考えてみたら、大体jQueryでfocusとblurをセットで何かしら処理をすることが多いので、何故これをわざわざ書いたのだろうか…

でも覚えといて損は全くない擬似クラスなのは間違いないです!

実際使うし!!

実はまだまだあるのですが、ちょっと長くなってしまったので、また次回にしましょうかね…

ついつい書いていると長くなってしまうね…

そんな感じで今回は擬似クラスってメッチャ便利やねん!第一弾でしたっ!!
ありがとうございました!