OSSANS Project since 2020

「もし四十のおっさんがプログラミングを始めたらどう人生変わるのか」
このブログのメインテーマです
肩肘張らずにユルく、ときたま厳しくやっていきます
※プログラミング以外のことも書きます

CSS

【備忘録】CSSセレクター、結合関連の書き方をまとめてみた。

アイキャッチ画像
CSS

CSSのセレクター要素の使い方、組み合わせが覚えられない。。。

なので備忘録として記事を書くことにします。

本記事の内容

  • CSSのセレクター要素の組み合わせ

本記事を対象とする方

  • Webデザイナー
  • フロントエンドエンジニア

この記事を書いている僕はプログラミング歴2年4ヶ月です。webエンジニアとして”社内転職”しました。

全部の要素に適用

  1. section > * {
  2.   /* sectionの子要素全部に適用 */
  3.   color:red;
  4. }
この設定は以下のようになります
  • <section>
  •   <p>適用される</p>
  •   <div>適用される</div>
  •   <div>
  •     <p>適用される</p>
  •     <ul><li>適用される</li></ul>
  •   </div>
  • </section>
  1. section > * + * {
  2.   /* sectionの最初の子要素以外全部に適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <p>適用されない</p>
  •   <div>適用される</div>
  •   <div>
  •     <p>適用される</p>
  •     <ul><li>適用される</li></ul>
  •   </div>
  • </section>

直下の階層の子要素に適用

  1. section > div {
  2.   /* sectionの直下の階層のdivに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div>適用される</div>
  •   <section>
  •     <div>適用されない</div>
  •   </section>
  •   <div>
  •     <section>
  •       <div>適用される</div>
  •       <p>適用される</p>
  •     </section>
  •   </div>
  •   <p>適用されない</p>
  • </section>

兄弟要素(+,~)

  1. section > div + p {
  2.   /* sectionの直下の階層のdivの隣のpに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div>適用されない</div>
  •   <p>適用される</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用されない</p>
  •   </div>
  • </section>
  1. section > div ~ p {
  2.   /* sectionの直下の階層のdivの隣のpに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div>適用されない</div>
  •   <p>適用される</p>
  •   <p>適用される</p>
  •   <p>適用される</p>
  •   <p>適用される</p>
  •   <p>適用される</p>
  •   <div>
  •     <p>適用されない</p>
  •   </div>
  • </section>

first-childとfirst-of-typeの違い

first-child

  1. section > p:first-child {
  2.   /* section直下の階層にある、最初の要素に適用 この例では最初の要素がpだったら適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <p>適用される</p>
  •   <div>適用されない</div>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用されない</p>
  •     <p>適用されない</p>
  •   </div>
  • </section>
最初の要素がpじゃないと適用されない
  • <section>
  •   <div>適用されない</div>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用されない</p>
  •     <p>適用されない</p>
  •   </div>
  • </section>
  1. section p:first-child {
  2.   /* sectionの子孫階層毎の、最初の要素に適用 この例では最初の要素がpだったら適用*/
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <p>適用される</p>
  •   <div>適用されない</div>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用される</p>
  •     <p>適用されない</p>
  •     <div>
  •       <p>適用される</p>
  •       <p>適用されない</p>
  •       <div>
  •         <div>適用されない</div>
  •         <p>適用されない</p>
  •       </div>
  •     </div>
  •   </div>
  • </section>

first-of-type

  1. section > p:first-of-type {
  2.   /* sectionの直下階層の、最初のp要素に適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div>適用されない</div>
  •   <p>適用される</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用されない</p>
  •     <p>適用されない</p>
  •   </div>
  • </section>
  1. section p:first-of-type {
  2.   /* sectionの子孫階層毎の、最初のp要素に適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <p>適用される</p>
  •   <div>適用されない</div>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <p>適用されない</p>
  •   <div>
  •     <p>適用される</p>
  •     <p>適用されない</p>
  •     <div>
  •       <p>適用される</p>
  •       <p>適用されない</p>
  •       <div>
  •         <div>適用されない</div>
  •         <p>適用される</p>
  •       </div>
  •     </div>
  •   </div>
  • </section>

属性セレクター

  1. section > a[class] {
  2.   /* section直下の階層にあり、クラス属性を持つa要素に適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <a class="link" href="#">適用される</a>
  •   <a href="#">適用されない</a>
  • </section>
  1. section > a[href="https://example.com"] {
  2.   /* section直下の階層にあり、href属性が“https://example.com”と完全一致するa要素に適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <a href="https://example.com">適用される</a>
  •   <a href="https://example.co.jp">適用されない</a>
  • </section>
  1. section > div[class~="hoge"] {
  2.   /* section直下の階層にあり、hogeクラスを持つdivに適用 ただし空白で区切られた別のクラスが設定されている場合はその要素にも適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div class="hoge">適用される</div>
  •   <div class="sudo">適用されない</div>
  •   <div class="hoge sudo">適用される</div>
  • </section>
  1. section > div[class|="hoge"] {
  2.   /* section直下の階層にあり、hogeクラスを持っているdiv、またはhogeの直後にハイフンが続く値で始まるクラス属性を持つdivに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div class="hoge">適用される</div>
  •   <div class="sudo">適用されない</div>
  •   <div class="hoge-sudo">適用される</div>
  • </section>
  1. section > div[class^="c"] {
  2.   /* section直下の階層にあり、cで始まるクラスを持っているdivに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div class="css">適用される</div>
  •   <div class="scss">適用されない</div>
  • </section>
  1. section > div[class$="s"] {
  2.   /* section直下の階層にあり、sで終わるクラスを持っているdivに適用 */
  3.   color: red;
  4. }
この設定は以下のようになります
  • <section>
  •   <div class="css">適用される</div>
  •   <div class="scss">適用される</div>
  • </section>
  1. section > div[class*="c"] {
  2.   /* section直下の階層にあり、文字列のどこかにcを含んでいるdivに適用 */
  3.   color: red;
  4. }
  • <section>
  •   <div class="css">適用される</div>
  •   <div class="scss">適用される</div>
  • </section>

今回のまとめ

今回はCSS セレクター要素の使い方、組み合わせについて紹介しました。最後まで読んで頂きありがとうございました。

関連記事

  • CSS
    ブログアイキャッチ画像
    CSS

    【CSS】margin?position?要素の中央寄せで使うプロパティとは?

  • CSS
    ブログアイキャッチ画像
    CSS
    2023.02.01(更新)

    コード量激減!ブレイクポイントなしでレスポンシブ対応してみた【メリットしかない!】

CATEGORY カテゴリー別最新記事

  • CSS
    アイキャッチ画像
    CSS

    【CSS】margin?position?要素の中央寄せで使うプロパティとは?

  • Docker
    アイキャッチ画像
    Docker
    2022.10.03(更新)

    【簡単設定!】DockerでWordPressをローカル開発する方法

  • HTML
    アイキャッチ画像
    HTML
    2023.02.18(更新)

    【図解あり】aタグの入れ子ルールとHTMLの入れ子ルールを覚える方法

  • JavaScript
    アイキャッチ画像
    JavaScript
    2023.03.04(更新)

    【実例コードあり】覚えておきたいパララックスデザインの3つの基本

  • Python
    アイキャッチ画像
    Python
    2023.02.09(更新)

    【やらなきゃ損!】2日でできるPythonのExcelコピペ自動化!

  • Study
    アイキャッチ画像
    Study
    2023.02.16(更新)

    稼ぐために始めたプログラミングのこれまでの振り返り。勉強方法や役立った本も紹介。

  • web site
    アイキャッチ画像
    web site
    2022.11.26(更新)

    ページ表示速度アップ!npmでソースファイルを軽量化する方法【サクッと簡単!】

  • WordPress
    アイキャッチ画像
    WordPress
    2022.10.26(更新)

    【コピペ可】WordPressサイトをPWA化するためにService Workerを実装してみた。